커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4595
글번호 230811
답변완료
안녕하세요
파라볼릭 이라는 부분을 이용하여 시스템을 하나 만들어보고싶어서
문의드립니다
지표 설정값
Input : Af(0.02), MaxAf(0.2);
Var : direction(0), sar1(0), afval(0), ep(0),lowval(0),highval(0),count(0);
if count == 0 then //변수들의 초기화
{
highval = High;
lowval = Low;
direction = 0;
sar1 = 0;
afval = 0;
ep = 0;
count = 1;
}
if(ep != 0 ) then // 추세가 진행중
{
if(direction == 1) then // 상승추세이면
{
ep = highval;
sar1 = sar1 + afval*(ep-sar1); // 상승추세에서 SAR값 계산
if(high > highval) then // 신고가 발생
{
highval = high;
afval = afval+Af; // 상승추세에서 신고가가 발생했으므로 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
if( low < sar1) then // 추세변경(상승->하락)
{ // 다음 SAR값을 계산할 때 필요한 전SAR값은 하락추세로 전환되기 직전의
direction = -1; // 최고가를 사용하므로 sar1 = ep (ep에는 highval 들어있다)
sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화
afval = 0;
ep = 0;
lowval = low;
}
}
else // 하락 추세
{
ep = lowval; // 하락추세에서는 EP로 저가 사용
sar1 = sar1 + afval*(ep-sar1);
if(low < lowval) then // 신저가 발생
{
lowval = low;
afval = afval + Af;
if( afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
if(high > sar1) then // 추세 변경(하락->상승)
{ // 다음 SAR 값을 계산할 때 필요한 전SAR값은 상승추세로 전환되기 직전의
direction = 1; // 최저가를 사용하므로 sar1 = ep (ep에는 lowval값이 들어있다)
sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화
afval = 0;
ep = 0;
highval = high;
}
}
}
else if(sar1 != 0 && ep == 0) then //추세가 변경된후 첫번째 SAR계산
{
if(direction == 1) then // 상승 추세
{
ep = highval; // 상승추세에서는 신고가를 EP로 사용하므로
afval = Af; // 가속변수의 초기값인 AF(0.02) 적용
sar1 = sar1 + afval*(ep-sar1);
if ( high > highval) then // 신고가가 발생
{
Highval = high;
afval = afval + Af; // 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
}
else // 하락추세
{
ep = lowval;
afval = Af; // 가속변수의 초기값인 AF(0.02) 적용
sar1 = sar1 + afval*(ep-sar1);// 하락추세에서 SAR 계산
if(low < lowval) then // 신저가 발생
{
lowval = low;
afval = afval + Af; // 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
}
}
else // SAR 첨 시작
{
if direction == 0 then // 추세가 없으므로
{
if(c > c[1]) then // 상승추세로 시작
direction = 1;
else if( c < c[1]) then // 하락추세로 시작
direction = -1;
}
else if direction == 1 then // 상승추세(추세변경이 일어날 경우 SAR 계산하기 시작)
{
if(c < c[1]) then // 추세 변경 (상승->하락) SAR 계산하기 시작
{
direction = -1;
sar1 = highval; // 하락추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최고가를 사용하므로
}
}
else if direction == -1 then // 하락추세(추세변경이 일어날 경우 SAR 계산하기 시작)
{
if( c > c[1]) then // 추세 변경 (하락->상승) SAR 계산하기 시작
{
direction = 1;
sar1 = lowval; // 상승추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최저가를 사용하므로
}
}
lowval = min(low, lowval); // 추세 변경시 전 SAR값으로 최고가나 최저가가 필요하므로
highval = max(high,highval); // low, high를 전의 최고가, 최저가와 비교하여 최고가, 최저가를 저장
}
//처음 시작할 때 다음 추세 변경이 일어날 때까지 SAR는 invalid
#if(sar1 != 0) then
# User_Func_Sar = sar1;
if sar1 > sar1[1] Then
plot1(sar1,"파리볼릭",RED);
else
plot1(sar1,"파리볼릭",blue);
잘부탁드리겠습니다
1. 레드선(양) 블루선(음) 2가지를이용하여 시스템을 만들어보고싶습니다
레드선(양)위 캔들이 있을경우 매수신호
블루선(음)밑 캔들이 있을경우 매도신호
2016-06-24
230
글번호 99467
답변완료
시세 급변시 실시간 매매 방법 문의
안녕하세요,
저는 3분봉을 사용하고 있지만 3분안에 이루어지는 급락 및 급등 시에는 제가 할수있는 것이 없습니다.
즉, 급락 후에 매도 혹은 급등 후에 매수를 하는 어처구니없는 매매를 반복하고 있습니다.
그래서 저는 시세가 급변시 3분봉에 상관없이 실시간으로 매도 혹은 매수하는 방법을 알고 싶습니다.
2016-06-24
173
글번호 99466
답변완료
전봉 지표 수치보다 감소하였을때
문의드립니다!
전봉의 지표수치보다 감소했을때, 예를들면 macd값이 전봉에서 1이다가 이번봉에 0이되었을때 손절한다는 수식을 어떻게 사용하는지 궁금하네요! 부탁드리겠습니다
2016-06-24
170
글번호 99465
답변완료
수식 부탁드립니다
파라볼릭 양 전환 발생시 파라볼릭 상단,하단 중심선 아래에서 위로 크로스 발생 매수
...단 매수신호는 파라볼릭 양 상태에서만 매수신호 발생
파라볼릭 음 전환 발생시 파라볼릭 상단,하단 중심선 위에서 아래로 크로스 발생 매도
...단 매도신호는 파라볼릭 음 상태에서만 매도신호 발생
감사합니다
2016-06-24
189
글번호 99464
답변완료
종목검색식 부탁드립니다.
안녕하세요
1>일봉에서 월봉 10이평 구하는식 부탁합니다.
2>일봉에서 월봉 10이평의 1봉전 값 구하는식 부탁합니다.
감사합니다 수고하세요
2016-06-24
181
글번호 99453
답변완료
안녕하세요
안녕하세요
수식을 이용하여 단기적인 신호를 받아보고싶어요
input : Period(5);
if ma(C,Period) > ma(C,Period)[1] then
plot1(ma(c,5),"이동평균",RED);
else
plot1(ma(c,5),"이동평균",BLUE);
빨강색깔이 나올경우 매수신호
파랑색깔이 나올경우 매도신호
잘부탁드려요
2016-06-24
171
글번호 99452
답변완료
수식 부탁드립니다
(1)
금일 중심을 표시한다
전일 중심을 표시한다
이번 주 중심을 표시한다
지난 주 중심을 표시한다
이번 달 중심을 표시한다
지난 달 중심을 표시한다
이번 분기 중심을 표시한다
지난 분기 중심을 표시한다
올해 중심을 표시한다
작년 중심을 표시한다
(2)
파라볼릭 양 전환 발생시 파라볼릭 상단,하단 중심선 아래에서 위로 크로스 발생 매수
파라볼릭 음 전환 발생시 파라볼릭 상단,하단 중심선 위에서 아래로 크로스 발생 매도
감사합니다
2016-06-24
230
글번호 99451
답변완료
종목 검색식 다수
답변 하시느라 고생이 많으십니다.
종목 검색식을 만들어서 사용하려고 하는데요.
1. 기간내 주가변동폭이 주봉상..
3봉 전부터 200봉 전 기간까지 종가변동폭이 200% 이하.
2. 기간내 주가변동폭이 주봉상.
3봉 전부터 200봉 전 기간까지 최고최저가 변동폭이 200이하.
3.주봉상 3봉 전부터 200봉 전 기간까지 매물대를 5 간격으로 나누고
최대 매물대를 구하라.
3봉전 종가가 최대 매물대의 -5% ~ 5%에 위치하는 종목
4.주봉상 3봉 전 주가가 볼린저 밴드 중심선에서 -5% ~ 5%에 위치 하는 종목.
5.주봉상 3봉 전부터 20봉 기간동안 최저가가 볼린저 밴드 하단선의 -5% ~ 5%에
근접한 적이 있다면 그 횟수를 세고
1회 이상 근접한 종목을 찾아라.
6.일봉상 10봉 전부터 20봉 전 기간동안
가중이동평균 20일 선이 200일 선에 -5% ~ 5 % 근접한 종목을 찾아라.
7.3일 전부터 20일 전까지 평균 거래량을 구하고
그 기간동안 평균 거래량의 2배의 거래량이 발생한 종목을 찾아라.
종목 검색식이라 횟수를 세고 수치를 찾는 것이 안될 거 같긴 한데요.
일단 종목 검색식이라고 생각하시고 작성해 주시면 감사하겠습니다.
미리 감사의 말씀을 드립니다.
2016-06-24
213
글번호 99450
답변완료
재문의
안녕하세요
하기 1번에서 if문을 사용하지 않고 다른 문장을 사용한다면 조정이 가능하다는 말씀이신가요?
확인 부탁드립니다.
어떤 문장을 사용해야지 되는지요?
감사합니다.
안녕하세요
예스스탁입니다.
1
진입이 봉완성시에 진입입니다.
해당 내용은 if문으로 작성하여 봉완성시로만 신호가 가능한 내용입니다.
2수정한 식입니다.
* 10틱을 달성하면 청산 부탁드립니다.
* 10을 달성하지 못하면 다음봉 종가에서 청산하고 나옵니다.
위 2개의 내용은 정확히 이해하지 못해 추가하지 않았습니다.
input : short(5),mid(20),long(60);
var1 = ma(c,short);
var2 = ma(c,mid);
var3 = ma(c,long);
Condition1 = var1 > var2 and var2 > var3;#정배열이면 true 아니면 false
Condition2 = var1 < var2 and var2 < var3;#역배열이면 true 아니면 false
#정배열이 아니었다가 정배열이 되면 매수진입
if Condition1 == true and Condition1[1] == false Then
buy();
#역배열이 아니었다가 역배열이 되면 매도진입
if Condition2 == true and Condition2[1] == false Then
sell();
#현재 무포지션이고 직전 청산이 bx1이고 청산가보다 높은 시세가 다음봉에 발생하면 재매수
if MarketPosition == 0 and IsExitName("bx1",1) == true Then
buy("재매수",AtStop,ExitPrice(1)+PriceScale);
#현재 무포지션이고 직전 청산이 sx1이고 청산가보다 낮은 시세가 다음봉에 발생하면 재매도
if MarketPosition == 0 and IsExitName("sx1",1) == true Then
sell("재매도",AtStop,ExitPrice(1)-PriceScale);
if MarketPosition == 1 Then
sell("bs",AtStop,EntryPrice-PriceScale*5);
if MarketPosition == -1 Then
buy("sb",AtStop,EntryPrice+PriceScale*5);
즐거운 하루되세요
2016-06-23
167
글번호 99448