커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

추가부탁드립니다(72234질문)

감사히 잘 보았습니다. 그런데 매봉 생성될때마다 수량이 표시가 되어서 봉 보는데 조금 불편합니다. 제가 원하는것은 3시 45분체결량이 3시 35분 가격과 비교해서 종가봉위에 그 체결량을 표시하고 싶습니다.(매수세가 강했나 매도세가 강했나를 알고싶은겁니다). 만일 당일마지막봉이 완성이 안되어서 당일것은 익일 시초에 표시되도 괜찮습니다. 즉 익일 매봉 생성될때마다 표시할필요는없고 하루에 한번만 종가위에 표시하고 싶습니다. ex) ▲1234 , ▼2345 ...이렇게 차트마지막봉위에 한번만 그려지게하고 싶습니다. 색깔과 텍스트크기도 임의로 바꿀수있게 해주시면 감사하겠습니다
프로필 이미지
3579
2021-05-07
1504
글번호 148818
지표
답변완료

지표를 이용한 매수매도를 하고 싶은데요

예스트레이더코인을 깔아서 코인 자동매매를 해보려 하는데요 너무 깜깜이라 도움을 요청드려봅니다 저는 cci 와 스토캐스틱 슬로우 지표 신호두개를 동시에 사용하고 싶은데요 두개의 지표가 동시에 과매도 지점에 들어섰을시 매수 두개의 지표가 동시에 과열 지점에서 매도하고 싶습니다 또 거래가 손실이던 이익이던 한번 종료된후 세시간정도의 인터벌 휴식시간후 다시 동작이 되었으면 합니다 도움을 주시면 감사하겠습니다
프로필 이미지
babopapa
2021-05-07
1451
글번호 148817
지표
답변완료

수식작성

