커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6197
글번호 230811
답변완료
문의드립니다
안녕하세요?
아래수식에서 신호발생후 한개봉이후에 다시조건이만족하면 신호가발생하게해주세요
제가원하는것은 양봉3개 또는 음봉3개가 나올때마다 발생하는sound를 듣기위함입니다
항시집중할수가없어서 입니다
아래수식이가지고있는 저에게 한가지문제점은 포지션을 보유하고있는경우에는 양봉3개나 음봉3개가 다시발생해도 이미보유하고있는포지션으로 인해 보유포지션의 신호가 청산이되기전가지는 양봉3개 또는 음봉3개가 나와도 또발생하지않는점입니다
if CountIF(C>O,3)==3 Then
buy();
if CountIF(C<O,3)==3 Then
Sell();
감사합니다
2017-11-01
231
글번호 113827
답변완료
수식 문의 드립니다.
수고하십니다.
아래 수식을 기본으로
변경가능한 일정한 기간(P)내에 Condition1의 조건을 1회이상 만족하고 그 기간동안에
만족한 회수를 합산한 검색결과값으로 나타내는 종목검색식으로 변경 해주시면 고맙겠습니다.
input : P(10);
Condition1 = V >= V[1]*1.5 and C > O and H-max(C,O) >= abs(C-O)*0.5;
if countif(Condition1==true,P) >= 2 Then
find(1);
2017-11-01
207
글번호 113826
답변완료
수식작성
시스템트레이딩 수식좀 부탁드립니다.
선물분봉차트로 당일청산입니다. 5분봉으로 하고 당일고가+당일저가/2의 중간값을 중앙선으로 합니다. 창은 두 개를 띄어놓고 매수진입창과 매도진입창을 따로 운영합니다. 매수진입창은 지수가 중앙선1틱위로 올라가며는 매수진입, 손절은 진입가기준 5틱반대로 가며는 손절입니다. 매도진입창은 지수가 중앙선 아래로 1틱 내려가며는 매도진입, 손절은 진입가 5틱반대로 가며는 손절입니다. 하나의 창에서 손절이 하루 3번 나오며는 그 창에서는 더 이상 진입하지 않습니다. 차트수식입니다. (dayhigh()+daylow())/2
감사합니다.
2017-11-01
187
글번호 113817
답변완료
수식
아래 수식을 매수진입과 매도진입으로 나누어 두 개창을 뛰어놓고 분활해서 거래하고자 하는데 수식을 두가지수식으로 나누어서 만들어 주시며는 감사하겠습니다, 감사합니다.
Var : vA_value(0), vB_value(0),vStartMin(0);
input : BarsEntryInterval(20), pMaxContracts(4),pTimeInterval(11);
var : PreTT(0), TT(0),cond99(false);
If date <> date[1] Then Begin
vA_value = H;
vB_value = L;
Cond99 = False;
vStartMin = TimeToMinutes(stime);
PreTT = TotalTrades[1];
End;
If Cond99 == False Then Begin
if vA_value < H Then vA_value = H;
if vB_value > L Then vB_value = L;
End;
If (TimeToMinutes(stime) - vStartMin) == pTimeInterval And Cond99 == False Then Begin
Cond99 = True;
End;
if Cond99 Then Begin
If CrossUp(C, vA_value) Then ExitShort("BX");
If CrossDown(C, vB_value) Then ExitLong("SX");
If time <= 115900 And TT - PreTT <= 2 Then Begin
If CrossUp(C, vA_value) Then Buy("B");
If CrossDown(C, vB_value) Then Sell("S");
End;
if MarketPosition == 1 And C > vA_value And CurrentContracts < pMaxContracts Then Begin
if BarsSinceEntry == ( 1 * BarsEntryInterval) Then
Buy("reBuy1");
if BarsSinceEntry == ( 2 * BarsEntryInterval)
Then
Buy("reBuy2");
if BarsSinceEntry == ( 3 * BarsEntryInterval)
Then
Buy("reBuy3");
End
Else if MarketPosition == -1 And C < vB_value And CurrentContracts < pMaxContracts Then Begin
if BarsSinceEntry == ( 1 * BarsEntryInterval) Then
Sell("reSell1");
if BarsSinceEntry == ( 2 * BarsEntryInterval)
Then
Sell("reSell2");
if BarsSinceEntry == ( 3 * BarsEntryInterval)
Then
Sell("reSell3");
End;
End;
SetStopEndofday(151500);
2017-11-01
199
글번호 113816
답변완료
이것저것 문의드립니다.
도와주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1,2번은 지표들로 바이너리 웨이브 지표를 만들려고 하는데요. 가능할런지요. 저런 식의 분봉 참조가 불가능하다면 30분봉 하나만이라도 부탁드립니다.
1.
1분봉기준
30분 RSI 70 이상
10분 RSI 70 이상
5분 RSI 70 이상
2.
1분봉기준
5분
MFI 변화율 상승이면(이전봉보다 더 크면) 1
BANDWIDTH 동일(변화율 상승이면)
스토캐스틱 동일
매수잔량-매도잔량 동일
상승형거래량-하락형거래량 동일
상승형체결건수-하락형체결건수 동일
3.
모든 조건 충족시 진입
-20 이평이 50이평보다 크다
-스토캐스틱(5,3)이 25 이하
-해머형 or 관통형 발생(발생하면 신호봉이라고 침)
-신호봉의 종가가 직전봉의 고점보다 낮음.
청산
목표청산 2*ATR
손절청산 ATR- 진입봉의 저가
4. 시스템
이평선 위로 봉이 세개 이상 있을 때만 진입
이평선 아래로 봉이 세개 이상 있을 때만 청산
5. 시스템질문
헷갈려서 질문드립니다.
-1 먄약에 매수는 종가가 당일 고가와 저가변동폭의 하위 20% 이내에 형성되면 당일에 매수하고
-2 종가가 당일 고가와 저가 변동폭의 상위 20%이내에 형성되면 익일 시가에 매도
이렇게 하면 -1 매수는 -2번 조건에 의해 당일에 사서 익일에 상위 20%이내에 청산될텐데요.
만약에 2번의 조건을 따로 매도 전략으로 만드려면 어떻게 코딩을 짜면 될까요? 그러니까 어제 사서 오늘 청산된 것 말고 따로 -2 전략의 조건을 감시해서 익일 시가에 매도포지션을 잡게 하려면 어떻게 하면 될까요?
종합하면 일봉으로 전략 짰을 대 3일 매수 진입 4일 매수진입 청산 5일 매도 진입 이렇게 되는 코딩이 궁금합니다.
2017-11-01
237
글번호 113813
답변완료
수식 부탁드립니다.
1.오늘을 제외한 2일전과 1일전의(전전일 혹은 전일 내 max & min) 최고점, 최저점을 이용한 피보나치비율이 오늘진행중인 분봉에 표시되도록 하는 지표부탁드립니다.(오늘 진행되는 가격이 2일전과1일전의 최고,최저점을 뚫더라도 오늘표시되는 지표에는 반영되지않음)
2.오늘을 포함한 2일전봉내 최고점, 최저점을 이용한 피보나치비율이 오늘분봉에 표시되는
지표수식부탁드립니다.(1번지표에서 오늘 진행중가격이 최고,최저점 갱신시 오늘의 최고,최저점을 고점저점으로 하는 피보나치비율이 오늘분봉에 표시)
늘 감사합니다.
2017-11-01
207
글번호 113812
답변완료
문의드립니다.
수고많으십니다.
청산 수식문의드립니다.
아래에서 변수라고 된것은 변수로 설정부탁드립니다.
틱차트에서 포지션을 가지고 있을때
-.13시20분(변수)의 캔들 봉이 완성되면 그전 5개봉(변수) 중
최고가에 +0.05pt(변수) ,최저가에 -0.05pt(변수) 하여 그 기준으로
최저가를 깨고 신저가로 가면 매수는 청산하고 당일 매매 강제종료, -> 진입더이상 안되게
최고가를 깨고 신고가로 가면 매도는 청산하고 당일 매매 강제종료, -> 진입더이상 안되게
진행후 14시30분(변수)이 되면 모두 강제 청산.
감사합니다.
2017-11-01
180
글번호 113811
답변완료
문의드립니다
안녕하세요?
아래수식에 매수,매도의경우 진입화살표가 완성후 다음봉시초가에 수입과상관없이 무조건청산 되기를 원합니다.
if CountIF(C>O,3)==3 Then
buy();
if CountIF(C<O,3)==3 Then
Sell();
감사합니다
2017-11-01
187
글번호 113810
답변완료
시스템수정
안녕하세요.
전에 질문드렸던 시스템인데요
아래 시스템에서 매도가 bx4가 되면 매수를 금지하고 싶습니다.
감사합니다.
input : 투자금(100000000);
var : LL(0),T(0),XL(0);
var : Xcond1(false),Xcond2(false),Xcond3(false),Xcond4(false);
if MarketPosition == 0 and CrossDown(c,조건a) Then
buy("b1",OnClose,def,Floor((투자금*(0.1/100))/C));
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then{
T = 0;
Xcond1 = false;
Xcond2 = false;
Xcond3 = false;
Xcond4 = false;
if MaxEntries == 1 Then
LL = L;
}
if CurrentContracts < CurrentContracts[1] Then{
XL = L;
if LatestExitName(0) == "bx1" Then Xcond1 == false;
if LatestExitName(0) == "bx2" Then Xcond2 == false;
if LatestExitName(0) == "bx3" Then Xcond3 == false;
if LatestExitName(0) == "bx4" Then Xcond4 == false;
}
if L < LL Then
LL = L;
if L < XL Then
XL = L;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx2" Then
T = 1;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx3" Then
T = 2;
if T == 0 then{
if LL > EntryPrice*0.99 then
buy("b21",atlimit,EntryPrice(0)*0.99,Floor((투자금*(0.1/100))/C));
if LL > EntryPrice*0.98 then
buy("b22",atlimit,EntryPrice(0)*0.98,Floor((투자금*(0.2/100))/C));
if LL > EntryPrice*0.97 then
buy("b23",atlimit,EntryPrice(0)*0.97,Floor((투자금*(0.3/100))/C));
if LL > EntryPrice*0.96 then
buy("b24",atlimit,EntryPrice(0)*0.96,Floor((투자금*(0.4/100))/C));
if LL > EntryPrice*0.95 then
buy("b25",atlimit,EntryPrice(0)*0.95,Floor((투자금*(0.5/100))/C));
}
if T == 1 then{
if XL > LatestExitPrice(0)*0.99 then
buy("b31",atlimit,LatestExitPrice(0)*0.93,Floor((투자금*(0.1/100))/C));
if XL > LatestExitPrice(0)*0.98 then
buy("b32",atlimit,LatestExitPrice(0)*0.94,Floor((투자금*(0.2/100))/C));
if XL > LatestExitPrice(0)*0.97 then
buy("b33",atlimit,LatestExitPrice(0)*0.95,Floor((투자금*(0.3/100))/C));
if XL > LatestExitPrice(0)*0.96 then
buy("b34",atlimit,LatestExitPrice(0)*0.96,Floor((투자금*(0.4/100))/C));
if XL > LatestExitPrice(0)*0.95 then
buy("b35",atlimit,LatestExitPrice(0)*0.97,Floor((투자금*(0.5/100))/C));
}
if T == 3 then{
if XL > LatestExitPrice(0)*0.99 then
buy("b2",atlimit,LatestExitPrice(0)*0.95,Floor((투자금*(0.1/100))/C));
if XL > LatestExitPrice(0)*0.98 then
buy("b3",atlimit,LatestExitPrice(0)*0.96,Floor((투자금*(0.2/100))/C));
if XL > LatestExitPrice(0)*0.97 then
buy("b4",atlimit,LatestExitPrice(0)*0.97,Floor((투자금*(0.3/100))/C));
if XL > LatestExitPrice(0)*0.96 then
buy("b5",atlimit,LatestExitPrice(0)*0.98,Floor((투자금*(0.4/100))/C));
if XL > LatestExitPrice(0)*0.95 then
buy("b6",atlimit,LatestExitPrice(0)*0.99,Floor((투자금*(0.5/100))/C));
}
if Xcond1 == false Then
ExitLong("bx1",atlimit,AvgEntryPrice*1.05,"",Floor(CurrentContracts*0.2),2);
if Xcond2 == false Then
ExitLong("bx2",atlimit,AvgEntryPrice*1.08,"",Floor(CurrentContracts*0.5),2);
if Xcond3 == false Then
ExitLong("bx3",atlimit,AvgEntryPrice*1.10,"",Floor(CurrentContracts*0.8),2);
if Xcond4 == false Then
ExitLong("bx4",atlimit,AvgEntryPrice*1.15,"",CurrentContracts,2);
}
2017-10-31
182
글번호 113808