커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
3626
글번호 230811
지표
답변완료

rsi 삼중지표 시스템

항상 감사드립니다 아래 3 조건식이 발생위치가 10개봉이내일때 매수/매도 1조건_ rsi7030_직선라인 = 1 2조건_ rsi8020_직선라인 = 1 3조건_ rsi7525_직선라인 = 1 1조건 and 2조건 and 3조건 이고 1조건,2조건,3조건 발생시점이 10개봉 이내일때 매수발생 1조건_ rsi7030_직선라인 = -1 2조건_ rsi8020_직선라인 = -1 3조건_ rsi7525_직선라인 = -1 1조건 and 2조건 and 3조건 이고 1조건,2조건,3조건 발생시점이 10개봉 이내일때 매도발생 감사합니다 ################################## #####1_ RSI 시스템_(70_30) ##### ##### -Period(30) ##### ################################## input : Period50(30); var:rsi7030(0),rsi7030_70(0),rsi7030_30(0),rsi7030_중심선(0),rsi7030_직선라인(0); rsi7030 =(AccumN(iff(C-C[1]>0,C-C[1],0),Period50)/AccumN(iff(C-C[1]>0,C-C[1],C[1]-C),Period50)*100); if rsi7030 <= 30 Then rsi7030_30 = O; if rsi7030 >= 70 Then rsi7030_70 = H; rsi7030_중심선=(rsi7030_30+rsi7030_70)/2 ; if rsi7030_70<rsi7030_70[1] Then rsi7030_직선라인 = 1; if rsi7030_30>rsi7030_30[1] Then rsi7030_직선라인 = -1; if rsi7030_70>rsi7030_70[1] Then rsi7030_직선라인 = 1; if rsi7030_30<rsi7030_30[1] Then rsi7030_직선라인 = -1; ################################## #####2_ RSI 시스템_(80_20) ##### ##### -Period(23) ##### ################################## input : Period51(23); var:rsi8020(0),rsi8020_80(0),rsi8020_20(0),rsi8020_중심선(0),rsi8020_직선라인(0); rsi8020 =(AccumN(iff(C-C[1]>0,C-C[1],0),Period51)/AccumN(iff(C-C[1]>0,C-C[1],C[1]-C),Period51)*100); if rsi8020 <= 20 Then rsi8020_20 = O; if rsi8020 >= 80 Then rsi8020_80 = H; rsi8020_중심선=(rsi8020_20+rsi8020_80)/2 ; if rsi8020_80<rsi8020_80[1] Then rsi8020_직선라인 = 1; if rsi8020_20>rsi8020_20[1] Then rsi8020_직선라인 = -1; if rsi8020_80>rsi8020_80[1] Then rsi8020_직선라인 = 1; if rsi8020_20<rsi8020_20[1] Then rsi8020_직선라인 = -1; ################################## ##### 3_ RSI 시스템_(75_25) ##### ##### -Period(30) ##### ################################## input : Period52(30); var:rsi7525(0),rsi7525_75(0),rsi7525_25(0),rsi7525_중심선(0),rsi7525_직선라인(0); rsi7525 =(AccumN(iff(C-C[1]>0,C-C[1],0),Period52)/AccumN(iff(C-C[1]>0,C-C[1],C[1]-C),Period52)*100); if rsi7525 <= 25 Then rsi7525_25 = O; if rsi7525 >= 75 Then rsi7525_75 = H; rsi7525_중심선=(rsi7525_25+rsi7525_75)/2 ; if rsi7525_75<rsi7525_75[1] Then rsi7525_직선라인 = 1; if rsi7525_25>rsi7525_25[1] Then rsi7525_직선라인 = -1; if rsi7525_75>rsi7525_75[1] Then rsi7525_직선라인 = 1; if rsi7525_25<rsi7525_25[1] Then rsi7525_직선라인 = -1;
프로필 이미지
조민철
2019-08-14
330
글번호 131148
시스템
답변완료

피라미딩 검증구간