input : StartTime(220000),EndTime(035000),진입횟수(5),익절틱수(40),손절틱수(25); var : Tcond(false),entry(0); if StartTime < EndTime Then { SetStopEndofday(EndTime); } Else { if sDate != sDate[1] Then SetStopEndofday(EndTime); } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { if StartTime > EndTime Then SetStopEndofday(0); Tcond = true; entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Tcond == true Then { if MarketPosition == 0 and C > O and entry < 진입횟수 Then { Buy("b"); } if MarketPosition == 0 and C < O and entry < 진입횟수 Then { Sell("s"); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); ---------------------- 진입신호후 buy , sell 둘 다 -30틱에 주문이 되는 수식어를 포함 하고자 합니다. 미리 감사 드립니다.
프로필 이미지
푸른
2021-05-07
1248
글번호 148798
시스템
답변완료

시스템 이상 검토의뢰

수고 하십니다 ! Input : Period1(1), Period2(5), Period3(30), Period4(60), Period5(120),period6(240), Period7(480), Period8(960),period9(1920); var : sma1(0),sma2(0),sma3(0),sma4(0),sma5(0),sma6(0),sma7(0),sma8(0),sma9(0); sma1 = ma(C,period1); sma2 = ma(C,period2); sma3 = ma(C,period3); sma4 = ma(C,period4); sma5 = ma(C,period5); sma6 = ma(C,period6); sma7 = ma(C,period7); sma8 = ma(C,period8); sma9 = ma(C,period9); var : t(0),s(0); if MarketPosition <= 1 and sma1 < sma2 and sma2 < sma3 and sma3 < sma4 and sma4 < sma5 and sma5 < sma6 and sma6 < sma7 and sma7 < sma8 and sma8 < sma9 Then { t = -1; s = c; } if MarketPosition >= -1 and sma1 > sma2 and sma2 > sma3 and sma3 > sma4 and sma4 > sma5 and sma5 > sma6 and sma6 > sma7 and sma7 > sma8 and sma8 > sma9 Then { t = 1; s = c; } if t == -1 Then Buy ("b"); if t == 1 Then Sell("s"); if MarketPosition == 1 Then { sell("bs",AtStop,EntryPrice-PriceScale*10); if Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*15 Then ExitLong("bx",AtStop,Highest(H,BarsSinceEntry)-PriceScale*10); } if MarketPosition == -1 Then { Buy("sb",AtStop,EntryPrice+PriceScale*10); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*15 Then ExitShort("sx",AtStop,lowest(L,BarsSinceEntry)+PriceScale*10); } 위 수식 대로라면 0,1 같은 청산 이 나오면 안되는데 자꾸 나오네요 원인 이 무엇인가 검토하고 수정 좀 꼭 부탁 드립니다 ***** 수고 하세요 *****
프로필 이미지
tnsflwls
2021-05-07
1341
글번호 148793
시스템
답변완료

수식수정 문의

1. 상방 진입조건에 60선위에 5가 상방 변곡시 진입인데. 이때 조건을 1) 진입 시점 이전에 60과 240 이 데드이후에 60선이 5파이상이거나(상승변곡이 3번 이상) 2) 60선이 쌍바닥이 나왔을때 - (쌍바닥의 정의는 : 1)이평선이 꺽였을때의 지점의 이평선 가격을 비교 2)저점이 더 낮아진 쌍바닥이더라도 5틱 이내 or 국내선물 기준 0.15pt 이내는 쌍바닥으로 정의합니다) 3)60선이 턴한 지점간의 즉, 쌍바닥간의 봉의 개수는 30개 이상 나야함 이 조건을 추가하고 싶습니다 /////////////////////////////////////////// var : Period1(3),Period2(10),Period3(30),Period4(120),X5(0),X20(0),X60(0),XP(0),X(0),Y(0),Z(0),Q(0),Mav1(0), Mav2(0),Mav3(0),Mav4(0); Input : Left(3),right(3); var : B5(0),BP60(0),B20(0),B60(0),S5(0),S20(0),S60(0),SP60(0),Bcnt5(0),Bcnt20(0),Bcnt60(0),BcntP60(0), Scnt5(0), Scnt20(0), Scnt60(0),ScntP60(0),H1(0),H2(0),L1(0),L2(0); InPUT : 진입시작시간(090000), 매매종료시간(153000); if Bdate != Bdate[1] Then { Condition1 = False; Condition2 = False; } Var26 = ema(Ema(Ema(c,period1),period1),period1); //ma(c,period1); //5선 Var27 = ema(Ema(Ema(c,period2),period2),period2); //20선 Var28 = ema(Ema(Ema(c,period3),period3),period3); //60선 Var29 = ema(Ema(Ema(c,period4),period4),period4); //240선 if CrossUp(Var26,Var27) Then X5 = 1; //5-20 cross if CrossDown(Var26,Var27) Then X5 = -1; if CrossUp(Var27,Var28) Then X20 = 1; //20-60 cross if CrossDown(Var27,Var28) Then X20 = -1; if CrossUp(Var28,Var29) Then X60 = 1; //60-240 cross if CrossDown(Var28,Var29) Then X60 = -1; if CrossUp(Var26,Var28) Then XP = 1; //5-60 cross if CrossDown(Var26,Var28) Then XP = -1; if Var26 > var26[1] Then X = 1; if Var26 < var26[1] Then X = -1; if Var27 > var27[1] Then // X5 : 5-20 Cross X : 5선 Y = 1; // X20 : 20-60 Cross Y : 20선 if Var27 < var27[1] Then // X60 : 60-240 cross Z : 60선 Y = -1; // XP : 5-60 cross if Var28 > var28[1] Then Z = 1; if Var28 < var28[1] Then Z = -1; if X == 1 and X != X[1] and Bdate == Bdate[1] Then Condition1 = true; if X == -1 and X != X[1] and Bdate == Bdate[1] Then Condition2 = true; //////////////////////상방기준////////////////// if XP == 1 and X == 1 and Condition1 == true Then //5-60 정배열 & 5상승 { if X != X[1] Then //5선이 상승변곡 이면 B = 1 { BP60 = 1; } //5선이 상승변곡 & 20선 상승 & 5선 20선위 & 몸통이 5 BC 면 B =2 if BP60 == 1 and Y == 1 and Var26 > Var27 and C > O and (C+O)/2 >= var26 Then { BP60 = 2; } } else BP60 = 0; if sDate == 20210429 and sTime < 92000 Then MessageLog("%.2f",BP60); //////////////////////하방기준////////////////// if XP == -1 and X == -1 and Condition2 == true Then { if X!= X[1] Then { SP60 = 1; } if SP60 == 1 and Y == -1 and Var26 < Var27 and C < O and (C+O)/2 < var26 Then { SP60 = 2; } } else SP60 = 0; //////////////////////////상방시그널///////////////// if sTime >= 진입시작시간 and sTime <= 매매종료시간 and XP == 1 Then { if XP != XP[1] Then BcntP60 = 0; if BP60 == 2 and BP60 != BP60[1] Then { BcntP60 = BcntP60+1; if BcntP60 <= 1 Then Buy("BP60"); } } ////////////////////////하방 시그널////////////////// if sTime >= 진입시작시간 and sTime <= 매매종료시간 and XP == -1 Then { if XP != XP[1] Then ScntP60 = 0; if SP60 == 2 and SP60 != SP60[1] Then { ScntP60 = ScntP60+1; if ScntP60 <= 1 Then Sell("SP60"); } } if MarketPosition == 1 Then { if X5 == 1 and CountIf(X5 == -1,BarsSinceEntry) == 0 and X == -1 and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 2 and (C+O)/2 <= Var27 then ExitLong("콜청1",AtMarket); if X5 == -1 and X == -1 and CountIf(X == -1 and X != X[1],BarsSinceEntry) >= 1 and (C+O)/2 <= Var27 Then ExitLong("콜정2",AtMarket); } if MarketPosition == -1 Then { if X5 == -1 and CountIf(X5 == 1,BarsSinceEntry) == 0 and X == 1 and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 2 and (C+O)/2 >= Var27 Then ExitShort("풋청1",AtMarket); if X5 == 1 and X == 1 and CountIf(X == 1 and X != X[1],BarsSinceEntry) >= 1 and (C+O)/2 >= Var27 Then ExitShort("풋정2",AtMarket); }
프로필 이미지
중추신경
2021-05-07
1259
글번호 148792
시스템
답변완료

