커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7294
글번호 230811
답변완료
시스템식 문의 드립니다....
수고가 많으시죠...^^
macd (24.52.18) macd (12. 26.9)
1 macd(24.52.18)가 기준선 0선 위에 있고 macd(12.26.9)골든크로스에 매수
macd(24.52.18) 0선 데드크로스에 매수청산
2 macd(24.52.18)가 기준선 0선 아래에 있고 macd(12.26.9)데드크로스에 매도
macd(24.52.18) 0선 골든크로스에 매도청산
이상입니다...
2017-10-11
161
글번호 113308
답변완료
문의드립니다
@문의1) *식1 참조, 첨부파일 참조
아래식은 첨부 그림에서와 같이 시작시간 후 진입 조건이 되면 바로 진입이 됩니다
(시작시간 전 Crossup(mav2,mav3) 된 상태에서 조건이 만족 됨)
시작 시간 전 Crossup/down(mav2,mav3) 조건은 무시하고 셋팅 시작 시간 이후의 cross up/down(mav2,mav3) 이 되면 진입이 되도록 수정 요청드립니다
@문의2) *식2 참조
청산 식에서 파라볼릭 신호에 의한 청산이 이루어 지지 않았습니다.
60틱 이상이 된후 파라볼릭 신호에 의해 청산이 되어야하는데 60이하로 다시 상승된 상태에서 파라볼릭 신호가 발생하여 청산이 안된듯 합니다.
60이상이 한번이라도 되면 파라볼릭 신호에 의해 청산이 되도록 수정 요청드립니다.
***식1)
input : short(12),long(26),sig(9),P1(3),P2(30),P3(120);
input : 시작시간(223000), 종료시간(050000);
input : 진입회수(1);
var : mav1(0,data1),mav2(0,data1),mav3(0,data1);
var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1);
var : MACDO2(0,data2), MACDV2(0,data2);
var : BH(0,data1),SL(0,data1);
MACDO2 = data2(MACD_OSC(short,long,sig));
MACDV2 = data2(MACD(short,long));
mav1 = data1(ma(c,P1));
mav2 = data1(ma(c,P2));
mav3 = data1(ma(c,P3));
if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
Bcount = 0;
Scount = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
}
//진입회수
if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then
Bcount = Bcount+1;
if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then
Scount = Scount+1;
//진입
if Tcond == true Then{
if Bcount < 진입회수 and MACDO2 > MACDO2[1] and MACDV2 > MACDV2[1] and crossup(mav2,mav3) Then buy("Buy");
if Scount < 진입회수 and MACDO2 < MACDO2[1] and MACDV2 < MACDV2[1] and CrossDown(mav2,mav3) Then sell("Sell");
}
//청산1
if MarketPosition == 1 Then{
BH = highest(H,BarsSinceEntry);
if BH >= EntryPrice+PriceScale*30 and BH < EntryPrice+PriceScale*40 Then
ExitLong("B익절1",AtStop,BH-PriceScale*10);
if BH >= EntryPrice+PriceScale*40 Then
ExitLong("B익절2",AtStop,BH-PriceScale*5);
ExitLong("B손절",AtStop,EntryPrice-PriceScale*30);
}
if MarketPosition == -1 Then{
SL = Lowest(L,BarsSinceEntry);
if SL <= EntryPrice-PriceScale*301 and SL > EntryPrice-PriceScale*40 Then
ExitShort("S익절1",AtStop,SL+PriceScale*101);
if SL <= EntryPrice-PriceScale*40 Then
ExitShort("S익절2",AtStop,sL+PriceScale*5);
ExitShort("S손절",AtStop,EntryPrice+PriceScale*30);
}
if 종료시간 <= sTime and sTime < 시작시간 then {
if MarketPosition == 1 then{
ExitLong("B장종료");
}
if MarketPosition == -1 then{
ExitShort("S장종료");
}
}
***식2)
input : short(12),long(26),sig(9),P1(3),P2(30),P3(120);
input : af(0.02),maxaf(0.2);
input : 시작시간(110000), 종료시간(150000);
input : 진입회수(1);
var : mav1(0,data1),mav2(0,data1),mav3(0,data1);
var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1);
var : MACDO2(0,data2), MACDO1(0,data1);
var : BH(0,data1), SL(0,data1);
var : para(0,data1);
MACDO2 = data2(MACD_OSC(short,long,sig));
MACDO1 = data1(MACD_OSC(short,long,sig));
mav1 = data1(ma(c,P1));
mav2 = data1(ma(c,P2));
mav3 = data1(ma(c,P3));
para = data1(sar(af,maxaf));
if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{
Tcond = true;
Bcount = 0;
Scount = 0;
}
if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{
Tcond = false;
}
//진입회수
if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then
Bcount = Bcount+1;
if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then
Scount = Scount+1;
//진입
if Tcond == true Then{
if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy");
if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell");
}
//청산2
if MarketPosition == 1 Then{
BH = highest(H,BarsSinceEntry);
if BH >= EntryPrice+PriceScale*40 and BH < EntryPrice+PriceScale*60 Then
ExitLong("B익절1",AtStop,BH-PriceScale*20);
if BH >= EntryPrice+PriceScale*60 and CrossDown(C,para) Then
ExitLong("B익절Pa");
ExitLong("B손절",AtStop,EntryPrice-PriceScale*40);
}
if MarketPosition == -1 Then{
SL = Lowest(L,BarsSinceEntry);
if SL <= EntryPrice-PriceScale*40 and SL > EntryPrice-PriceScale*60 Then
ExitShort("S익절1",AtStop,SL+PriceScale*20);
if SL <= EntryPrice-PriceScale*60 and CrossUp(C,para) Then
ExitShort("S익절Pa");
ExitShort("S손절",AtStop,EntryPrice+PriceScale*40);
}
if 종료시간 <= sTime or sTime < 시작시간 then {
if MarketPosition == 1 then{
ExitLong("B장종료");
}
if MarketPosition == -1 then{
ExitShort("S장종료");
}
}
2017-10-11
198
글번호 113307
답변완료
수식요청드립니다.
수식왕 예스스탁님 매번 감사합니다.
1. 시스템
진입
종가가 20이평 상향돌파
청산
조건 1. 종가가 20이평을 하향돌파 한 뒤 3개봉 이내에 다시 20이평 위로 오지 않는다
거나 or
조건 2. 종가가 20이평을 하향돌파한 뒤 20이평 -2%까지 떨어졌다.
기본적으로 종가가 20이평을 하향돌파 한 뒤 3개봉이 지나고 청산을 하는 것이나 종가가 20이평을 하향돌파한 뒤 낙폭이 너무 크면 낙폭에 따라 바로 청산한다는 의미.
2. 시스템
진입
'특정 가격'(변수a)에 가격이 오면(특정가격보다 가격이 낮아졌거나(하향돌파) 높아졌거나(상향돌파) 같거나) 진입
청산
특정 가격(변수b)이 되면 청산
3. 시스템
진입
'특정 가격'(변수a)에 가격이 도달하면 진입
청산
'특정 가격'대비 n%가 떨어지면 청산
거나 or
'특정 가격'대비 n%가 오르면 청산
4.
2번이랑 3번 시스템은 봉이 완성되는 문제가 아니라 가격인데요. 그럼 가격에 도달하면 바로 청산 신호가 나오는 건가요?
5.
진입
연결선물지수 종가가 20이평을 상향돌파하면 참조데이터 buy
청산
연결선물지수 종가가 20이평을 하향돌파하면 참조데이터 sell
6.
6번을 두개의 상품으로 운용하려고 한다면, 예를 들어 kodex200, kodex 인버스 이렇게 사려고 한다면 차트를 각각 kodex200, kodex 인버스를 띄워놓고 연결선물지수를 참조데이터로 불러놓고 6번식을 같이 적용하면 되는 건가요? 그럼 kodex200을 매수진입때는 샀다가 매도진입때는 kodex인버스를 사나요?
2017-10-12
173
글번호 113306
답변완료
수식 요청 드립니다.
안녕하세요.
수식 요청 드립니다.
1, 연결선물 당일청산 시스템에서 장시작 후 당일시가와 완성봉 종가 기준으로
-> 장시작 후 당일시가 아래로 0.7P 이상 하락한 조건 완성봉 발생한 이후,
다시 시가를 0.5P 이상 상승하여 돌파한 봉이발생 하고, 시가을 재 하향 돌파 할 경우
매도진입 (시가기준 0.7P 이상 하락 후 0.5P 이상 상승 -> 시가 아래 재 하락 조건)
-> 장시작 후 당일시가 위로 0.7P 이상 상승한 조건 완성봉 발생한 이후,
다시 시가를 0.5P 이상 하락하여 돌파한 봉이발생 하고, 시가을 재 상향 돌파 할 경우
매수진입 (시가기준 0.7P 이상 상승 후 0.5P 이상 하락 -> 시가 위 재 상승 조건)
감사 합니다.
2017-10-11
153
글번호 113301
답변완료
재질문드립니다.
답변감사합니다. 제 질문이 조금 어색했던거 같은데요.
2. 해외선물 상품으로 새벽 5시가 되면 현재가지고있는 포지션을 일괄청산합니다.
If stime == 050000 or(stime > 050000 and 050000 < stime) then 으로 설정하니 뜨던 시그널이 뜨지 않네요... 선언위치는 가장 아래이며 괄호밖인데 로직이 묶여있는 곳 안에 넣어도 이상하네요. 사는즉시 청산되게 나옵니다..
3.
4. A b c d e라는 조건으로 2번, f i j kl이러는 매도조건으로 2번 손실시 2번 손실난 매수,매도포지션은 당일 더이상 진입하지않습니다
5. 시스템 성과 목록 중 특이치제거 총손익 이라는것이 있는데요. 여기서 특이치의 값을 구하는 기준이 무엇인지 궁금합니다.
6. 엔화, 유로의 경우 보통 슬리피지와 수수료를 몇으로 설정하는지 궁금합니다.
7. 5이평에서 10틱이상 하락후 시가선을 crossdown한뒤에 다시 시가선에서 10틱이상 반등시 수익청산합니다.
2017-10-12
194
글번호 113297
답변완료
문의드힙니다.
안녕하세요?
좋은날만 있을겁니다.
한가지 질문드리겠습니다.
Setstoploss(0.9, percentstop); 이후 바로 매수나 매도로 진입하고 싶습니다.
진입조건 : 매수포지션 상태에서 위 스탑로스시 매도로 진입!
매도포지션 상태에서 위 스탑로스시 매수로 진입!
항상감사합니다.
2017-10-11
121
글번호 113284
답변완료
수정 부탁드립니다
55048 2번 시간 시간선수정잘부탁드립니다
예:30분,60분 변경 부탁드립니다
2017-10-11
143
글번호 113283
답변완료
이것저것 문의드립니다.
매번 감사합니다. 도움이 없었다면 예스트레이더를 아예 쓰지 못했을 듯 합니다.
1. 지표
이 값을 넘으면 5이평값이 상승할 수 있는 선을 지표로
예를 들어 5000원이 되면 이전 값들과 다 합쳐서 5이평이 상승할 수 있으면 값은 5000원
하락지표도 마찬가지.
2. 시스템
진입
고가가 25의 지표값을 넘어설 경우 진입
청산
저가가 25의 하락지표값을 침범했을 경우이거나
수익률이 2%(변수)를 기록했을 때 청산
3. 봉 미완성시 주문이 되지 않는다는 것에 대해
여전히 onclose,AtMarket, AtLimit, Atstop에 대해서 잘 이해를 못해서 그런 것같기도 한데요.
그럼 장초반 30분 볼린저밴드 상단선을 상향돌파시 매수. 하향돌파시 매도라는 조건을 만들었다고 치면
3-1 30분동안 상단선을 상향돌파했다 하향돌파했다 하더라도 30분봉이 완성되지 않으므로 주문은 들어가지 않는 것인가요?
30분봉이 완성되지 않더라도 장시작 이후 30분봉의 시가와 고가같은 것은 끊임없이 업데이트되고 있을텐데요.
3-2 이건 30분이 되지 않았으므로 모두 완성이라고 보지 않는 것인가요?
3-3 만약 30분봉 고가가 볼린저밴드 상단선을 상향돌파, 저가가 볼린저밴드 상단선을 하향돌파 식으로 매수식을 짰다고 하더라도 결국 신호는 30분이 된 다음에야 신호가 발생하게 되는 것인가요?
4. 만약 3-3이 맞다면 비슷하게라도 전략을 만들 수 있는 방법은 없는 것인가요? (발생시점에 신호를 발생시킨다는 식으로)
5. 시스템
진입
특정가격(변수a)에 주가가 도달하면(상향도달이든 하향도달이든) 진입포지션(특정금액(변수b)/특정가격) 만큼 진입
청산
1번 바로 청산/ 진입가격으로부터 수익이 1%발생하면 현재가보다 불리한 금액(+-1) 호가로 청산
2번 물타기/ 진입가격으로부터 손실이 1%발생하면 진입포지션의 2배 만큼 추가진입(물타기)
-2번 포지션(1번+2번 물타기한 수량)의 수익이 1% 발생하면 현재가보다 불리한 금액(+-1)호가로 모두 청산.
3번 2번 가격의 손실이 또 1%가 되면 진입포지션의 2배만큼 추가진입
-3번 포지션의 수익률이 1%가 되면 모두 청산
6. 시스템
진입
특정가격(변수a)에 주가가 도달하면(상향도달이든 하향도달이든) 진입포지션(특정금액(변수b)/특정가격) 만큼 진입
1번 바로 청산/ 진입가격으로부터 수익이 1%발생하면 진입포지션의 절반만큼 추가진입(불타기)
2번 진입가격으로부터 수익이 2%발생하면 1번포지션(처음 산 수량+절반 수량)의 절반만큼 불타기
3번 진입가격으로부터 수익이 3%발생하면 2번포지션의 절반만큼 불타기
청산
저가가 고가 - ATR*3 선에 닿는 순간 1번이든 2번이든 3번이든 모두 청산
2017-10-11
163
글번호 113282
답변완료
문의드립니다~
5.
1봉전부터 100봉전까지 현재기준으로 조건은(or)조건으로 5일선이 20일선보다 3틱이상 이다를 식으로 표현 부탁드립니다. 직접 1봉전 2봉전순으로 식으로 만들어서 사용하는데 너무 길어져서 식으로 표현 부탁드립니다.
설명하자면 1봉전에 5일선이 20일선보다 3틱이상이거나 2봉전에 5일선이 20일선보다 3틱이상이거나 3봉전에 5일선이 20일선보다3틱이상이거나...100봉전까지 순으로요~
그리고 1봉전부터 100봉전까지를 적용할때에 1봉단위 즉 1봉전 2봉전 3봉전 4봉전 순으로 말고 5봉단위 5봉전 10봉전 15봉전 순으로 조건을 적용하는 식도 부탁드립니다.
감사합니다.~
2017-10-11
140
글번호 113281