커뮤니티
예스랭귀지 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의 분봉 값은 당일것만 사용하고 싶습니다.
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주 이동평균선을 하향돌파하면 매도
식좀 부탁드립니다.감사합니다
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