커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7239
글번호 230811
답변완료
EL 모드에 대하여 ,,,
어떻게 쓰는건지
어느때 쓰는지
자세히 알려주시면 고맙겠습니다.
아무리 살펴보아도 알수가 없네요
2018-06-29
231
글번호 120184
답변완료
함수변환요청
안녕하세요?
아래는 키움증권사 시그널메이커로 5분봉 항셍선물을 매매했던 전략입니다.
예스트레이더로 매매할 수 있도록 함수 변환요청드립니다.
감사합니다.
Params : nnn(10);
Vars : SP(0), TickSize(0);
Vars : fstHH(0), fstLL(0), sndHH(0), sndLL(0);
vars : Xcond(false);
if (date <> sdate[1] and time >= 101500) or
(sdate == sdate[1] and stime >= 101500) Then Xcond = false;
SP = SignalPosition;
v99 = TotalTrades;
TickSize = OneTick * PriceScale;
if v99 > v99[1] and BarsSinceEntry(1) < NNN Then Xcond = true;
v1 = data2(H);
v2 = data2(L);
IF v1[10] > 0 Then
Begin
fstHH = Highest(H, 5);
fstLL = Lowest(L, 5);
sndHH = Max(v1, v1[1], v1[2], v1[3], v1[4], v1[5], v1[6], v1[7], v1[8], v1[9], v1[10]);
sndLL = Min(v2, v2[1], v2[2], v2[3], v2[4], v2[5], v2[6], v2[7], v2[8], v2[9], v2[10]);
End;
IF SP = 0 Then
Begin
If data2(C) > sndHH[1] and Xcond = false Then Buy("B", AtStop, fstHH - TickSize);
IF data2(C) < sndLL[1] and Xcond = false Then Sell("S", AtStop, fstLL - TickSize);
End;
2018-06-29
267
글번호 120183
답변완료
수식 요청
혹시 하기 수식을 키움에서 시스템 적용하는건 안되나요??
input : P1(5),P2(20);
var : T(0);
var1 = (NextBarOpen+AccumN(C,P1-1))/P1;
var2 = ma(c,P2);
if var2 > var2[1] Then
T = 1;
if var2 < var2[1] Then
T = -1;
if stime >= 160000 or stime < 020000 then
{
if T == 1 and NextBarOpen < var1 Then
buy("b",AtStop,NextBarOpen+PriceScale*1);
if T == -1 and NextBarOpen > var1 Then
sell("s",AtStop,NextBarOpen-PriceScale*1);
}
2018-06-29
206
글번호 120182
답변완료
스토캐스틱 과열침체 이용
수식을 부탁드립니다.. 틱180 또는 5분봉에서
(가).stochasiks slow(20,10,5)가 과열권(80)에서 하향하면 매도진입, 계속하락하여 침체권(20)에 진입한 후 침체권(20)을 이탈(상승)하면 즉시 청산한다. 단, 매도진입한 후에 도중에서 반전(상승)하여 10틱 손실나면 즉시 청산한다.
(나).stochasiks slow(20,10,5)가침체권(20)에서 이탈(상승)하면 매수진입, 계속상승하여 과열권 (80)에 진입한후 과열권(80)을 이탈(하락)하면 즉시 청산한다. 단, 매수진입한 후에 도중에서 반전(하락)하여 10틱 손실나면 즉시 청산한다.
(다). 정리(청산)한후에 (가) 및 (나)의 조건이 새로 발생되면 다시 진입(매수, 매도)하는 시스템식을 부탁합니다.,
2018-06-29
225
글번호 120181
답변완료
질문입니다.
당일 매매 후 다음날이나 혹은 그 이후에 스탑로스나 스탑트레일링을 적용하여 매매를 하려고 합니다. 당일과 그 다음날 이후 검색 조건이 달라질 텐데 종목검색과 시스템을 어떻게 짜야할지 감이 오질 않네요.
도움 부탁드립니다.
1. 종목검색 조건은 당일 장중 매매 기준으로
3거래일전 양봉이 아닐 것
2거래일전 양봉
1거래일전 양봉
0거래일전 양봉
2,1,0 거래일전 상한가가 없을 것 (상한가 조건으로 부탁드립니다.)
if O[3] > C[3] and O[2] < C[2] and O[1] < C[1] and O < C
find(1);
2. 매매조건은 당일 15시 15분에 시장가 매수
이후 스탑로스 또는 스탑트레일링 조건에 의해 매매
당일 청산 말고 지정한 시간 뒤에 청산하고자 하면 어떤조건을 추가해야하나요?(ex.진입시점 이후 2거래일 뒤 전량청산)
(스팟에서 1분봉 확장차트에 신호를 적용하여 매매하고 있습니다.)
input : 매수금액(50000);
if stime == 151500 and O < C Then
{
buy("b",AtMarket,def,Floor(매수금액/C));
}
SetStopLoss(2);
SetStopTrailing(1,2,PercentStop,1); //최소 2% 수익 이후에 최고 가격대비 1% 하락하면 청산
2018-07-02
210
글번호 120178
답변완료
수익실현
수식부탁합니다.
1번 수식
3% 수익후 즉시 ( 매도, 매수) 이익실현 합니다
6% 수익후 즉시 ( 매도, 매수 )이익실현 합니다.
2번 수식
3% 수익후 1%하락시 즉시 ( 매도, 매수) 이익실현 합니다
6% 수익후 1%하락시 즉시 ( 매도, 매수 )이익실현 합니다.
3번 수식
3% 수익후 종가 ( 매도, 매수) 이익실현 합니다
6% 수익후 종가 ( 매도, 매수 )이익실현 합니다.
2번 수식
3% 수익후 1%하락시 종가 ( 매도 ,매수) 이익실현 합니다
6% 수익후 1%하락시 종가 ( 매도, 매수 )이익실현 합니다
2018-06-29
207
글번호 120177
답변완료
수식수정요청
아랫 두수식을 합쳐주시고요.
만약 진입했을때 이전거래가 손실이였다면 다음신호때는 진입x
and
2*ATR(20) 로 손절이 들어갔다면 (공식 : (매수)진입가-2ATR, (매도)2ATR-진입가 )
다음 신호 진입ok
1.
nput : p1(55),P2(20);
var : cnt(0),h1(0),l1(0),h2(0),l2(0);
H1 = DayHigh(1);
L1 = daylow(1);
H2 = DayHigh(1);
L2 = daylow(1);
for cnt = 1 to max(P1,P2)
{
if cnt <= P1 Then
{
if DayHigh(cnt) > H1 Then
H1 = DayHigh(cnt);
if DayLow(cnt) < L1 Then
L1 = DayLow(cnt);
}
if cnt <= P2 Then
{
if DayHigh(cnt) > H2 Then
H2 = DayHigh(cnt);
if DayLow(cnt) < L2 Then
L2 = DayLow(cnt);
}
}
if crossup(h,h1) Then
buy("매수");
if CrossDown(l,l2) Then
ExitLong("청산");
2
input : p1(55),P2(20);
var : cnt(0),h1(0),l1(0),h2(0),l2(0);
H1 = DayHigh(1);
L1 = daylow(1);
H2 = DayHigh(1);
L2 = daylow(1);
for cnt = 1 to max(P1,P2)
{
if cnt <= P1 Then
{
if DayHigh(cnt) > H1 Then
H1 = DayHigh(cnt);
if DayLow(cnt) < L1 Then
L1 = DayLow(cnt);
}
if cnt <= P2 Then
{
if DayHigh(cnt) > H2 Then
H2 = DayHigh(cnt);
if DayLow(cnt) < L2 Then
L2 = DayLow(cnt);
}
}
if CrossDown(l,l1) Then
sell("매도");
if crossup(h,h2) Then
ExitShort("청산");
2018-06-29
240
글번호 120175
답변완료
문의드립니다
안녕하세요. 예스에서 파일생성에 대해 문의드립니다
다음과 같은 프로그램으로 파일을 생성하고 있는데.
If (sDate == CurrentDate) and MarketPosition[0] <> MarketPosition[1] Then
{
if MarketPosition == 1 and BarsSinceEntry == 1 Then
Print("C:₩매매.txt", "진입가격:%.2f", EntryPrice);
if MarketPosition[0] <> 1 and MarketPosition[1] == 1 Then
Print("C:₩매매.txt", "청산가격:%.2f", ExitPrice(1));
}
해당봉이 아닌 다음봉에 파일이 생성되고 있네요.
해당봉에서 파일을 생성하는 방법을 알려주셨으면 합니다
감사합니다
2018-06-29
219
글번호 120174
답변완료
문의드립니다
1
소수점이하를 모두 제외하신 다면 아래와 같이 작성하시면 됩니다.
floor(c)가 소수제외한 값입니다.
var1 = Floor(c);
if MarketPosition <= 0 and H < var1 Then
buy("b",AtStop,var1);
if MarketPosition >= 0 and L > var1 Then
sell("s",AtStop,var1);
이렇게 답변주셨는데 제가 질문한거는 예를들어 s&p라하면 2750이나 2650, 2550 즉 앞에 두자리와 상관없이 50에 오면 되면 무조건 매수진입하고 싶다는 말이었습니다 답변부탁드려요
2018-06-29
203
글번호 120173