커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1595
글번호 230811
답변완료
문의 드립니다.~~~~
수고하십니다.
모든 진입과 청산에 수평선과 가격을 챠트에 표시하는
수식이 가능한가요?
2022-12-26
1050
글번호 164878
답변완료
시가 동시호가 매수
안녕하세요
if stime==090000 then buy();
이걸로는 09시00분 시가 매수가 안되고 09시01분 종가에 진입되더라구요.
종가 동시호가 청산은 SetStopEndofDay();로 되는데
시가 동시호가 진입은 어떻게 할 수 있을까요?
1분봉 코스피 선물데이터 쓰고 있습니다.
감사합니다.
2022-12-26
1078
글번호 164877
답변완료
문의
안녕하세요
나무증권 언어편집기에서 upvol 을 사용하니
정의되지 않았다고 하는데 어떻게 적용하면 되는지 알려주십시오~
부탁드립니다.
수고하십시오.
2022-12-26
1139
글번호 164874
푸른 님에 의해서 삭제되었습니다.
2022-12-26
7
글번호 164870
답변완료
진입제한
안녕하세요,
아래의 조건식을 부탁드립니다.
매수에서는 당일 진입가격보다 exit가격이 낮은 경우에는 이후부터는 종가가 당일고가를 초과하는 경우 매수진입 허용
매도에서는 당일 진입가격보다 exit가격이 높은 경우에는 이후부터는 종가가 당일저가를 하회하는 경우 매도진입 허용
감사합니다.
2022-12-26
1147
글번호 164850
답변완료
종목검색 부탁합니다
아래와 같이 종목검색 부탁합니다
일봉 시가<종가
시가총액 1000억 이상
30분봉 캔들 저가대비 고가 변동폭이 7%이상 이면서 거래대금이 100억이상인 종목 검색
변수는 다른 숫자로도 고칠수있게 변수로 해주세요
2022-12-26
1403
글번호 164847
답변완료
문의 드립니다 - 시가 진입 당일 청산
안녕하십니까.
테스트용으로 시가 상승 출발시 바로 진입하고 당일 내 지정손익 청산하는 시스템 수식을 이하와 같이 작성하였습니다.
Input : 수익(1.0), 손실(1.0);
if NextBarSdate <> sDate Then {
if NextBarOpen > DayClose Then
Buy("b", AtMarket, Def, 1);
}
SetStopProfitTarget(수익, PointStop);
SetStopLoss(손실, PointStop);
SetStopEndofday();
그런데 이 수식을 시뮬레이션 차트에 적용해보면 이해가 안되는 점이 있습니다.
진입했다가 청산된 후에는 더이상 포지션이 없으니 수익률 차트가 변화 없이 수평이어야 할 것 같은데, 시뮬레이션에서는 수평이 아닙니다.
(첨부 이미지에 적색 수평 화살표로 표시한 구간입니다)
왜 이렇게 나오는 것인지 도저히 모르겠습니다.
꼭 좀 이유를 알려주시길 부탁드립니다.
2022-12-26
1268
글번호 164846
답변완료
수정 의뢰드립니다.
안녕하세요!
아래 첨부 파일은 다이버전스를 응용한 스토케스틱과 볼린저밴드등의 매매식들 입니다!
다름이 아니라 아래 수식들을 적용해 보았는데 원본과 다르게 나타나네요!
첨부파일 처럼 우측 원본과 동일하게 수식기호들이 나타나도록 수정을 부탁드립니다!
그리고 시스템식도 단방향으로만 나오는걸 양방향 거래가 되게 끔 수정을 부탁드립니다!
감사합니다!
--------------------------------------------------------------------
[지표식]
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line
TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line
MidBand = ma(RSIV,BandPeriod); //Volatility_Band
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전
var1 = RSIPL[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then {
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TX1 = Text_new(var5, var7, L, "★");
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
}
if CrossUp(RSIPL, DnBand) then {
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,rgb(160,70,255));
Text_SetStyle(Tx3,2,0);
}
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전
var11 = RSIPL[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then {
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TX2 = Text_new(var15, var17, H, "★");
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
}
if CrossDown(RSIPL, UpBand) then {
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
}
#
plot1(RSIPL, "RSIPL",Lgreen,def,0);
plot2(TSL,"TSL",red,def,0);
plot3(MidBand,"MidBand",magenta,def,0);
plot4(UpBand,"UpBand",blue,def,0);
plot5(DnBand,"DnBand",blue,def,0);
if CrossUp(RSIPL,DnBand) then
plot6(RSIPL, "상향돌파시점");
if CrossDown(RSIPL, UpBand) then
plot7(RSIPL, "하향이탈시점");
if var9 == 1 then
plot8(RSIPL, "상승다이버전스");
if var19 == 1 then
plot9(RSIPL, "하락다이저번스");
[시스템식]
INPUT : RsiPeriod(13),PLPeriod(2),TSLPeriod(7), BandPeriod(34), 표준편차(1.6185);
var :RSIV(0), RSIPL(0), TSL(0), MidBand(0), UpBand(0),DnBand(0) ;
var : TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0);
RSIV = RSI(RSIPeriod);
RSIPL = ma(RSIV,PLPeriod); //RSI_Price_Line
TSL = ma(RSIV,TSLPeriod); //Trade_Signal_Line
MidBand = ma(RSIV,BandPeriod); //Volatility_Band
UpBand = MidBand + (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Up
DnBand = MidBand - (표준편차 * std(RSIV, BandPeriod)); //Volatility_Band_Down
#
if RSIPL > RSIPL[1] and RSIPL[1] < RSIPL[2] and RSIPL < 50 then { //스토캐스틱 상승반전
var1 = RSIPL[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if RSIPL < RSIPL[1] and RSIPL[1] > RSIPL[2] and RSIPL > 50 then {//스토캐스틱 하락반전
var11 = RSIPL[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
#
if var9 == 1 then
buy("Div_Buy");
if CrossUp(RSIPL, DnBand) then
buy("PL_Buy");
if var19 == 1 then
exitlong("Div_EL");
if CrossDown(RSIPL, UpBand) then
exitlong("PL_EL");
-----------------------------------------------------------------
스토케스틱 다이버전스는 시스템 수식이 없습니다.
지표식만이라도 수정을 부탁드립니다.
[지표식]
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0), TL1(0), TL2(0), TLi1(0), TLi2(0), TX1(0), TX2(0), TX3(0), TX4(0), TX5(0), TX6(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
if StoK > StoK[1] and StoK[1] < StoK[2] and StoK < 60 then { //스토캐스틱 상승반전
var1 = StoK[1];
var2 = var1[1];
var3 = C[1];
var4 = var3[1];
var5 = sdate[1];
var6 = var5[1];
var7 = stime[1];
var8 = var7[1];
if var1 > var2 and var3 < var4 then //지표값은 높아지고 종가는 낮아지고
var9 = 1;
}
else
var9 = 0;
if var9 == 1 then {
TL1 = TL_New(var6,var8,var4,var5,var7,var3);
TLi1= TL_New_self(var6,var8,var2,var5,var7,var1);
TX1 = Text_new(var5, var7, L, "★");
TL_SetSize(TL1, 2);
TL_SetColor(TL1, Red);
TL_SetSize(TLi1, 2);
TL_SetColor(TLi1, Red);
Text_SetColor(Tx1,Magenta);
Text_SetStyle(Tx1,0,0);
}
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then {
TX3 = Text_new(sdate, stime, L, "▲");
Text_SetColor(Tx3,rgb(160,70,255));
Text_SetStyle(Tx3,2,0);
}
if StoK < StoK[1] and StoK[1] > StoK[2] and StoK > 40 then {//스토캐스틱 하락반전
var11 = StoK[1];
var12 = var11[1];
var13 = C[1];
var14 = var13[1];
var15 = sdate[1];
var16 = var15[1];
var17 = stime[1];
var18 = var17[1];
if var11 < var12 and var13 > var14 then //지표값은 낮아지고 종가는 높아지고
var19 = 1;
}
else
var19 = 0;
if var19 == 1 then {
TL2 = TL_New(var16,var18,var14,var15,var17,var13);
TLi2= TL_New_self(var16,var18,var12,var15,var17,var11);
TX2 = Text_new(var15, var17, H, "★");
TL_SetSize(TL2, 2);
TL_SetColor(TL2, blue);
TL_SetSize(TLi2, 2);
TL_SetColor(TLi2, blue);
Text_SetColor(Tx2,Lcyan);
Text_SetStyle(Tx2,0,1);
}
if CrossDown(stoK, 80) then {
TX4 = Text_new(sdate, stime, H, "▼");
Text_SetColor(Tx4,Rgb(0,255,0));
Text_SetStyle(Tx4,2,1);
}
Plot1(StoK, "StochasticsK");
Plot2(StoD, "StochasticsD");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
if CrossUp(stoK, 20) and ma(C,5) > ma(C,20) then
plot3(stoK, "상향돌파시점");
if CrossDown(StoK,80) then
plot4(StoK, "하락이탈시점");
if var9 == 1 then
plot5(stoK, "상승다이버전스");
if var19 == 1 then
plot6(stoK, "하락다이저번스");
2022-12-26
1544
글번호 164845
답변완료
문의
볼린저밴드 period 500 d1 2 하한밴드에 근접한 종목을 찾는 식 부탁드려요
2022-12-25
1216
글번호 164844