커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6223
글번호 230811
답변완료
수식문의드립니다~~
안녕하세요
수식좀 문의 드립니다~~~
1.매수진입:스톡캐스틱(5,3,3)이 골든크로스일때 1차매수,RSI가 침체구간35선을 상향돌파시
2차매수,재차 35선 침체권진입후 다시 상향돌파시 3차매수(총3번진입)
매수청산: 스톡캐스틱(5,3,3)이 데드크로스일때 매수청산
2.매도진입:스톡캐스틱(5,3,3)이 데드크로스일때 1차매도,RSI가 과열구간65선을 하향돌파시
2차매도,재차 65선 과열권진입후 다시 하향돌파시 3차매도(총3번진입)
매도청산: 스톡캐스틱(5,3,3)이 골든크로스일때 매수청산
*진입후 수익틱수를 봉챠트에 문자로 표시되는식을 수식에 넣어주시면 감사하겠습니다
2017-09-25
199
글번호 113037
답변완료
질문드립니다
5, 20 이평
정배열상태에서 역으로 진입하려고 합니다
정배열상태에서 종가가 20이평을 crossdown했을때 매도로 진입
전 이것을
var : j(0);
var1 = ma(c,5);
var2 = ma(c,20);
if c > var1 and var1 > var2 then
j=1;
else
j=0;
if j=1 and crossdown(c,var2) then
sell("매도")
이렇게지정을했는데
진입하는조건이 이미 말이 안되는상태잖아요??
이런경우는 어떻게 표현을 해서 나타낼수 있을까요??
전제조건이 정배열인상태에서 종가가 20이평을 크로스다운해야 하는데
이걸 표현할수있나요??
도와주세요
2017-09-24
180
글번호 113036
답변완료
부탁드립니다
수고 많으십니다.
선물 100틱 200틱을 사용하고 있습니다.
여기에 파동의 고점과 저점의 일정 길이의 line를 긋고자합니다.
가능한지요?
2017-09-24
188
글번호 113035
답변완료
이평 추가
안녕하세요?
아래 내용은 볼밴 수식입니다.
여기에 10 이평과 30이평을 추가하고자 합니다.
부탁드립니다.
Input : Period(20), MultiD(2);
var : MAv(0),BBup(0),BBdn(0);
MAv = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
Plot1(MAv, "이평");
Plot2(BBup, "상단밴드");
Plot3(BBdn, "하단밴드");
2017-09-24
203
글번호 113034
답변완료
문의 드립니다.
안녕하세요. 관리자님 수고에 항상 감사드립니다.
질문1
기존에 드렸던 질문 54856번에서 진입 후 5틱 하락 식에서는 손절매 폭을 똑같이 5틱으로 하는 설정은(이미 수식에 의미가 포함돼 있으므로)따로 안 해도 된다고 하셔서 이해했는데, 그럼 만약에 같은 식에서 아래와 같이 손절매 폭을 다르게 4틱으로 설정하는 건 가능한가요?
(진입 후 최고가대비 하락 틱과, 손절매 틱을 다르게 설정 가능한지?)
if MarketPosition == 1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-PriceScale*5);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*5);
setstoploss(4,pointstop);
질문2
횟수제한 필터를 따로 설정하지 않는 경우에, 1개봉에서 진입청산 후 다시 당 봉에서 조건만족 시 무한 재진입, 청산 하는 건가요? 아니면 1개봉에서는 1번 진입청산으로 끝나는 건가요?
---------------------------------------------------------------------------
1계약, 1개 시스템으로 매매 시, 진입 후 청산한 당봉에서, (청산 방향과 상관없이) 다시 조건 만족시 재진입 1회 더 가능한 수식 부탁드립니다.
(1개봉에서 총 매매횟수 2번까지 진입,청산 가능한 식)
그리고 위 수식을 매매시스템수식에서 어디에 넣어야 되는지도(삽입위치) 알려주세요.
질문3
예스글로벌 해선 매매시간 질문입니다.
당일 오전 10:00 ~ 익일 오전 05:00 라고 예를 들면,
var : Tcond(false);
if stime == 100000 or (stime >100000 and stime[1] <100000) Then
Tcond = true;
if stime == 50000 or (stime >50000 and stime[1] <50000) Then
Tcond = false;
검색해보니 이렇게 나오는데요, 제가 너무 초보라 위 수식의 개념 이해를 잘 못하겠는데요,
각 항목에 이해 가능하게 주석 부탁드립니다.
친절한 답변 미리 감사드립니다.
2017-09-24
188
글번호 113033
답변완료
이것 저것 문의
1. 시스템
진입
전일 시가대비 종가 상승률이 10% 이상인 경우
다음날 장시초가에 매수
2. 문의
어느 분 질문 보니 장 시초가에 매수하는 코드를 물어 보셨던데요. 답변이 아래와 같았습니다. 그런데 제가 어떤 주식 종목 시뮬레이션을 하면서 날짜를 시작날짜 2017-09-21, 종료날자 2017-09-21 이렇게 하루치만 보려고 했더니 매수 진입이 아예 발생하지 않더군요. 그래서 이틀치를 했더니 매수 진입이 발생했는데요. -40%식으로 이해하기 힘든 수치가 나타났습니다. (손절매 3%, 이익목표치 9% 이런 식으로 해놨었거든요.) 뭐가 문제인 지 몰라서 질문드립니다. 장시초가에 무조건 매수되게 하는 코딩이 궁금해서 드리는 질문입니다.
if NextBarSdate > sdate Then
buy("b",AtMarket);
3. 문의+시스템
만약에 옵션같이 슬리피지가 큰 시장인 경우에요. 현재가 +-1을 해도 체결이 안될 수도 있을 것 같은데요. 체결이 안됐을 때 다음 호가로 체결되게 하려면 어떻게 해야 하나요? 20이평선 종가 상향돌파 하향돌파 전략으로 예제 코딩 부탁합니다.
4. 문의
3의 추가질문입니다. 저렇게 체결안될 경우에 3처럼 체결을 하다가 일정호가가 넘어가면, 예를 들어 현재가 +-5 정도가 넘어가면 진입자체를 안하게도 할 수 있나요? 만약에 호가 공백이 심할 경우 슬리피지가 비정상적으로 높을 수도 있을 것 같아서요.
5. 문의
전에 시스템 설정 창에서 손절매, 트레일링 스탑을 하는 게 아니고 코딩으로 트레일링 스탑을 해주시는 걸 봤는데요. 어떤 원리인 지 잘 이해가 안됩니다. 설명서를 보니 상승체결틱 하락체결틱 이런 게 있던데요. 그런 것처럼 수익 포지션, 손실 포지션을 셀 수 있는 건가요? 매번 물어볼 수도 없고 뭘 알아야 좀 써먹을텐데 이해가 안되서 여쭈어 봅니다.
6. 문의
하이투자증권에서 나눠준 시스템트레이딩 책자를 보면 optimalF 등 포지션 자금관리에 대한 내용들이 나오는데요. 시스템트레이딩을 공부하다보니 이게 되는 건 지 궁금해졌습니다. 이렇게 하려면 코딩이 포지션의 승률, 전체 포지션 사이즈, if문을 통한 포지션 조절, 이게 다 되야할 것 같은데요. 이게 가능한 건가요? 시스템트레이딩에도 켈리법칙같은 것을 적용할 수 있는 지 궁금하네요.
7. 시스템
진입 아래와 조건이 맞는 봉이 나타났을 때 매수진입
-당일 종가가 당일 시가보다 높음
-당일 종가가 전일 종가보다 높음
-당일 종가가 2일 전 종가보다 높음
-당일 가격이 전일 종가보다 계속 높음
-당일 가격이 전주의 종가보다 계속 높음
-당일 가격이 전달의 종가보다 계속 높음
청산
저 조건과 정확히 반대의 조건일 때 진입청산
2017-09-25
221
글번호 113032
답변완료
시간 필터 이것 저것 좀 여쭤봅니다.
매번 감사합니다.
모두 종가가 20이평 상향돌파 매수진입, 종가가 20이평 하향돌파 매수청산을 기준으로 필터추가 작성 부탁합니다. 책자랑 예스 매뉴얼만 봐선 아무리 봐도 모르겠네요.
1. 09:30분 이전에만 진입.
2. 09:30분 이후에만 진입.
3. 11:00~13:00 사이에만 진입.
4. 하루에 한번만 진입.
5. 하루에 두번만 진입.
6. 주 가운데 한번만 진입.
7. 20 거래일 가운데 진입횟수가 10번 이하일 때만 진입.
2017-09-24
186
글번호 113031
답변완료
문의드립니다.
안녕하세요.
전략부탁드립니다.(주식)
매수 : 주가가 30 이평선을 하향 돌파하면 매수예비신호(매수하지않음) 이후 시간 : 151950
에 주가가 30이평선 위에 있으면 매수
손절 - 3%
매도 10% 수익발생시
2017-09-24
194
글번호 113030
답변완료
수식부탁드립니다.
아래식에서
매수 진입에서 Data2의 MACDO2 가 0을 Crossup하고 MACDO2에서 2개의 봉까지만 진입이 될 수 있도록 부탁드립니다.(매도 동등수식)
input : short(12),long(26),sig(9),P1(3),P2(30),P3(120), P4(200), P5(50);
input : 시작시간(150000), 종료시간(050000);
input : 진입회수(1);
var : mav1(0,data1),mav2(0,data1),mav3(0,data1),mav4(0,data1),mav5(0,data1);
var : MACDO1(0,data1),MACDO2(0,data2),MACDV1(0,data1);
var : ii(0,data1),i1(0,data1),i2(0,data1),Bcount(0,data1),Scount(0,data1);
var : Bcond(false,data1), Scond(false,data1), Tcond(False);
MACDO2 = data2(MACD_OSC(short,long,sig));
mav1 = data1(ma(c,P1));
mav2 = data1(ma(c,P2));
mav3 = data1(ma(c,P3));
mav4 = data1(ma(c,P4));
mav5 = data1(ma(c,P5));
ii = data1(index);
if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
}
if CrossUp(mav1, mav2) Then{
i1 = ii;
}
if Crossdown(mav1, mav2) Then{
i1 = ii;
}
if CrossUp(mav2, mav3) Then{
i2 = ii;
Bcount = 0;
}
if Crossdown(mav2, mav3) Then{
i2 = ii;
Scount = 0;
}
if mav2 > mav3 and MarketPosition != MarketPosition[1] and MarketPosition == 1 Then
Bcount = Bcount+1;
if mav2 < mav3 and MarketPosition != MarketPosition[1] and MarketPosition == -1 Then
Scount = Scount+1;
//진입
if Tcond == true Then{
if Bcount < 진입회수 and MACDO2 >0 and MACDO2 > MACDO2[1] and mav1 > mav1[1] and mav5 > mav5[1] and mav1 > mav3 and mav2 > mav3
and ii > i1 and i1 > i2 Then
buy("Buy");
if Scount < 진입회수 and MACDO2 <0 and MACDO2 < MACDO2[1] and mav1 < mav1[1] and mav5 < mav5[1] and mav1 < mav3 and mav2 < mav3
and ii > i1 and i1 > i2 Then
sell("Sell");
2017-09-24
209
글번호 113029