커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5318
글번호 230811
답변완료
골드크로스때 매수하기
수고하십니다,
직장에 다니다보니 여러 이유로 꾸준히 하지 못하고 있네요
작년 후반기에 많은 질문을 해가며--이게 교육장에서 기초 배운거로는 해결이 안되더군요---
한 6개월 작성과 연습을 했엇는데, 또 직장일로 바쁜바람에 손놓고 있다가,,,
이제 다시 좀 연습할까합니다,,
시스템트레이딩을 공부하며 배우는동안 "시스템시장"에 있는 성과 좋은걸로 돈을 주고 하며 더 많이 배우려고 햇는데, 교육장에 갔을때 물어보니 선물/옵션이 주 거래라 주식은 프로그램시장에 나온게 거의 없다고 하여 어찌하여야 하나 생각중 회사일이 바뻐져서 자연 멀어지게 되었는데,,
이제 다시 시작하며 검색부분에서 사용할수있다는 말에 그쪽으로 접근하기로,,
우선 골드크로스을 이용한 매매를 하는데, 이평 주기를 다양하게 바꿔가며
검증을 하고 싶습니다
1. 골드크로스(5-20-60)를 이용한 매수프로그램 메크로와
2. 이 프로그램의검증시 이평주기를 여러가지로 바꿨을때 운용실적 보기
혹시 2번은 시스템트레이딩 => 시스템성능보고서나 시스템최적화보고서/시스템폴리폴리오분석의 메뉴만 이용하면 되는건지요????
바쁘시거나 알려주시기 힘드시면 방향 제시만이라고 해주세요
감사합니다
2019-07-14
274
글번호 130307
답변완료
오류 해결 부탁드립니다.
안녕하세요~
저의 대부분 전략이 하루에 1회만 진입하고, 반나절 이상 가지가 가는 방식이다보니..
전략 다변화를 위해 하루에도 여러번 진입할 수 있는 전략을 만들어 봤습니다.
그런데 위의 그림과 같은 문제가 발생합니다. (실전 결과가 아니라 백테스트 결과입니다.)
즉, 어떤 봉에서 청산을 한 후, 바로 같은 봉에서 다시 같은 방향으로 진입하고 다시 그 봉에서 바로 청산이 이루어지는 것입니다. 아무 이유 없이 슬리피지와 수수료만 날라가는 것이지요.
이 경우가 매번 발생하는 것은 아닌데, 전체 진입 횟수 중 1/6 정도나 될 정도로 빈도가 잦습니다.
그리고 특징은 역방향으로 진입해서 손절 청산을 하는 경우에는 이런 일이 없는데,
제 방향으로 진입을 해서 수익을 내고 익절청산을 한 경우에 주로 이 문제가 나타납니다..
얼마전 만기일에 비슷한 문제가 나타나서 다른 분들께 알아봤떠니만 그냥 예트의 문제다. 어쩔 수 없다는 답이 많았습니다.
그런데 지난번 문제는 실전에서 갑작스럽게 1년 반 동안 딱한번 나타났기에 말 그대로 오류라고 볼 수 있을것도 같은데,
이번엔 백테스트 결과에서 나타난 것이고, 그 빈도도 너무 너무 많습니다..
이 문제를 해결하기 위해
당일 2번째 진입 이후부터는 이전 청산 거래로부터 1분 이상 시간을 두고 진입할 수 있도록 해봤는데, 해결이 안됩니다. 청산이라도 제대로 시키려고.. 진입봉에서 청산되지 않도록 시간텀을 줘봤는데도 이역시 해결책이 안됩니다...
참고로 모든 진입과 청산은 atmarket이고
대상 종목은 코스닥선물(연결선물)입니다
도움 주시면 감사하겠습니다..
2019-07-14
250
글번호 130306
답변완료
수식 부탁드립니다.
안녕하세요.
if MarketPosition <=0 and H>bbup and C>mav1 Then
buy("b1");
위에서 mav1 은 5일선 입니다.
그런데 5일부터 120일선까지 step 5 로 해서 모두 적용시키고 싶습니다.
for 구문 쓰는 거 같긴 한데 제가 초보라 잘 모르겠네요...ㅠㅠ
즉, C> 5, 10, 15....이런식으로 다 조건이 맞으면 매수를 하고 싶습니다.
감사합니다.
2019-07-14
211
글번호 130305
답변완료
문의드립니다.
항셍 10시15분 시작 기준으로 4등분선을 부탁드립니다.
var1 = dayhigh;
var2 = DayLow;
var3 = (var1+var2)/2;
var4 = (var1+var3)/2;
var5 = (var3+var2)/2;
plot1(var1);
plot2(var2);
plot3(var3);
plot4(var4);
plot5(var5);
맨위에
f (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
var1 = O;
이 식을 삽입해도 지표에 변화가 없어서요..
2019-07-14
188
글번호 130304
용을낚는어부 님에 의해서 삭제되었습니다.
2019-07-14
2
글번호 130303
답변완료
문의드립니다.
안녕하세요
항셍 10시 15분기준의 지표입니다.
2개의 지표를 비교해보니 10시15분 시초가가 2번째 지표의 전일종가와 같이 나오네요..
뭔가가 잘못된것 같은데... 2개를 합쳐서 다시 부탁드릴께요^^
1. 시초가
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
var1 = O;
plot1(var1);
2. 시초가 전일 종가 등등
var : pp(0),s1(0),s2(0),s3(0),r1(0),r2(0),r3(0);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
var1 = O;
var1 = h;
var2 = l;
var11 = var1[1];
var22 = var2[1];
var33 = var3[1];
var44 = var4[1];
}
z
if h > var2 Then
var2 = h ;
if l < var3 Then
var3 = l;
var4 = c;
if var1 > 0 then
{
plot1(var1,"당일시가");
plot2((var2+var3)/2,"당일중심");
Text_Delete(value1);
Text_Delete(value2);
value1 = Text_New(sdate,stime,var1,"당일시가");
value2 = Text_New(sdate,stime,(var2+var3)/2,"당일중심");
}
if var11 > 0 then
{
plot3(var11,"전일시가");
plot4((var22+var33)/2,"전일중심");
plot5(var44,"전일종가");
Text_Delete(value3);
Text_Delete(value4);
Text_Delete(value5);
value3 = Text_New(sdate,stime,var11,"전일시가");
value4 = Text_New(sdate,stime,(var22+var33)/2,"전일중심");
value5 = Text_New(sdate,stime,var4,"전일종가");
}
2019-07-14
212
글번호 130302
답변완료
어디가 문제인지 봐주시면 감사하겠습니다.
Inputs: Length(9), StdDev(2),stoploss(1), Div(30);
Variables: Mp(0),BBTop(0),BBBot(0),Ma(0), StopPrice(0) ;
BBTop = BollBandup(Length, StdDev);
BBBot = BollBanddown(Length, StdDev);
MP=marketposition;
MA=ma(c,length);
if crossdown(c,BBTop) Then
sell();
if crossup(c,BBBot) Then
buy();
if MarketPosition <> 0 Then Begin
ExitLong("EL", atstop,MA);
Exitshort("Es", atstop,MA);
End;
setstoploss(stoploss);
볼린저 밴드 상단을 뚫고 내려오면 매도 하단을 뚫고 올라가면 매수 중간밴드에서 청산하는
심플한 역추세 로직예시인데 이렇게 하니까 모든 진입에서 다음봉에 바로 청산이 되버리네요
언뜻보기에는 별 문제 없어보이는데 뭐가 문제일까요
2019-07-14
250
글번호 130301
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
종목 : 해외선물 오일
타임 : 60분봉
---------------------------------------------------------------------------------
매수1 :
22시 이전에
가격이 전일고가보다 높았다면(상승돌파 또는 높은 경우) 전일고가가격에 무조건 매수
매수청산1 :
만약 포지션이 있다면 22시에서 23시 사이에 매수포지션 무조건 청산
---------------------------------------------------------------------------------
매수2 :
23시 이후에
가격이 전일고가보다 높았다면(상승돌파 또는 높은 경우) 전일고가가격에 무조건 매수
매수청산2 :
만약 포지션이 있다면 05시에서 06시 사이에 매수포지션 무조건 청산
---------------------------------------------------------------------------------
매도1 :
22시 이전에
가격이 전일 저가보다 낮았다면(하락돌파 또는 낮은 경우) 전일저가가격에 무조건 매도
매도청산1 :
만약 포지션이 있다면 22시에서 23시 사이에 매도포지션 무조건 청산
---------------------------------------------------------------------------------
매도2 :
23시 이후에
가격이 전일 저가보다 낮았다면(하락돌파 또는 낮은 경우) 전일저가가격에 무조건 매도
매도청산2 :
만약 포지션이 있다면 05시에서 06시 사이에 매도포지션 무조건 청산
---------------------------------------------------------------------------------
위 매수1 조건을 예스스팟으로 하려면 어떻게 해야 하나요?
혹시 가능하면 스크립 작성부탁드립니다.
감사합니다.
2019-07-14
203
글번호 130300
답변완료
시스템식 부탁드립니다.
항상 도움주셔서 감사합니다.
질문1)
국내선물의 경우 최대한 9시에 가깝운 시간에 매수를 하고 싶습니다.
분봉이 각각 1분, 15분, 30분, 60분, 90분, 120분인 경우
if stime == 090000 then {
buy() ;
}
이런식으로 코딩해도 각 분봉마다 제가 원하는 시간 즉 9시1분, 9시15분, 9시 30분,
10시, 10시 30분에 진입이 되지 않습니다.
질문2)
국내선물의 경우 가격조건이 만족하는 경우 최대한 빠른시간안에 매수를 하고 싶습니다.
분봉이 각각 1분, 15분, 30분, 60분, 90분, 120분인 경우
if 가격조건 만족시 then {
buy() ;
}
이런식으로 코딩해도 각 분봉마다 제가 원하는 시간 즉 9시1분, 9시15분, 9시 30분,
10시, 10시 30분에 진입이 되지 않습니다.
질문3)
국내선물의 경우 최대한 15시 30분에 가깝운 시간에 모두 청산을 하고 싶습니다.
분봉이 각각 1분, 15분, 30분, 60분, 90분, 120분인 경우
if stime == 150000 then {
exitlong() ;
}
이런식으로 코딩을 해도 다음날에 청산이 됩니다.
질문4)
1] SetStopEndofday(153000) ;
2] if stime == 153000 then {
exitlong();
}
1] 과 2] 코딩의 차이점은 무엇인가요?
매뉴얼을 봐도 잘 이해가 안됩니다.
설명 부탁드립니다.
요약질문 :
분봉에 상관없이
1) 특정시간에 진입 및 청산 하고 싶습니다.
- 1분봉이면 매수는 9시 2분에 진입 청산은 15시 29분에 청산
- 15분봉이면 9시 15분시작에 진입 청산은 15시 15분에 청산
- 30분봉이면 9시 30분시작에 진입 청산은 15시 30분에 청산
- 60분봉이면 10시에 진입 청산은 15시에 청산 하고 싶습니다.
2) 가격조건 만족시 최대한 빠른시간에 진입하고 싶습니다.
- 1분봉, 15분봉, 30분봉, 60분 일 경우
가장빠르게 진입할수 있는 시스템식 부탁드립니다.
3) 최대한 15시 30분 가까운 시간에 청산하고 싶습니다.
- 1분봉, 15분봉, 30분봉, 60분 일 경우
가장 15시 30분에 청산할수 있는 시스템식 부탁드립니다.
4) SetStopEndofday(1529000) ; 은 해당시간에 청산되는 걸로 알고 있는데
시물레이션시 같은 결과를 볼수 있는 시스템식 부탁드립니다.
감사합니다.
2019-07-14
239
글번호 130299