커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8207
글번호 230811
답변완료
수식문의요
안녕하세요
1.제가 지정한 다음날 시가 매수요
2. 2차매수는 일봉상 주가가 5일선 아래로 떨어질 경우(5일선 터치하고 상승해도) 다음날 시가로 2차매수
3. 1차매수 가격 300만원, 2차매수가격 500만원 이렇게 나누어 입력해주세요
4. 매도는 2차 매수 끝난후에 5일선 회복후 상승하다 다시 음봉으로 5일선 아래로 떨어질경우(5일선 터치도 동일) 그 다음날 시가 매도 꼭 음봉캔들이어야 합니다
5. 매도 2번째는 평균 수익률이 80프로 이상일 경우 입니다
2013-12-09
190
글번호 70281
답변완료
선물지표수식부탁드립니다
1Upticks의거래량이10개이상
1Downticks의거래량이10개이상을 하루누적분으로 만들어주세요부탁드립니다
2013-12-09
191
글번호 70273
답변완료
검색
안녕하세요
트릭스기울기영선돌파와 주가20이평동시에 돌파종목검색식부탁합니다
2013-12-09
201
글번호 70272
답변완료
시가매수 재문의
문의내용에 대한 답변은 감사드리나, 좀더 정확한 답변 부탁드립니다.
제가 원하는 것은 옵션만기일을 제외하고 시가매수하여 종가매도하는
간단한 내용입니다.
답변주신 수식을 적용해보니, 옵션만기일은 신호가 발생하지 않으나,
옵션만기 다음날도 신호가 발생하지 않고 있네요. 옵션만기 다음날은
신호가 발생하여야 합니다.
또다른 문제는 2013년 8월 8일의 경우 옵션만기일임에도 진입신호가
발생하였습니다.
바쁘시겠지만 좀 더 검토하셔서 정확하게 신호가 발생되는 수식 부탁드립니다.
감사합니다.
-----------------------------------------------------------
안녕하세요 예스스탁입니다.
해당식은 만기일 다음날만시초가에 신호가 발생하지 않는 식입니다.
위 내용이 맞으시면 해당식 정상적으로 신호가 발생하고 있습니다.
만약 만기일날에 시초가에 매수를 안하고자 하시면
아래와 같이 작성해 사용하셔야 합니다.
해당식은 전일 마지막봉에 if문을 충족시켜 다음날 시초가 들어올때
신호가 발생하는 것이므로 2번째 주 수요일에 StopTrading을 true로 만들어
다음날 시초가에 신호가 안나오게 하셔야 합니다.
Var : ExitTime(150400),TimeDelay(0);
Var : DateChecked(False), StopTrading(False);
Var : va1(0), va2(0), va3(0);
//옵션만기일 청산
va1= int(date/100)-int(date/10000)*100;
va2= date - int(date/100)*100;
va3= DayOfWeek(date);
If va1%1 == 0 And va2 >= 8 And va2 <= 14 And va3 == 3 Then
{
StopTrading = True;
}
If STime == 151500 and StopTrading == false Then
{
Buy("Buy", AtMarket,def, 1);
}
If Time >= ExitTime Then Begin
ExitShort("DayEnd ExitShort");
ExitLong("DayEnd ExitLong");
DateChecked = False;
StopTrading = False;
End;
전일 마지막봉에 if문을 충족시켜 다음날 시초가 들어올때 신호가 발생하는 타입이므로
마지막봉은 시간으로만 지정이 가능합니다.
그러므로 마지막봉으로 지정한 시간에 끝나지 않으면 신호가 발생하지 않고
해당 부분은 따로 처리가 되지 않습니다.
즐거운 하루되세요
> 착한이 님이 쓴 글입니다.
> 제목 : 시가매수 문의
> 수고하십니다.
아래와 같이 옵션만기일을 제외하고 시가매수하여 종가매도하려고 하는데
옵션만기일 근처에 제대로 신호가 안나오는데 수정부탁드립니다.
Var : ExitTime(150400),TimeDelay(0);
Var : DateChecked(False), StopTrading(False);
Var : va1(0), va2(0), va3(0);
//옵션만기일 청산
va1= int(date/100)-int(date/10000)*100;
va2= date - int(date/100)*100;
va3= DayOfWeek(date);
If va1%1 == 0 And va2 >= 8 And va2 <= 14 And va3 == 4 Then
{
StopTrading = True;
}
If STime == 151500 and !StopTrading Then
{
Buy("Buy", AtMarket, 1);
}
If Time >= ExitTime Then Begin
ExitShort("DayEnd ExitShort");
ExitLong("DayEnd ExitLong");
DateChecked = False;
StopTrading = False;
End;
2013-12-09
262
글번호 70269
답변완료
시스템 수식 문의드려요
안녕하세요.
지금 하려는게..
예를 들자면 이런겁니다.
유로화 1계약을 지금 매수로 가지고 있다면
1계약을 stop-market 매도내고(a주문)
1계약을 limit 으로 매도 냅니다.(b주문)
a, b 주문 둘다 수동으로요. 주문종합화면에서 냅니다.
수식으로 할것은,
a주문이든 b주문이든 하나가 체결되면
다른 하나를 취소하는겁니다.
oco 주문으로 만드는거죠.
a b 주문 자체가 수동으로 내는거다보니
주문명칭을 활용할 수가 없어서 어찌해야할지 모르겠습니다.
그리고 여쭤볼 것이
만약에 제가 유로화 포지션이 없는상태에서
exitlong 주문을 내면 그냥 주문이 실행이 안되는건가요?
2013-12-09
185
글번호 70266
답변완료
수식문의
[청산조건]
if MarketPosition == 1 Then{
if countif(C<O,3) == 3 and C < EntryPrice Then
ExitLong();
}
if MarketPosition == -1 Then{
if countif(C>O,3) == 3 and C > EntryPrice Then
ExitShort();
}
위 수식은 기존수식(아래수식 참고)중의 여러가지 청산조건중에 한가지 청산조건입니다.
청산기준은 해당봉 완성 기준입니다.
1. 위의 청산 조건에서 청산시 반대방향으로 바로 진입이 가능하게 설정하고 싶습니다.
(매수로 ExitLong 났을때, 바로 매도진입 / 매도는 반대로)
2. 현재 1계약으로 운용하고 있으며, 이 1계약은 기존의 진입 수식대로 움직이고
1번의 진입 신호 발생시만 여분의 1계약 진입이 가능하도록 수식 부탁드립니다.
따라서, 총 2계약이 운용되게 됩니다.
3. 1번의 경우 ExitLong, ExitShort의 손절이 -1pt 이상 일때만 진입이 가능하도록 수정바랍니다.
따라서, -1pt 미만일때는 진입이 안되기때문에 1계약만 기존 신호대로 운용되게 됩니다.
4. 1번 진입 신호 발생후 손익이 1pt 이상 일때 청산되도록 부탁드리고,
진입신호 발생후 손절이 -1pt 이상 일때 청산되도록 부탁드립니다.
[기존수식]
input : BBP(20),dv(2);
var : BBup(0),BBdn(0);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBp,Dv);
if C > O and C <= BBdn Then
var1 = 1;
if MarketPosition == 0 and var1 == 1 and C > O Then{
Buy("매수");
}
if C < O and C >= BBdn Then
var1 = -1;
if MarketPosition == 0 and var1 == -1 and C < O Then{
sell("매도");
}
if MarketPosition == 1 Then{
if countif(C<O,3) == 3 and C < EntryPrice Then
ExitLong();
}
if MarketPosition == -1 Then{
if countif(C>O,3) == 3 and C > EntryPrice Then
ExitShort();
}
2013-12-09
181
글번호 70265
답변완료
청산식오류수정
항상감사드립니다
아래 특정진입조건에 대한(B1/B11,S1/S11) 진입청산식이 구현이 되질않습니다
수정부탁드립니다
var : cnt(0),count(0);
var1 = ma(c,9);
var2 = ma(c,26);
if CrossDown(var1,var2) Then
value1 = var2;
if var2 < value1 Then
value1 = var2; #매도라인#
if CrossUp(var1,var2) Then
value2 = var2;
if var2 > value2 Then
value2 = var2; #매수라인#
value3 = var2;
if date != date[1] Then{
value11 = value1[1];
value21 = value2[1];
value31 = value3[1];
}
################################
##### 삼각가중 이평 #####
################################
VAR: Length1(20),Length2(60);
Variables: TLen1(0),TRIma1(0),TLen2(0),TRIma2(0);
TLen1 = Ceiling((Length1 + 1) * 0.5);
TLen2 = Ceiling((Length2 + 1) * 0.5);
var23 = ma(ma(H, TLen1), TLen1);
var22 = ma(ma(C, TLen1), TLen1);
var21 = ma(ma(L, TLen1), TLen1);
var53 = ma(ma(H, TLen2), TLen2);
var52 = ma(ma(C, TLen2), TLen2);
var51 = ma(ma(L, TLen2), TLen2);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if (count == 0 and dayopen > value2 and value1==value11) Then
buy("B1");
if (stime == 151500 and NextBarOpen > value2) Then
buy("B11",AtMarket);
if (count == 0 and DayOpen < value1 and value2==value21) Then
sell("S1");
if (stime == 151500 and NextBarOpen < value1) Then
sell("S11",AtMarket);
if count == 1 Then{
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Condition3 = false;
if MarketPosition == 1 and Condition3 == false and value2 > value1 and value1 == value1[1] Then{
value7 = value1;
Condition3 = True;
}
}
if count >= 1 and Condition3 == true Then{
if crossup(c,value7) Then
buy("Bb1");
if CrossDown(c,value7) Then
sell("Bs1");
}
if count == 1 Then{
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Condition2 = false;
if MarketPosition == -1 and Condition2 == false and value2 >= value1 and value2 == value2[1] Then{
value6 = value2;
Condition2 = true;
}
}
if count >= 1 and Condition2 == true Then{
if crossup(c,value6) Then
buy("Sb1");
if CrossDown(c,value6) Then
sell("Ss1");
}
##### B1/B11,S1/S11 청산 #####
if MarketPosition == 1 and (IsExitName("B1") == true or IsExitName("B11") == true) Then{
if CrossDown(c,var51) then
exitlong("eL11");
}
if MarketPosition == -1 and (IsExitName("S1") == true or IsExitName("S11") == true) Then{
if crossup(c,var53) then
exitshort("eS11");
}
2013-12-09
193
글번호 70264
답변완료
수직선 긋기
Y축 뒤집기를 하면 수직선이 위에서 아래로 나오는데요
Y축뒤집기가 아닌 정상상태에서
수직선을 위에서아래로 긋는 방법을 알고 싶습니다
감사합니다
2013-12-09
191
글번호 70263
답변완료
수식문의 드립니다
36선이 200선 위에있고 36선을 2틱이상 돌파한 캔들이 되돌림하여 36선에
터치하는 즉시 진입이고
진입즉시 손절7틱 청산은 30틱이익이면 청산합니다
그리고 트레이딩 시간은 17 시부터 01 시까지로 제한하고 싶습니다
또는 뉴욕장에만 거래하거나 유럽장에만 거래하거나
시간을 정해놓고할수있도록 만들고 싶네요..
항상 감사합니다
2013-12-09
214
글번호 70262