커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4528
글번호 230811
답변완료
문의드립니다
1.
input : 진입수량(4),목표틱수1(5),목표틱수2(10),목표틱수3(15),목표틱수4(20);
var42 = ma(C,100);
if MarketPosition <= 0 and
TotalTrades == TotalTrades[1] and
var42 > var42[1] Then{
buy("b",OnClose,def,진입수량);
ExitLong("bx1.",atlimit,C+PriceScale*목표틱수1,"",1,1);
ExitLong("bx2.",atlimit,C+PriceScale*목표틱수2,"",1,1);
ExitLong("bx3.",atlimit,C+PriceScale*목표틱수3,"",1,1);
ExitLong("bx4.",atlimit,C+PriceScale*목표틱수4,"",1,1);
}
if MarketPosition >= 0 and
TotalTrades == TotalTrades[1] and
var42 < var42[1] Then{
sell("s",OnClose,def,진입수량);
ExitShort("sx1.",atlimit,C-PriceScale*목표틱수1,"",1,1);
ExitShort("sx2.",atlimit,C-PriceScale*목표틱수2,"",1,1);
ExitShort("sx3.",atlimit,C-PriceScale*목표틱수3,"",1,1);
ExitShort("sx4.",atlimit,C-PriceScale*목표틱수4,"",1,1);
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*목표틱수1 Then
ExitLong("bx1",atlimit,EntryPrice+PriceScale*목표틱수1,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*목표틱수2 Then
ExitLong("bx2",atlimit,EntryPrice+PriceScale*목표틱수2,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*목표틱수3 Then
ExitLong("bx3",atlimit,EntryPrice+PriceScale*목표틱수3,"",1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*목표틱수4 Then
ExitLong("bx4",atlimit,EntryPrice+PriceScale*목표틱수4,"",1,1);
}
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*목표틱수1 Then
ExitShort("sx1",atlimit,EntryPrice-PriceScale*목표틱수1,"",1,1);
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*목표틱수2 Then
ExitShort("sx2",atlimit,EntryPrice-PriceScale*목표틱수2,"",1,1);
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*목표틱수3 Then
ExitShort("sx3",atlimit,EntryPrice-PriceScale*목표틱수3,"",1,1);
if Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*목표틱수4 Then
ExitShort("sx4",atlimit,EntryPrice-PriceScale*목표틱수4,"",1,1);
}
정말감사합니다..항상
다름이아니라..이부분에 목표수익을 넣고싶습니다
1.예시: 위 분할청산 하는 거에 각각 제가 원하는 수익을 얻었을경우
목표수익(외부변수) 를 이용하여 더이상 신호가 발생 안되게
만들고싶습니다
분할 청산후 예:50만원을 수익을 얻었을경우 신호발생 X
2.혹시 분활청산될때 색깔 지정이 안된다면
모양을 넣을수 있는지 궁금합니다
예시: 1차청산에 동그라미 2차청산에 세모
3차청산에 네모 4차청산에 별표
가능하다면 수식좀부탁드립니다
당분간은 문의가 없을듯합니다 ..감사합니다..좋은하루되세요..
2016-09-22
134
글번호 102141
답변완료
수식 의뢰합니다
아래는 중앙선 수식입니다.
이 중앙성을 기준으로 위로 통과하면 는 매수 신호, 아래로 통과하면
매도신호가 나오도록
만들어 주세요! 피라미드 적용한것 처럼 반대 신호가 나올떄까지
계속 신호가 나오도록 부탁드립니다. 감사합니다.
var1 = (dayhigh+daylow)/2;
plot1(var1,"중앙선");
plot2(999999999999,"상단");
plot3(-99999999999,"하단");
2016-09-22
134
글번호 102140
답변완료
문의드립니다.
1분봉 차트로 가정하여 말씀드리면,
50봉 신고가 돌파매수라는 수식으로 시스템을 작성하게되면
전일이후 당일 갭상승을 통해 50봉 신고가를 돌파 달성하게 되면 시초가 부터 매수 진입하게 됩니다.
이게 아니라 당일 첫봉 이후 50봉 신고가라는 수식을 작성하고 싶은데 어떻게 하면 되나요??
매번 감사합니다.
** 시간을 기준으로 하는게 아닌, 봉의 갯수(당일 첫봉 생성이후 and 49봉종가 생성이후) 를 기준으로 수식을 작성하고 싶습니다.
2016-09-22
103
글번호 102139
답변완료
지표명 표시 부탁드립니다.
많은분들의 답변에 수고가 많으십니다.
만든지표(수평선) 우측위에 지표명이 표시될수 있는 방법이 있다면 편리하게 사용할수
있겠습니다.
현재는 차트 제일 윗부분에 나타나는데 지표선이 여러개일경우 쉽게 구분하기 어려워 문의
드리니 해결방여이 있다면 조치할수 있도록 부탁 드립니다.
2016-09-22
125
글번호 102138
답변완료
시스템 적용 관련
안녕하세요
하기 메일에 주신 수식이 전혀 진입이 이루어지지 않고 있습니다.
무슨 문제가 있는것인지 확인 부탁드립니다.
1번째, 2번째 모두 말을 듣지 않습니다.
제가 원하는 방법을 챠트로 표현해 봤습니다.
첨부 파일 확인 부탁드리고 여기에 맞는 수식이 가능하신지 확인 부탁드립니다.
볼린져 밴드가 없는 2번으로 진행할 때, data1,2가 필요한지요?
잘은 모르겠지만 필요가 없는 것 같은데.. 검토 부탁드립니다.
3. MACD oscillator에 관하여 질문이 있습니다.
통화선물 - 유로 or 옌은 기준선 0만있고 숫자가 나타나지 않는데, 왜 그런건지요?
감사합니다.
안녕하세요
예스스탁입니다.
1.
input : MACD매수기준(0.1),MACD매도기준(-0.1);
위 부분에 0.1, -0.1로 지정하고 적용하시면 됩니다.
input : RSIP(10),sto1(10),sto2(5);
input : BBP(20),dv(2),P(60);
input : short(12),long(26),sig(9);
input : RSI과매수(70),RSI과매도(30);
input : Sto과매수(80),Sto과매도(20);
input : MACD매수기준(1),MACD매도기준(-1);
var : RSIV(0,data1),stok(0,data1),MACDO(0,data1);
var : bbup(0,data2),bbdn(0,data2),bbmd(0,data2),mav1(0,data2);
RSIV = data1(RSI(RSIP));
Stok = data2(StochasticsK(sto1,sto2));
MACDO = data1(MACD_OSC(short,long,sig));
BBup = data2(BollBandUp(BBP,dv));
BBmd = data2(ma(C,BBP));
BBdn = data2(BollBandDown(BBP,dv));
mav1 = data2(ma(c,P));
if data1((CrossDown(RSIV,RSI과매수) and
stok < Sto과매수 and countif(CrossDown(stok,Sto과매수),5) >= 1 and
MACDO > MACD매수기준 and countif(crossup(MACDO,MACD매수기준),5) >= 1) or
(CrossDown(stok,Sto과매수) and
RSIV < RSI과매수 and countif(CrossDown(RSIV ,RSI과매수),5) >= 1 and
MACDO > MACD매수기준 and countif(crossup(MACDO,MACD매수기준),5) >= 1) or
(CrossUp(MACDO,MACD매수기준) and
stok < Sto과매수 and countif(CrossDown(stok,Sto과매수),5) >= 1 and
RSIV < RSI과매수 and countif(CrossDown(RSIV ,RSI과매수),5) >= 1)) Then{
if data2(C > BBmd and BBup > mav1) and MACDO > 0 Then
buy();
}
if data1((CrossUp(RSIV,RSI과매도) and
stok > Sto과매도 and countif(CrossUp(stok,Sto과매도),3) >= 1 and
MACDO < MACD매도기준 and countif(CrossDown(MACDO,MACD매도기준),5) >= 1) or
(CrossUp(stok,Sto과매도) and
RSIV > RSI과매도 and countif(Crossup(RSIV ,RSI과매도),3) >= 1 and
MACDO < MACD매도기준 and countif(CrossDown(MACDO,MACD매도기준),5) >= 1) or
(CrossDown(MACDO,MACD매도기준) and
stok > Sto과매도 and countif(CrossUp(stok,Sto과매도),3) >= 1 and
RSIV > RSI과매도 and countif(Crossup(RSIV ,RSI과매도),3) >= 1)) Then{
if data2(C < BBmd and BBup < mav1 ) and MACDO < 0 Then
Sell();
}
2
data2의 볼밴조건을 뺀 식입니다.
input : RSIP(10),sto1(10),sto2(5);
input : BBP(20),dv(2),P(60);
input : short(12),long(26),sig(9);
input : RSI과매수(70),RSI과매도(30);
input : Sto과매수(80),Sto과매도(20);
input : MACD매수기준(0.1),MACD매도기준(-0.1);
var : RSIV(0,data1),stok(0,data1),MACDO(0,data1);
RSIV = data1(RSI(RSIP));
Stok = data2(StochasticsK(sto1,sto2));
MACDO = data1(MACD_OSC(short,long,sig));
if data1((CrossDown(RSIV,RSI과매수) and
stok < Sto과매수 and countif(CrossDown(stok,Sto과매수),5) >= 1 and
MACDO > MACD매수기준 and countif(crossup(MACDO,MACD매수기준),5) >= 1) or
(CrossDown(stok,Sto과매수) and
RSIV < RSI과매수 and countif(CrossDown(RSIV ,RSI과매수),5) >= 1 and
MACDO > MACD매수기준 and countif(crossup(MACDO,MACD매수기준),5) >= 1) or
(CrossUp(MACDO,MACD매수기준) and
stok < Sto과매수 and countif(CrossDown(stok,Sto과매수),5) >= 1 and
RSIV < RSI과매수 and countif(CrossDown(RSIV ,RSI과매수),5) >= 1)) Then{
buy();
}
if data1((CrossUp(RSIV,RSI과매도) and
stok > Sto과매도 and countif(CrossUp(stok,Sto과매도),3) >= 1 and
MACDO < MACD매도기준 and countif(CrossDown(MACDO,MACD매도기준),5) >= 1) or
(CrossUp(stok,Sto과매도) and
RSIV > RSI과매도 and countif(Crossup(RSIV ,RSI과매도),3) >= 1 and
MACDO < MACD매도기준 and countif(CrossDown(MACDO,MACD매도기준),5) >= 1) or
(CrossDown(MACDO,MACD매도기준) and
stok > Sto과매도 and countif(CrossUp(stok,Sto과매도),3) >= 1 and
RSIV > RSI과매도 and countif(Crossup(RSIV ,RSI과매도),3) >= 1)) Then{
Sell();
}
2016-09-22
187
글번호 102137
비상8 님에 의해서 삭제되었습니다.
2016-09-22
6
글번호 102136
답변완료
수식작성 부탁드립니다.
아래 수식의 신호 발생 조건에서
진입 신호는 +5틱이 더 진행된 후에 신호 발생하고
청산은 아래 수식 그대로 신호가 발생되도록 하는 수식좀 부탁드립니다.
매수신호 다음에는 매도 신호가 나오는 것이 일반적인데 위 주문대로 하면
진입 -> 청산 -> 진입 이런 형식의 신호도 나오지만
진입 -> 청산 -> 청산(+5틱 이하 진입하지 않는 신호) --> 진입
또는
진입 -> 청산 -> 청산(+5틱 이하 진입하지 않는 신호) -> 청산 -> 진입
이런 식의 신호가 나올 수도 있습니다.
var1 = ma(c,20);
var2 = ma(c,40);
var3 = ma(C,60);
if var1 > var2 and C > var3 and C > O Then
buy();
if var1 < var2 and C < var3 and C < O Then
sell();
2016-09-22
88
글번호 102135
답변완료
시스템식이 맞나요??
5일지수(시가)이평 을 돌파하면 매수하는 식인데 분봉에서할수 있도록 Q&A를 보고 제가 만든것인데 뭐가 잘못 된건지 모르겠네요 대성파인텍3분봉에서 성과검정 하니까 마이너스 수익률 나는데 왜 그런지요??
input:p1(5),n(21);
var:energe1(0),energe2(0),sumv(0),emav(0),count(0);
sumv=0;
for count=1 to p1{
sumv=sumv+dayopen(count);
}
emav=sumv/p1;
Energe1 = accumN(H-O,N)/accumN(O-L,N)*100;
Energe2 = accumN(h-c,N)/accumN(c-l,N)*100;
if energe1>=95 and crossup(c,emav)Then
{
buy();
}
if crossdown(c,emav) then
{
sell();
}
2016-09-22
101
글번호 102134
답변완료
동시호가 체결량 문의
연결선물 일봉에서 장시작 동시호가의 체결량과 장종료 동시호가의 체결량을 표시할수 있는 방법이 있는지요~?
자주 질문 올려도 친절히 답해주셔서 감사드립니다.
2016-09-22
101
글번호 102133