커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8106
글번호 230811
답변완료
수식 부탁드립니다.
수식 추가 부탁드립니다.
매수 진입 후
종가가 200선대비 n(50)틱이상 크게되는 ●(빨간색)이 나타나기 전에
200선 상향돌파 되는 ■(빨간색)이 3번(A번)이상 나타나면 매수포지션 청산
매도(반대)
종가가 200선대비 n(50)틱이상 작게되는 ●(파란색)이 나타나기 전에
200선 하향돌파 되는 ■(파란색)이 3번(A번)이상 나타나면 매도포지션 청산
input : n(50);
var : t(0),t1(0),tx(0),tl(0);
var1 = ma(c,20);
var2 = ma(C,200);
#200선 상향돌파
if Crossup(C,var2) Then
{
#t는 1
t = 1;
#이전구간(하향이탈구간) t값은 t1에 저장
t1 = t[1];
#■출력
tx = Text_New(sdate,stime,H+PriceScale,"■");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
#매수주문을 구간에 한번하기 위한 변수
Condition1 = false;
}
#200선 하향이탈
if CrossDown(C,var2) Then
{
#t는 -1
t = -1;
#이전구간(상향돌파구간) t값은 t1에 저장
t1 = t[1];
#■출력
tx = Text_New(sdate,stime,L-PriceScale,"■");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,BLUE);
#매도주문을 구간에 한번하기 위한 변수
Condition2 = false;
}
#t가 1일때 종가가 200선대비 n틱이상 크게되면
if t == 1 and c > var2+PriceScale*n Then
{
#t는 2로 변경
t = 2;
#●출력
tx = Text_New(sdate,stime,H+PriceScale,"●"+NumToStr(C,2));
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
}
#t가 -1일때 종가가 200선대비 n틱이상 작게되면
if t == -1 and c < var2-PriceScale*n Then{
#t는 -2로 변경
t = -2;
#●출력
tx = Text_New(sdate,stime,L-PriceScale,"●"+NumToStr(C,2));
Text_SetStyle(tx,2,2);
Text_SetColor(tx,BLUE);
}
# 200선 상향돌파하고 직전구간(하향이탈구간) t가 -2까지 기록했으면
if crossup(t,0) and t1 <= -2 Then
{
#★출력
tx = Text_New(sdate,stime,H+PriceScale*3,"★");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,RED);
}
# 200선 하향이탈하고 직전구간(상향돌파구간) t가 2까지 기록했으면
if CrossDown(t,0) and t1 >= 2 Then
{
#★출력
tx = Text_New(sdate,stime,L-PriceScale*3,"★");
Text_SetStyle(tx,2,2);
Text_SetColor(tx,BLUE);
}
#200선 상향돌파한 구간이고
#직전 햐향이탈한 구간은 t는 -2까지 기록했고
#현재10선이 200선보다 크면 매수
if Condition1 == false and t > 0 and t1 <= -2 and var1 > var2 Then{
Condition1 = true;
buy();
}
#200선 하향이탈한 구간이고
#직전구간(상향돌파구간)애서 t는 2까지 기록했고
#현재10선이 200선보다 작으면 매도
if Condition2 == false and t < 0 and t1 >= 2 and var1 < var2 Then{
Condition2 = true;
sell();
}
2018-05-15
240
글번호 118901
답변완료
수식 추가
아래는 선물에 사용하는 buy 수식입니다.
손절,익절,trailing stop이 시스템설정창에 있지만
시뮬레이션을 위해 수식을 input에 추가하고 싶습니다.
"손절,익절,최대수익대비하락은 설정기준이 %인지 pt인지 틱인지에 따라 수식이 다릅니다"
위와 같은 이유가 있으므로,
아래 수식에 대해 설정기준을 pt와 틱 2가지로 구분하여
손절,익절,trailing stop 수식을 input에 추가하여 주시기 바랍니다.
********************************************************************************
input : 진입시간(100000),진입제한시간(120000),트레이드종료시간(150000);
Inputs: DMILen(14), Consec(3), MinDiff(0);
Var : DMIDiff(0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 진입제한시간) or
(sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then
Tcond = false;
if (sdate != sdate[1] and stime >= 트레이드종료시간) or
(sdate == sdate[1] and stime >= 트레이드종료시간 and stime[1] < 트레이드종료시간) Then
exitlong();
DMIDiff = DIPlus(DMILen) - DIMinus(DMILen);
If DMIDiff[Consec] > 0 and Tcond == true Then Begin
If DMIDiff >= MinDiff AND CountIF(DMIDiff > DMIDiff[1], Consec) == Consec Then
Buy ("DMI");
End;
2018-05-15
257
글번호 118900
답변완료
안녕하세요.
안녕하세요...
수고 많으십니다........
아래 수식에서 ......
그림과 같이 10단위로 틱수를 넣어 주셨으면 합니다.
시스템식으로 안되면 지표식으로도 부탁드립니다.
감사합니다.... 수고 하세요....
Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0);
var : mav(0);
전환선 = (Highest(c, 1) + Lowest(c, 1)) / 2;
기준선 = (Highest(c, 26) + Lowest(c, 26)) / 2;
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(c, 52)[25] + Lowest(c, 52)[25]) / 2;
mav = ma(C,5);
if crossup(mav,선행스팬1) Then
buy();
if CrossDown(mav,선행스팬1) Then
sell();
2018-05-15
276
글번호 118899
답변완료
부탁드립니다.
- 1분챠트에서 종가가 60일 이동평균선을 넘고, 동시에 5분챠트에서 종가가 40일 이동평균선을 넘을 때 매수하고, 그 반대이면 매도하라는 시스템식을 부탁드립니다. 고맙습니다.
2018-05-14
236
글번호 118898
답변완료
이격도부탁합니다
안녕하세요 관리자님
예전에 만들어주신 아래의 선에 대한 이격도를 만들고 싶습니다
-아래-
if Bdate != Bdate[1] Then{
var1 = 0;
var2 = 0;
var3 = 0;
var4 = 0;
var11 = var1[1];
var21 = var2[1];
var31 = var3[1];
var41 = var4[1];
}
var1 = var1+(H-dayopen);
var2 = var2+(C-dayopen);
var3 = var3+(L-dayopen);
var4 = var4+1;
if var41 > 0 then{
plot1((var11/var41)+dayopen,"고가");
plot2((var21/var41)+dayopen,"종가");
plot3((var31/var41)+dayopen,"저가");
}
2018-05-14
243
글번호 118897
답변완료
부탁 드립니다.
도움주심에 감사 드립니다.
1)57780 재질문 부탁 드립니다.
2)data2를 활용한 타주기 지표식 부탁 드립니다.
Input : Period(2),histo_sig(3);
var:곱배수(1);
value1 = (3 * Ema(c,Period*1*곱배수)) - (3 * Ema(Ema(c,Period*1*곱배수),Period*1*곱배수)) + (Ema(Ema(Ema(c,Period*1*곱배수),Period*1*곱배수),Period*1*곱배수));
value2 = (3 * Ema(c,Period*2*곱배수)) - (3 * Ema(Ema(c,Period*2*곱배수),Period*2*곱배수)) + (Ema(Ema(Ema(c,Period*2*곱배수),Period*2*곱배수),Period*2*곱배수));
value21 = (3 * Ema(c,Period*21*곱배수)) - (3 * Ema(Ema(c,Period*21*곱배수),Period*21*곱배수)) + (Ema(Ema(Ema(c,Period*21*곱배수),Period*21*곱배수),Period*21*곱배수));
value22 = (3 * Ema(c,Period*22*곱배수)) - (3 * Ema(Ema(c,Period*22*곱배수),Period*22*곱배수)) + (Ema(Ema(Ema(c,Period*22*곱배수),Period*22*곱배수),Period*22*곱배수));
var52=(value1+value2)/2;
var53=(value1+value2+value3)/3;
var62= (value22+value21)/2;
var63= (value21+value20+value22)/3;
var92=ema((var52-var62),histo_sig);
var93=ema((var53-var63),histo_sig);
var99=(var92+var93)/2;
plot1(var99,"지표");
PlotBaseLine1(0,"0");
미리 감사 드립니다.
2018-05-15
239
글번호 118896
답변완료
시스템 수식 부탁 드립니다.
하루에 한번만 매매하고.
9시부터 9시 20까지의 고점을 돌파하면 매수. 저점을 하락 돌파하면 매도.
1포인트 익절.
3시 청산.
감사합니다.
2018-05-14
228
글번호 118895
답변완료
문의드립니다.
수고 많으십니다.
현재 쓰고 있는 수식은 하기와 같습니다.
Input : shortPeriod(8);
Var : value1(0), value2(0), value3(0), value4(0);
value1 = highest(H[25],26)+lowest(L[25],26);
value2 = highest(H[25],26)+lowest(L[25],26);
value3 = highest(H[25],82)+lowest(L[25],82);
value4 = ma(C, shortPeriod);
If CrossUp(Value4, max(value3)/2) Then
buy();
If CrossDown(Value4, min(value3)/2) Then
sell();
여기에 매수는 위와 동일한 조건으로 매수를 하고
청산은 8일 이평선이 20일 이평선 하향 돌파 시 청산
매도도 위와 동일한 조건으로 매도를 하고
청산은 8일 이평선이 20일 이평선 상향 돌파 시 청산
으로 하고 싶은데 혹시 가능할까요??
2018-05-14
236
글번호 118894
답변완료
직전 buy 포지션의 position profit
안녕하세요, 해외선물에서 거래 하고 있습니다.
직전에 거래된 buy 포지션의 positionprofit 을 불러오고자 하면 어떻게 해야할까요?
반대로 직전에 거래된 sell 포지션의 positionprofit 역시 불러오고 싶습니다.
감사합니다.
2018-05-14
255
글번호 118882