아래수식은 첫번째 진입이후 변동폭이 0.50씩 상승할 때 마다 피라미딩이 되는데 첫번째 진입이후 1.00포인트 상승 이후부터 변동폭대로 피라미딩하고 싶습니다. input : 추세확인구간(1.00),변동폭(0.50),수량(3); 항상 고맙습니다. ********************************************************************************* input : 연속봉(5); input : 변동폭(0.50),수량(3); input : 손절1(50),익절1(300),TR1(150); input : 손절2(50),익절2(300),TR2(150); input : 손절3(50),익절3(300),TR3(150); Array : EP[30](0); if MarketPosition == 0 and accumN(iff(C>O,1,0),연속봉) == 연속봉 and ExitDate(1) != sdate then buy("b1"); if MarketPosition == 1 Then { EP[MaxEntries] = LatestEntryPrice(0); if MaxEntries == 1 and MaxContracts < 수량 and NextBarOpen < LatestEntryPrice(0)+변동폭 Then buy("b2",AtStop,LatestEntryPrice(0)+변동폭); if MaxEntries == 2 and MaxContracts < 수량 and NextBarOpen < LatestEntryPrice(0)+변동폭 Then buy("b3",AtStop,LatestEntryPrice(0)+변동폭); if MaxEntries >= 1 and EP[1] > 0 Then { ExitLong("bl1",AtStop,EP[1]-PriceScale*손절1,"b1"); ExitLong("bp1",Atlimit,EP[1]+PriceScale*익절1,"b1"); ExitLong("btr1",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR1,"b1"); } if MaxEntries >= 2 and EP[2] > 0 Then { ExitLong("bl2",AtStop,EP[2]-PriceScale*손절2,"b2"); ExitLong("bp2",Atlimit,EP[2]+PriceScale*익절2,"b2"); ExitLong("btr2",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR2,"b2"); } if MaxEntries >= 3 and EP[3] > 0 Then { ExitLong("bl3",AtStop,EP[3]-PriceScale*손절3,"b3"); ExitLong("bp3",Atlimit,EP[3]+PriceScale*익절3,"b3"); ExitLong("btr3",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR3,"b3"); } }
프로필 이미지
목마와숙녀
2019-11-01
263
글번호 131147
시스템
답변완료

제작

차트창속성 날짜구분선을 체크하면 당일시작에 세로선이 만들어집니다. 특정 다른 시간에서도(시간,분까지,칼라) 세로선이 그어지게 부탁드립니다. 세로선이 안되면, 다른 형태로 만들어주세요.
프로필 이미지
왕팡
2019-08-13
247
글번호 131146
지표
답변완료

질문드립니다

안녕하세요 국내선물 3분봉상에서 일봉 5,10,20이평선의 당일, 전일, 전전일 수치를 구하는 방법을 알려주시면 감사하겠습니다. 수고하세요
프로필 이미지
맘속의행복
2019-08-13
261
글번호 131145
지표
답변완료

수정 부탁드립니다

