커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표식 수정

감사드립니다 아래 손절식을 구현해보니 손절후 같은방향으로 재진입합니다 손절폭도 9틱,11틱으로 15틱설정값이 나오질않네요(첨부1) 5-1. Condition1 = ExitDate(1) == true and IsExitName("bx") and MarketPosition(1) == 1; Condition2 = ExitDate(1) == true and IsExitName("sx") and MarketPosition(1) == -1; if (MarketPosition == -1 or (MarketPosition == 0 and Condition1 == False)) and 매수조건 Then buy(); if (MarketPosition == 1 or (MarketPosition == 0 and Condition2 == False)) and 매도조건 Then sell(); if MarketPosition == 1 Then{ if (highest(H,BarsSinceEntry) <= EntryPrice+PriceScale*10) Then ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-PriceScale*15); } if MarketPosition == -1 Then{ if ( Lowest(L,BarsSinceEntry) >= EntryPrice-PriceScale*10) Then ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale* 15); } 5-2 위 5-1손절식을 수정했다면 아래조건으로 시스템을 수정해주시기 바랍니다 1). 매수신호(B1)/매도신호(S1) 이후 손절 30틱발생시 같은방향으로 진입금지 (위식은 시스템에 적용해보니 정상적으로 나옵니다) 2) 위 1)번조건에서 5-1)식을 합성해서 사용하고저 합니다 1)번식이 구동되는 상태에서 5-1)번식인 10틱이내의 이익발생시 15틱손절발생시 같은방향진입금지... 1)번식 Condition1 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true and MarketPosition(1) == 1; Condition2 = ExitDate(1) == sdate and IsExitName("StopLoss",1) == true and MarketPosition(1) == -1; if (c>o and var10 == 1 and var20==1 and var11 == 1 and var12== 1 and var3>10) and ((MarketPosition == 0 and Condition1 == false) or MarketPosition == -1) Then buy("B1"); if (c<o and var10 == -1 and var20==-1 and var11 == -1 and var12== -1 and var3<90) and ((MarketPosition == 0 and Condition2 == false) or MarketPosition == 1) Then sell("S1") ; 5-1)식(수정필요) Condition1 = ExitDate(1) == true and IsExitName("bx") and MarketPosition(1) == 1; Condition2 = ExitDate(1) == true and IsExitName("sx") and MarketPosition(1) == -1; if (MarketPosition == -1 or (MarketPosition == 0 and Condition1 == False)) and (c>o and var10 == 1 and var20==1 and var11 == 1 and var12== 1 and var3>10) Then buy("B2"); if (MarketPosition == 1 or (MarketPosition == 0 and Condition2 == False)) and (c<o and var10 == -1 and var20==-1 and var11 == -1 and var12== -1 and var3<90) Then sell("S2"); if MarketPosition == 1 Then{ if (highest(H,BarsSinceEntry) <= EntryPrice+PriceScale*10) Then ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-PriceScale*15); } if MarketPosition == -1 Then{ if ( Lowest(L,BarsSinceEntry) >= EntryPrice-PriceScale*10) Then ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale* 15); } 6-1.아래 지표식을 표현해보니 한가지만 표현됩니다 상승방향과 하락방향을 따로 같은챠트에 표현하고자 합니다. 그래프가 상승방향은 0선위로 가고 하락방향은 0선아래로 향합니다 var : HH(0),LL(0); value1 = macd(5,20)*100; if date != date[1] Then{ HH = value1; LL = value1; } if HH > value1 Then value1 = HH; if LL < value1 Then value1 = LL; plot1(HH,"상승방향",red,def,2); plot2(LL,"하락방향",BLUE,def,2); 6-2 아래지표식도 한가지만 표현되고 위의지표식이 바뀌면 달라질듯 합니다 var : HH(0),LL(0); value1 = macd(5,20)*100; if date != date[1] Then{ HH = value1; LL = value1; } if HH > value1 Then value1 = HH; if LL < value1 Then value1 = LL; if HH > HH[1] Then var1 = 1; Else var1 = 0; if LL < LL[1] Then var2 = 1; Else var2 = 0; plot1(var1,"상승방향",red,def,2); plot2(var2,"하락방향",BLUE,def,2); 7.시스템에서의 시간의미 아침 09시 05분 01초 부터 시스템을 가동할려고 하면 090500 또는 090400 어느것을 적용해야하나요 그리고 시스템에 매매설정란 강제청산 14:30 발생시간과 시스템식에서의 14:30청산식과의 차이가 나는데요 왜 차이가 나는지 궁금합니다.
프로필 이미지
한산도
2013-08-18
220
글번호 66544
지표
답변완료