수식 문의

1. 입력한 시간에 data2 양봉 and data3 양봉 and data4 음봉 then buy(); - 09시 입력결과와 13시 입력결과를 비교코자 함 2. 입력한 시간부터 data2 연속양봉 2개 and data3 연속양봉 3개 and data4 연속음봉 4개 then buy(); - 09시 입력결과와 13시 입력결과를 비교코자 함 3. 해외선물 수식 - 데이트레이딩용 - 금일 오전 9시부터 익일 오전8시까지 거래할 수 있는 시간 수식 부탁드립니다.
프로필 이미지
목마와숙녀
2021-05-07
1229
글번호 148791
시스템
답변완료

수식도움좀 부탁드려요 ,,ㅜㅡㅜ

종가가 볼린저밴드 360선 돌파 종목검색식 부탁드려요ㅜㅡㅜ
프로필 이미지
vhvh
2021-05-07
1202
글번호 148789
종목검색
답변완료

손절식 추가요

안녕하세요 늘 감사합니다 아래식에서요 매수1 매도1 는 손절 65틱 매수2 매도2 는 손절 100틱 수정좀 부탁합니다 그리고 모든신호진입해서 고점대비 100틱 이상 내령오면 진입청산 좀 추가해주세요 외부 변수로 부탁합니다 input : 완전청산 (50); input : 손절가 (15); var : T1(0),T2(0); #var : tX(0),BH(0),SH(0); var : T21(0),T26(0),T23(0),T24(0),T25(0); var : T11(0),T22(0),T33(0),T44(0),T55(0); var : Tcond(false); # 시간제한 var : mav1(0),mav2(0),Lcnt(0),Hcnt(0),BH(0),SL(0); var : T(0),S(0),idx(0),entry2(False); # 딱 한번 매매 var1 = ma(c,0); var2 = ma(C,0); var3 = ma(C,0); var4 = ma(c,0); if (sdate != sdate[1] and stime >= 101600) or (sdate == sdate[1] and stime >= 101600 and stime[1] < 101600) Then { Tcond = true; idx = 0; entry2 = true; } idx = idx+1; if (sdate != sdate[1] and stime >= 172000) or (sdate == sdate[1] and stime >= 172000 and stime[1] < 172000) Then { Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if idx <= 10 then { if MarketPosition != 0 and MarketPosition != MarketPosition[1] and (IsEntryName("매수1") == true or IsEntryName("매도1") == true) Then entry2 = False; } if var1 > var2 and var1 > var3 and var1 > var4 and var4 > var2 Then T1 = 1; if var1 < var2 and var1 < var3 and var1 < var4 and var4 < var2 Then T1 = -1; var5 = ma(C,30); if CrossUp(C,var5) Then { T = 1; S = 0; } if CrossDown(C,var5) Then { T = -1; S = 0; } if Tcond == true then { if T1 == 1 and T1[1] == -1 Then buy("매수1"); if T1 == -1 and T1[1] == 1 Then sell("매도1"); if T == 1 Then { S = S+1; if idx >= 10 and S == 10 Then { if entry2 == true Then { Buy("매수2"); } Entry2 = False; } } if T == -1 Then { S = S+1; if idx >= 10 and S == 10 then { if entry2 == true Then { Sell("매도2"); } entry2 = False; } } } if MarketPosition == 1 Then { ExitLong("bx5",AtLimit,EntryPrice+PriceScale*완전청산,"",5,1); ExitLong("bx6",AtStop,EntryPrice-PriceScale*손절가,"",5,1); } Else Lcnt = 0; if MarketPosition == -1 Then { ExitShort("sx5",AtLimit,EntryPrice-PriceScale*완전청산,"",5,1); ExitShort("sx6",AtStop,EntryPrice+PriceScale*손절가,"",5,1); } Else Hcnt = 0;
프로필 이미지
kjdkdh
2021-05-07
1148
글번호 148787
시스템
답변완료