아래의 지표식으로 예스글로벌에 적용시 차트에 아무것도 나오지않아 수정 부탁드립니다. 수식에 에러도 없는듯하고 적용은 되는데 화면에 구현이 안됩니다 input : period(9) , 횡보율 (0.5); var1*ema(c,period+1); if var1 > var1[1]*(1+횡보율/100) then plot1(var1, "이동평균1", red); else if var1 < var1[1]*(1-횡보율/100) then plot1 (var1 , "이동평균1", blue); else plot1 (var1, "이동평균1", cyan); var2*ema(c,period+2); if var2 > var2[1]*(1+횡보율/100) then plot2(var2, "이동평균2", red); else if var2 < var2[1]*(1-횡보율/100) then plot2 (var2 , "이동평균2", blue); else plot2 (var2, "이동평균2", cyan); var3*ema(c,period+3); if Var3 > Var3[1]*(1+횡보율/100) then plot3(Var3, "이동평균3", red); else if Var3 < var3[1]*(1-횡보율/100) then plot3 (var3 , "이동평균3", blue); else plot3 (var3, "이동평균3", cyan); var4*ema(c,period+4); if Var4 > Var4[1]*(1+횡보율/100) then plot4(Var4, "이동평균4", red); else if Var4 < var4[1]*(1-횡보율/100) then plot4 (var4 , "이동평균4", blue); else plot4 (var4, "이동평균4", cyan); var5*ema(c,period+5); if Var5 > Var5[1]*(1+횡보율/100) then plot5(Var5, "이동평균5", red); else if Var5 < var5[1]*(1-횡보율/100) then plot5 (var5 , "이동평균5", blue); else plot5 (var5, "이동평균5", cyan); var6*ema(c,period+6); if Var6 > Var6[1]*(1+횡보율/100) then plot6(Var6, "이동평균6", red); else if Var6 < var6[1]*(1-횡보율/100) then plot6 (var6 , "이동평균6", blue); else plot6 (var6, "이동평균6", cyan); var7*ema(c,period+7); if Var7 > Var7[1]*(1+횡보율/100) then plot7(Var7, "이동평균7", red); else if Var7 < var7[1]*(1-횡보율/100) then plot7 (var7, "이동평균7", blue); else plot7 (var7, "이동평균7", cyan); var8*ema(c,period+8); if Var8 > Var8[1]*(1+횡보율/100) then plot8(Var8, "이동평균8", red); else if Var8 < var8[1]*(1-횡보율/100) then plot8 (var8 , "이동평균8", blue); else plot8 (var8, "이동평균8", cyan); var9*ema(c,period+9); if Var9 > Var9[1]*(1+횡보율/100) then plot9(Var9, "이동평균9", red); else if Var9 < var9[1]*(1-횡보율/100) then plot9 (var9, "이동평균9", blue); else plot9 (var9, "이동평균9", cyan); var10*ema(c,period+10); if Var10 > var10[1]*(1+횡보율/100) then plot10(Var10, "이동평균10", red); else if var10 < var10[1]*(1-횡보율/100) then plot10 (var10 , "이동평균10", blue); else plot10 (var10, "이동평균10", cyan); var11*ema(c,period+11); if var11 > var11[1]*(1+횡보율/100) then plot11(var11, "이동평균11", red); else if var11 < var11[1]*(1-횡보율/100) then plot11 (var11 , "이동평균11", blue); else plot11 (var11, "이동평균11", cyan); var12*ema(c,period+12); if var12 > var1[1]*(1+횡보율/100) then plot12(var12, "이동평균12", red); else if var12 < var12[1]*(1-횡보율/100) then plot12 (var12 , "이동평균12", blue); else plot12 (var12, "이동평균12", cyan); var13*ema(c,period+13); if var13 > var1[1]*(1+횡보율/100) then plot13(var13, "이동평균13", red); else if var13 < var13[1]*(1-횡보율/100) then plot13 (var13 , "이동평균13", blue); else plot13 (var13, "이동평균13", cyan); var14*ema(c,period+14); if var14 > var1[1]*(1+횡보율/100) then plot14(var14, "이동평균14", red); else if var14 < var14[1]*(1-횡보율/100) then plot14 (var14 , "이동평균14", blue); else plot14 (var14, "이동평균14", cyan); var15*ema(c,period+15); if var15 > var1[1]*(1+횡보율/100) then plot15(var15, "이동평균15", red); else if var15 < var15[1]*(1-횡보율/100) then plot15 (var15 , "이동평균15", blue); else plot15 (var15, "이동평균15", cyan); var16*ema(c,period+16); if var16 > var1[1]*(1+횡보율/100) then plot16(var16, "이동평균16", red); else if var16 < var16[1]*(1-횡보율/100) then plot16 (var16 , "이동평균16", blue); else plot16 (var16, "이동평균16", cyan); var17*ema(c,period+17); if var17 > var1[1]*(1+횡보율/100) then plot17(var17, "이동평균17", red); else if var17 < var17[1]*(1-횡보율/100) then plot17 (var17 , "이동평균17", blue); else plot17 (var17, "이동평균17", cyan); var18*ema(c,period+18); if var18 > var1[1]*(1+횡보율/100) then plot18(var18, "이동평균18", red); else if var18 < var18[1]*(1-횡보율/100) then plot18 (var18 , "이동평균18", blue); else plot18 (var18, "이동평균18", cyan); var19*ema(c,period+19); if var19 > var1[1]*(1+횡보율/100) then plot19(var19, "이동평균19", red); else if var19 < var19[1]*(1-횡보율/100) then plot19 (var19 , "이동평균19", blue); else plot19 (var19, "이동평균19", cyan); var20*ema(c,period+20); if var20 > var1[1]*(1+횡보율/100) then plot20(var20, "이동평균20", red); else if var20 < var20[1]*(1-횡보율/100) then plot20 (var20 , "이동평균20", blue); else plot20 (var20, "이동평균20", cyan); var21*ema(c,period+21); if var21 > var1[1]*(1+횡보율/100) then plot21(var21, "이동평균21", red); else if var21 < var21[1]*(1-횡보율/100) then plot21(var21 , "이동평균21", blue); else plot21 (var21, "이동평균21", cyan); var22*ema(c,period+22); if var22 > var1[1]*(1+횡보율/100) then plot22(var22, "이동평균22", red); else if var22 < var22[1]*(1-횡보율/100) then plot22 (var22 , "이동평균22", blue); else plot22 (var22, "이동평균22", cyan); var23*ema(c,period+23); if var23 > var1[1]*(1+횡보율/100) then plot23(var23, "이동평균23", red); else if var23 < var23[1]*(1-횡보율/100) then plot23 (var23 , "이동평균23", blue); else plot23 (var23, "이동평균23", cyan); var24*ema(c,period+24); if var24 > var1[1]*(1+횡보율/100) then plot24(var24, "이동평균24", red); else if var24 < var24[1]*(1-횡보율/100) then plot24 (var24 , "이동평균24", blue); else plot24 (var24, "이동평균24", cyan); var25*ema(c,period+25); if var25 > var1[1]*(1+횡보율/100) then plot25(var25, "이동평균25", red); else if var25 < var25[1]*(1-횡보율/100) then plot25 (var25 , "이동평균25", blue); else plot25 (var25, "이동평균25", cyan); var26*ema(c,period+26); if var26 > var1[1]*(1+횡보율/100) then plot26(var26, "이동평균26", red); else if var26 < var26[1]*(1-횡보율/100) then plot26 (var26 , "이동평균26", blue); else plot26 (var26, "이동평균26", cyan); var27*ema(c,period+27); if var27 > var1[1]*(1+횡보율/100) then plot27(var27, "이동평균27", red); else if var27 < var27[1]*(1-횡보율/100) then plot27 (var27 , "이동평균27", blue); else plot27 (var27, "이동평균27", cyan); var28*ema(c,period+28); if var28 > var1[1]*(1+횡보율/100) then plot28(var28, "이동평균28", red); else if var28 < var28[1]*(1-횡보율/100) then plot28 (var28 , "이동평균28", blue); else plot28 (var28, "이동평균28", cyan); var29*ema(c,period+29); if var29 > var1[1]*(1+횡보율/100) then plot29(var29, "이동평균29", red); else if var29 < var29[1]*(1-횡보율/100) then plot29 (var29 , "이동평균29", blue); else plot29 (var29, "이동평균29", cyan); var30*ema(c,period+30); if var30 > var1[1]*(1+횡보율/100) then plot30(var30, "이동평균30", red); else if var30 < var30[1]*(1-횡보율/100) then plot30 (var30 , "이동평균30", blue); else plot30 (var30, "이동평균30", cyan);
프로필 이미지
브리아나금
2019-08-13
226
글번호 131144
지표
답변완료