문의 드립니다

매수식 몇개를 짜고 그것들을 한개의 식으로 합치려고 하는데 각각의 매수식마다 목표가와 손절가를 따로 정하려고 하니 잘 안되네요 매수1식의 청산식1 if MarketPosition == 1 Then{ exitlong("매수청산1",OnClose,EntryPrice+4.0,"매수1"); if C < ma(c,60) Then ExitLong("매수손절1",OnClose,def,"매수1"); } 매수1식의 청산식2 if MarketPosition == 1 Then{ SetStopProfittarget(4.0,PointStop); if C < ma(c,60) Then ExitLong("매수손절1",OnClose,def,"매수1"); } 제가 원하는 목표청산식은 목표가에 도달하자마자 청산하는건데 청산식 1번으로 해버리면 목표가에 도달해도 종가까지 본후에 청산이 되는거죠? 그렇다고 청산식 2번으로 해버리면 다음에 붙일 매수2,매수3.....식에게도 setstopProfittarget식이 적용이 될것같아서요 각각의 매수식의 목표수익 청산방식을 목표가 도달 즉시 청산으로 식을 짜고 싶습니다.
프로필 이미지
아싸라삐
2013-08-16
144
글번호 66543
시스템
답변완료

주간 +CME 복합 시스템에서

장기 이평선을 사용할때 전일 이전의 값은 주간장의 데이터만 가져다 쓸 수 있는 방법이 있나요? CME의 분봉 값은 당일것만 사용하고 싶습니다.
프로필 이미지
ok98
2013-08-16
187
글번호 66542
사용자 함수
답변완료

재문의 드립니다.

손절후 반대매매하는 것을 프로그래밍 하려하는데요. 1. 현재 포지션과 금액에서 0.1포인트 손해일 경우 반대 매매가 행해지게 하고 싶습니다. 2. 산가격과 포지션에서 0.1포인트 손해일 경우 반대 매매가 행해지게 하고 싶습니다.
프로필 이미지
파란맘
2013-08-16
157
글번호 66538
시스템
답변완료

재문의 드립니다

