커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6575
글번호 230811
답변완료
스토캐스틱 선을 표시하는 방법 문의 드립니다
안녕하세요...
(1) 스토캐스틱K 선 입니다.(그림1)
이 스토캐스틱K선을 50을 기준선으로 50 위에서는 빨간색으로 나타나고 50 아래서는
파란색으로 나타나게 할 수 있나요?
2015-05-20
163
글번호 86204
답변완료
진입 제한
안녕하세요? 현대선물예스트레이더로 해외선물 전략작성 중인데 막히는게 있어서
문의해 봅니다.^^
기본적으로 진입전략은 MACD 오실레이터 0선 크로스인데요
앞전에 큰 파동(100틱이상)이 나왔다면 뒤따라오는 첫번째 신호는 스킵하고 싶습니다.
(휩소일 가능성이 크기 때문에)
var : minusMax(0), minusMin(0), plusMax(0), plusMin(0), passMinus(False), passPlus(False);
var : minMaxGap(100), leastGap(15);
}
if macdosc > 0 then {
passMinus = False;
if plusMin == 0 then plusMin = L;
plusMax = Max(plusMax, H);
plusMin = Min(plusMin, L);
if MinusMax - MinusMin >= minMaxGap * PriceScale then {
passPlus = True;
}
minusMax = 0;
minusMin = 0;
}
if macdosc < 0 then {
passPlus = False;
if minusMin == 0 then minusMin = L;
minusMax = Max(minusMax, H);
minusMin = Min(minusMin, L);
if plusMax - plusMin >= minMaxGap * PriceScale then {
passMinus = True;
}
plusMax = 0;
plusMin = 0;
}
이렇게 작성했더니 뒤의 모든 시그널을 무시하는 것 같더라구요.
100틱이상 큰 움직임이 있을 때 바로 이어지는 첫번째 신호만 스킵할 수 있게
수정부탁드립니다.
2015-05-20
157
글번호 86203
답변완료
수식 부탁드립니다.
안녕하세요? 매번 성의있고 친절한 답변 감사드립니다.
롤오버에 관한 질문을 드렸었는데 안된다는 답변을 드렸습니다.
정 하려면 예스스팟으로 넘어가야 되는데,
예스스팟은 너무 어려운 것 같아서 최대한 안넘어가고 해결했으면 좋겠습니다만...
다른 글들을 검색해보니 참조 종목을 쓰는 방식으로 하면 어떻게 될 것도 같습니다만...
예전의 글들을 검색해보니, 옵션의 가격대 여러개를 data1, data2 따위로 참조해서,
선물에서 진입하는 질문과 답변들이 있더군요.
기본적으로 예스랭귀지에서는 롤오버가 안되지만 편법으로 어떻게 되지 않을까요?
예를들어,
타종목 참조 기능이 있던데요.
해외선물 유로달러 5월과 6월 종목이 있습니다.
(5월 종목의 만기는 5월 25일)
그리고 25일에 강제 청산하기로 합니다.
거래시간의 하루 단위는 16시~16시 입니다.
이 때 6월 종목에서는 5월 종목의 데이터를 참조로 사용합니다.
그리고 5.22~25일 사이를 감시한 다음,
1.
만약에 5월 25일에 강제 청산을 할 때 손절(1회)로 강제 청산을 하게 되면,
6월 종목에서는 5월 26일 16시 부터 정상거래를 합니다.
2.
그리고 만약 손절이 아니라 그냥 특정 시간, 예를들어 14시에 강제청산을 하게되면,
(즉, 롤오버가 아니었다면 그냥 계속 보유했을 경우입니다.)
6월 종목에서 그 즉시 진입을 합니다.
3.
그리고 만약 2번의 경우 처럼 롤오버가 아니면 보유를 했을 경우인데,
5월 종목에서 25일 20시에 강제 청산한 다음 6월 종목에서 즉시 진입하려고 하는데,
그렇게 되면 손절이나 트레일링스탑에 걸리게 될 경우
(손절이나 트레일링스탑을 했다고 간주하고) 진입하지 않습니다.
그리고 그냥 6월 종목에서 26일 부터 새롭게 시작합니다.
4.
그리고 미보유 상태에서 새롭게 진입신호가 발생하는 경우입니다.
예를들어,
5월 25일 16시 시가를 기준으로 1.1 상승할 경우 매수진입하기로 했습니다.
그런데 한번 진입을 했다가 트레일링 스탑으로 청산이 되었습니다.
그래서 계좌 미보유 상태인데,
여기서 강제청산 기준으로 잡은 시간인 5월 25일 20시가 지나고
6월 종목에서 재진입 신호가 발생했습니다.
예를들어 5월 25일 16시 시가 100 에서 1.1 상승해서 110 이 매수 진입 가격인데,
6월 종목에서 110 이라는 가격에 도달한 것 입니다.
(120 에서 떨어지다가 110 이 되건 105 에서 올라서 110 이 되건 상관 없습니다.)
그렇다면 진입을 하고 싶습니다.
즉, 5월 종목의 25일 16시를 기준시가로 잡는 것입니다.
이 때,
25일 20시 이후 6월 종목을 보니 갭변동으로 이미 110 이 넘어간 상태라면 무시합니다.
즉, 가격이 110 을 만지면 즉시 진입하지만 그렇지 않으면 무시합니다.
5.
이렇듯 위의 질문들은 참조 종목의 데이터를 받아 쓰는 것인데요.
6월 종목에서 짠 수식에서 5월 종목에서 계좌가 손절을 했는지 어쩐지는 알 수 없겠지만,
어차피 5월 종목의 신호를 감시하면 이를 정확히 알 수 있기 때문에,
이런식으로 되지 않을까 해서 질문 올립니다.
아래는 예전에 부탁드려 짜주셨 식입니다.
input : N(1);
var : loss(0);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
var1 = O;
Loss = 0;
}
if MarketPosition == 0 and CurrentContracts < CurrentContracts[1] and
(IsExitName("bx",1) == true or IsExitName("sx",1) == true) Then
loss = loss+1;
if loss < N then{
if MarketPosition == 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition == 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition == 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition == 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitShort("sx",AtStop,round(EntryPrice*1.01,3));
if MarketPosition == 1 Then{
HH = highest(h,BarsSinceEntry);
if HH >= EntryPrice*1.10 and HH < EntryPrice*1.20 Then
ExitLong("bx1",AtStop,HH-(HH-EntryPrice)*0.5);
if HH >= EntryPrice*1.20 and HH < EntryPrice*1.30 Then
ExitLong("bx2",AtStop,HH-(HH-EntryPrice)*0.6);
if HH >= EntryPrice*1.30 and HH < EntryPrice*2.00 Then
ExitLong("bx3",AtStop,HH-(HH-EntryPrice)*0.7);
if HH >= EntryPrice*2.00 Then
ExitLong("bx4",AtStop,HH*0.9);
}
2015-05-20
164
글번호 86202
답변완료
안녕하세요(5.10전 이평.현재나타남)
안녕하세요.반갑습니다
1.일반이동평균(5.10.20일선)
2.5개전(5일이동평균)10개전(10일이동평균)20개전(20일이동평균)
값 을 현재분봉챠트로 이동하여
1.2항을 하나로 묶어서 사용하고자 합니다
감사합니다.
2016-12-25
148
글번호 86201
답변완료
시스템 신호 두개를 동시에 쓸수 없나요
두개의 시스템 신호을 쓰고 싶은데 예를 들어 MACD와 스토캐스틱 둘을 동시에 적용시키고 싶은데 MACD 설정하니 스토캐스틱은 날라가네요
어찌해야 두개를 동시에 사용할수 있을까요
답변 부탁드립니다.
수고하세요 꾸벅^^
2015-05-19
169
글번호 86200
시스템매니아 님에 의해서 삭제되었습니다.
2015-05-19
0
글번호 86198
답변완료
부탁 합니다.
input : Period(25);
var : Hval(0),Lval(0),UPV(0),MID(0),DOWNV(0):
Hval = highest(H,period);
Lval = Lowest(L,period);
UPv = Hval - (Hval-Lval)/2;
MID = Lval + (Hval-Lval)/4;
DOWNv = Lval + (Hval-Lval)2;
plot1(upv,"상단");
plot2(MID,"중간선");
plot3(downv,"하단");
색깔좀 입히고 싶습니다.
중간선 위는 노랑색
중간선 아래는 파란색
2015-05-19
154
글번호 86197
답변완료
혹시 체결 시간에 따른 매매식도 가능할까요?
예를들어
삼성전자 주식이
11시11분11초에 매수호가체결(빨간색체결) 10건 이상이면 매수
매수후 2% 상승시 매도
매수후 -2프로 하락시 손절
이런식도 가능할까요?
즉 동일 시간에 매수체결 건수가 10건 이상이라면 매수 라는 식을 작성하고 싶습니다.
2015-05-19
166
글번호 86196
답변완료
text 표기
안녕하세요.
아래있는 시스템에서 텍스트로 화면에 한번만 표기될수 있었으면 합니다.
다른데서는 한번씩만 표기되는데, 이신호에서는 매 봉마다 표기가 되네요.
그리고 텍스트 출력이 왼쪽상단이나, 오른쪽상단에 빈공간에 표기하고 싶은데요,
어떤걸로, 어떻게 표기하는지요???
input : p1(50), p2(30), p3(10), stoploss(1);
var1 = stochasticsk(p1,p2);
var2 = stochasticsd(p1,p2,p3);
if entriesToday(date) < 1 then {
if CrossUp(var1, 80) Then
buy("Buy");
if CrossDown(var1, 20) Then
sell("Sell");
}
if CrossDown(var1, var2) Then
ExitLong("ExitLong");
if CrossUp(var1, var20) Then
ExitShort("ExitShort");
SetStopLoss(stoploss);
Text_Delete(var1);
var1 = Text_New(sdate,stime,DayClose,"59분 청산");
Text_SetColor(var1,BLACK);
SetStopEndofday(150000);
2015-05-21
183
글번호 86188