해석 부탁드립니다.

안녕하세요? 아래의 1,2번 문장의 해석을 부탁드립니다.. 가능하면 자세하게 부탁드립니다. 1번 if SwingLow(1,L,Left,right,left+right+1) != -1 Then{ 2번 SL1 = Text_New(Sdate[Right],stime[Right],L[right]-PriceScale,); Text_SetColor(SL1,BLUE);
프로필 이미지
추세승리
2019-08-14
245
글번호 131141
지표
답변완료

선 그릴 수 있을까요

더운데 수고하십니다... 원하는 시간에서 20선의 값으로 수평선을 그릴 수 있는지요... 추가로 선 굵기도 조절이 가능했으면 합니다. 예를 들어 10시가 되면, 당일 수평선이 그려지는데 10시에서 각 이평선의 값이 나오는데 그 중에 20이평의 값으로 수평선이 그어졌으면 합니다. 그 날 당일만.
프로필 이미지
타잔94
2019-08-13
277
글번호 131139
지표
답변완료

문의드립니다

1.아래 계산식을 수식으로 나타내보고 싶습니다. 2019-05-11 23시10분 보유 포지션이 있으면 청산 23시 20분까지 진입 금지 2019-05-18 23시10분 보유 포지션이 있으면 청산 23시 20분까지 진입 금지 2019-05-25 23시10분 보유 포지션이 있으면 청산 23시 20분까지 진입 금지 2019-05-30 00시00분 보유 포지션이 있으면 청산 00시 10분까지 진입 금지 2019-06-10 00시10분 보유 포지션이 있으면 청산 00시 20분까지 진입 금지 2019-06-17 00시10분 보유 포지션이 있으면 청산 00시 20분까지 진입 금지 2019-06-24 00시10분 보유 포지션이 있으면 청산 00시 20분까지 진입 금지 2. 위식에 미래데이터인 2019년 8월16일 조건을 더하면 실전에서 적용이 안되나요??
프로필 이미지
부동여산
2019-08-13
261
글번호 131138
시스템
답변완료

문의합니다.

수고하십니다. 아래수식을 StochasticsK라인이 plot3(var1);라인을 상향매수 하향매도 신호 부탁드립니다. Input : Period(12), Period1(5), Period2(5); value1 = StochasticsK(Period,Period1); value2 = StochasticsD(Period,Period1,Period2); if crossup(value1,value2) and countif(CrossDown(value1,value2),3) < 1 Then var1 = value1; if CrossDown(value1,value2) and countif(CrossUp(value1,value2),3) < 1 then var1 = value1; plot3(var1); Plot1(StochasticsK(Period,Period1), "StochasticsK"); Plot2(StochasticsD(Period,Period1,Period2), "StochasticsD"); PlotBaseLine1(20, "기준선1"); PlotBaseLine2(80, "기준선2");
프로필 이미지
뚜벅뚜벅
2019-08-13
310
글번호 131128
시스템