제가 문의했던 글에 대한 수식을 작성해 주셨는데 각 식의 목표가에 대한 방법은 잘 답해주셨는데 각 손절가에 대한 식이 없어서 다시 문의 드립니다. 손절가도 목표가와 같은방식으로 해보려고 했는데 exitlong을 두번설정하니 값이 다르게 나와서요;; 확인후 답변 부탁드립니다 아래글이 제가 올린글과 답변해주신 글입니다 ============================================================================== 안녕하세요 예스스탁입니다. #data2 KP외국인순매수금액 #data3 KP개인순매수금액 #수급합이 0이므로 기관은 data2+data3의 역수 input : P1(10),P2(20),BuyProfit1(3),BuyProfit2(2),SellProfit1(4),SellProfit2(2.5); var : D1(0,data1),D2(0,data1),D3(0,data1),ma1(0,data1),ma2(0,data1); D1 = data2(c); D2 = data2(c); D3 = -(D1+D2); ma1 = data1(ma(c,P1)); ma2 = data1(ma(c,P2)); if stime >= 090000 and stime < 110000 and D2 > 0 and D3 > 0 and C > ma1 Then buy("b1"); if MarketPosition == 1 Then ExitLong("bx1",atlimit,EntryPrice+BuyProfit1,"b1"); if stime >= 090000 and stime < 110000 and D2 > 0 and D3 > 0 and C > ma2 Then buy("b2"); if MarketPosition == 1 Then ExitLong("bx2",atlimit,EntryPrice+BuyProfit2,"b2"); if stime >= 090000 and stime < 110000 and D2 < 0 and D3 < 0 and C < ma1 Then Sell("s1"); if MarketPosition == -1 Then ExitShort("sx1",atlimit,EntryPrice-SellProfit1,"S1"); if stime >= 090000 and stime < 110000 and D2 < 0 and D3 < 0 and C < ma2 Then Sell("s2"); if MarketPosition == -1 Then ExitShort("sx2",atlimit,EntryPrice-SellProfit2,"S2"); var : va1(0,data1),va2(0,data1),va3(0,data1); va1 = data1(int(date/100)-int(date/10000)*100); va2 = data1(date - int(date/100)*100); va3 = data1(DayOfWeek(date)); if va1%3 == 0 and va2 >= 8 and va2 <= 14 and va3 == 4 then SetStopEndofday(144500);#선물 만기일은 14시 45분 Else SetStopEndofday(150000);#만기일이 아니면 15시 즐거운 하루되세요 > 아싸라삐 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다~ > 5분봉에서 매수1식 09시~11시사이에 외인코스피금액 > 0 and 기관 코스피금액 > 0 , 종가가 10이평 위에있을때 매수 종가가 20이평 아래서 끝나면 손절(최적화가능) 목표가는 3포인트(최적화가능) 매수2식 09시~11시사이에 외인코스피금액 > 0 and 외인선물 > 0 , 종가가 20이평 위에있을때 매수 종가가 40이평 아래서 끝나면 손절(최적화가능) 목표가는 2포인트(최적화가능) 매도1식 09시~11시사이에 외인코스피금액 < 0 and 기관 코스피금액 < 0 , 종가가 10이평 아래에있을때 매도 종가가 20이평 위에서 끝나면 손절(최적화가능) 목표가는 4포인트(최적화가능) 매도2식 09시~11시사이에 외인코스피금액 < 0 and 외인선물 < 0 , 종가가 20이평 아래에있을때 매도 종가가 40이평 위에서 끝나면 손절(최적화가능) 목표가는 2.5포인트(최적화가능) 그리고 모든 포지션을 동시호가전 당일 청산하고 싶습니다 평소에는 3시5분에 동시호가가 들어가니까 3시에 모든 포지션 청산되고 만기일은 2시 45분 에 모든 포지션 청산되게 식을 짜고 싶어요 따로따로 식을 만들어 봤는데 합치려고 하니까 목표가를 다르게 하는것도 많이 헷갈리고 그렇네요 도와주세용~ㅎ ==============================================================================
프로필 이미지
아싸라삐
2013-08-16
148
글번호 66534
시스템

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2013-08-16
0
글번호 66532
지표
답변완료

시스템 문의드립니다

매매대상은 코스피선물 일봉이고요 kospi200주봉을 이용해서 kospi200지수 3주 이동평균선이 매주 화요일마다 산출된 3주 이동평균선을 상향돌파하면 매수 kospi200지수 3주 이동평균선이 매주 화요일마다 산출된 3주 이동평균선을 하향돌파하면 매도 식좀 부탁드립니다.감사합니다
프로필 이미지
trustnh
2013-08-16
167
글번호 66531
시스템
답변완료

분봉상에 일봉 Positive Volume Index 표현 방법 문의합니다.

수고하십니다. 분봉상에 일봉 Positive Volume Index 표현 방법 문의합니다. 감사합니다.
프로필 이미지
큰상
2013-08-16
183
글번호 66521
지표
답변완료

재문의 드립니다.

앞의 31708에서 롱텀의 K가 D보다 크고 숏텀의 K가 50보다 크면 매수 반대일때 매도인데 한번 매수가 나오면 다음 매도조건이 되어 매도신호가 나올때까지 다른 신호가 안나왔으면 합니다. 무엇을 어떻게 수정해야하는지 수식좀 부탁합니다.
프로필 이미지
에헤라디야
2013-08-16
168
글번호 66518
시스템