커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6184
글번호 230811
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1.
여기에 같은 방향이 이익이면(매수진입이 이익이면 매수진입) 같은 방향으로는 재진입하지 않는 수식 추가 부탁드립니다.
input : entryCount(2);
var : count(0) ;
#진입회수제한
Count = 0 ;
for Value1 = 0 to 10 {
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
if Count < entryCount then {
}
2018-01-09
190
글번호 115585
답변완료
문의
선물수식으로 etf거래를 하기 위해서 수식을 두 개로 나누어 놓았는데, 이상하게 선물에서는 진입신호가 뜨는데 etf에서는 신호가 발생하지 않는 경우가 있습니다. 특히 1번수식에서 몇차례 생겼는데 그 전날 진입신호가 나온후 청산된 후, 그 다음날 선물에서는 또 다시 진입신호가 나왔는 데 etf에서는 진입조건이 되어도 신호가 나오지 않습니다. 교정부탁드립니다. 감사합니다.
선물수식
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(150000);
1.ETF
input : BarsEntryInterval(20), pMaxContracts(4),pTimeInterval(11);
Var : vA_value(0,data2), vB_value(0,data2),vStartMin(0,data2);
var : PreTT(0,data1), TT(0,data1),cond99(false,data2);
If data2(date <> date[1]) Then
{
vA_value = data2(H);
vB_value = data2(L);
Cond99 = False;
vStartMin = data2(TimeToMinutes(stime));
PreTT = TotalTrades[1];
}
TT = TotalTrades;
If Cond99 == False Then
{
if vA_value < data2(H) Then vA_value = data2(H);
if vB_value > data2(L) Then vB_value = data2(L);
}
If data2((TimeToMinutes(stime) - vStartMin) == pTimeInterval And Cond99 == False) Then
{
Cond99 = True;
}
if Cond99 Then {
If data2(CrossDown(C, vB_value)) Then ExitLong("BX");
If data2(time <= 115900) And TT - PreTT <= 2 Then Begin
If data2(CrossUp(C, vA_value)) Then Buy("B");
If data2(CrossDown(C, vB_value)) Then ExitLong("bx1");
End;
if MarketPosition == 1 And data2(C > vA_value) And CurrentContracts < pMaxContracts Then {
if BarsSinceEntry == ( 1 * BarsEntryInterval) Then
Buy("reBuy1");
if BarsSinceEntry == ( 2 * BarsEntryInterval) Then
Buy("reBuy2");
if BarsSinceEntry == ( 3 * BarsEntryInterval) Then
Buy("reBuy3");
}
}
SetStopEndofday(150000);
2.ETF인버스
input : BarsEntryInterval(20), pMaxContracts(4),pTimeInterval(11);
Var : vA_value(0,data2), vB_value(0,data2),vStartMin(0,data2);
var : PreTT(0,data1), TT(0,data1),cond99(false,data2);
If data2(date <> date[1]) Then Begin
vA_value = data2(H);
vB_value = data2(L);
Cond99 = False;
vStartMin = data2(TimeToMinutes(stime));
PreTT = TotalTrades[1];
End;
TT = TotalTrades;
If Cond99 == False Then Begin
if vA_value < data2(H) Then vA_value = data2(H);
if vB_value > data2(L) Then vB_value = data2(L);
End;
If data2((TimeToMinutes(stime) - vStartMin) == pTimeInterval And Cond99 == False) Then Begin
Cond99 = True;
End;
if Cond99 Then {
If data2(CrossUp(C, vA_value)) Then ExitLong("SX");
If data2(time <= 115900) And TT - PreTT <= 2 Then {
If data2(CrossUp(C, vA_value)) Then ExitLong("Sx1");
If data2(CrossDown(C, vB_value)) Then Buy("S");
}
if MarketPosition == 1 And data2(C < vB_value) And CurrentContracts < pMaxContracts Then {
if BarsSinceEntry == ( 1 * BarsEntryInterval) Then
Buy("reSell1");
if BarsSinceEntry == ( 2 * BarsEntryInterval) Then
Buy("reSell2");
if BarsSinceEntry == ( 3 * BarsEntryInterval) Then
Buy("reSell3");
}
}
SetStopEndofday(150000);
2018-01-09
217
글번호 115584
답변완료
수식문의합니다/
키움에서는
강세약세 적용으로 바탕화면을 나눌수 있습니다.
para sar
af 0.02
maxaf 0.2
예스에서도 응용하여 바탕색을 나눌수 있다고 하던데요.
위 수식으로 어떻게 하면 될까요?
2018-01-09
246
글번호 115579
답변완료
진입제한 질문드립니다.
오전 6시 이후로 로직 진입제한 시그널을 찾아보았습니다.
var : tcond(False);
if Bdate != Bdate[1] Then{
tcond = False;
}
if tcond == false and 060000 >= 080000 then
tcond = true;}
if tcond == true then{
진입청산로직}
이렇게 작성하신걸 보았습니다.
그대로 응용하여 로직에 적용해보았는데 '오전6시~ 오전8시 진입제한' 이라는 로직이 발휘하지 못하더군요. 로직 어디에 문제가 있나요?
2. if 조건 then sell로 진입후
진입이후 시가선을 하향돌파한 적이 있고~ 지금이 a면 본전청산. 을 어떻게 해야할까요
단순히
if crossdown(A,d) then으로 해버리니 crossdown한 그 순간을 포착해버리는것이 당연하지요. 타계해야할 방법이 난해합니다..
2018-01-09
210
글번호 115578
답변완료
문의드립니다
문의드립니다
Input : Period(20);
If CrossUp(C, ma(C,Period)) Then
{
If C == C[1] Then
value1 = 0.001;
Else
value1 = (C-C[1])/C[1]*100;
}
Else
value1 = 0;
Find(value1);
예스트레이더에 있는 주가 이동평균선 상향돌파 검색식 인데요
이 검색식을 사용하면 장중에 돌파하면 바로 검색이 되는지
아니면 장이 끝나고 검색이 되는지요?
2018-01-08
206
글번호 115577
답변완료
스탑로스 설정 문의
주식은 아래와 같이 스탑로스를 설정하는데
해외선물은 어떻게 설정하나요
해외선물 종목 = 연결_E-micro EUR/USD
# 스탑로스(6%)
# SetStopLoss(6,PercentStop);
2018-01-08
247
글번호 115576
답변완료
수식 문의드립니다.
간단한 etf 거래 로직을 운영중인데, 매수(진입)거래는 되는데 매도(청산) 거래가 되지 않습니다.
총 5개 로직을 동시에 돌리고 있고,
1개는 데이 전략, 나머지 4개는 포지션(오버나이트) 전략입니다.
포지션 전략의 대상 상품은 모두 동일합니다.
데이 전략은 매수(진입)와 매도(청산)가 다 잘됩니다.
그런데 포지션 전략은 매도(청산)가 계속해서 안됩니다.
1) 4개의 포지션 전략이 모두 동일한 상품을 대상으로 하고 있어서, 다음날 계좌에 있는 애들 중 어떤 애를 선택해서 매도해야할지 시스템이 스스로 몰라서 무언가 지정을 해주어야 하는 것인지?
2) 아니면 포지션 전략의 경우.. 다음날 매도가 되도록 수식에 무언가가 포함되어야 하는지..
3) 아니면 단순히 제가 수식을 잘못 적었는지.. 그것이 궁금합니다.
제 로직을 단순화하여 제시하니 검토해주시면 감사하겠습니다.
if 조건 1 and 조건 2 then Buy("b1", AtMarket);
if 조건 3 then ExitLong("EL", AtMarket);
여기서 조건 3은 시간 조건입니다. stime == 시각 이런식으로 되어 있습니다.
즉, 몇시 몇분 몇초에 자동으로 청산 주문이 나가도록 되어 있습니다.
이렇게 단순한데.. 왜 주문이 안나가는지 모르겠습니다.
도움 주시면 감사하겠습니다.
2018-01-08
220
글번호 115575
답변완료
수식부탁드립니다.
수식 부탁드립니다.
1. 120일선이 상승하고 있고 20일선이 50일선을 Crossup 하면 가격1
2. 가격1 에서 매수1개
3. 가격1 기준으로 +10틱 상승하면 매수 +1개 추가
* 2,3 번 조건에서 매수는 한개씩만 이루어짐, 스윙에 의한 2,3번 조건 만족시 재 매수 금지
2018-01-08
205
글번호 115574
답변완료
수식 도움 부탁드립니다.
안녕하세요
기본차트 : 5분봉
참조데이터 : 일봉
일 때, 5분봉에서의 현재가가 참조데이터(일봉)의 직전 5일 최고가 돌파시 매수,
직전 5일 최저가 돌파시 매도
수식 부탁드립니다.
2018-01-08
216
글번호 115573