문의합니다

input : 전환선기간(9),기준선기간(26),선행스팬2기간(52),시작시간(080000),종료시간(230000); Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0),구름상단(0),구름하단(0),Tcond(false); 전환선 = (Highest(H, 전환선기간) + Lowest(L, 전환선기간)) / 2; 기준선 = (Highest(H, 기준선기간) + Lowest(L, 기준선기간)) / 2; 선행스팬1 = (전환선[25] + 기준선[25]) / 2 ; 선행스팬2 = (Highest(H, 선행스팬2기간)[25] + Lowest(L, 선행스팬2기간)[25]) / 2; 구름상단 = max(선행스팬1,선행스팬2); 구름하단 = Min(선행스팬1,선행스팬2); 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 MarketPosition == 1 Then exitlong(); if MarketPosition == -1 Then ExitShort(); } if Tcond == true then{ if crossup(기준선,구름상단) Then buy(); if CrossDown(기준선,구름하단) Then sell(); } 위 수식의 발생시그널은 그대로 두고 매수는 발생시그널 봉의 저가까지 내려오는 봉에서 매수(15봉이내.변수처리). 매도는 발생시그널 봉의 고가까지 올라오는 봉에서 매도.(15봉이내, 변수처리) 수익(50틱) 및 손절(20틱) 수식추가하여 주시고 트레일링 스탑기능도 가능하면 추가 부탁드립니다. 종료시간에 맞추어 진입중인 모든계약 청산토록 설정바랍니다 만일, 발생시그널을 그대로 둘수 없다면 삼각표시(3개)의 지표추가하여주시기 바랍니다 감사합니다
프로필 이미지
gopang
2021-05-07
1416
글번호 148786
시스템