커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7786
글번호 230811
답변완료
일일청산시스템의 진입 제한 방법문의
선물거래 일일청산시스템에서
금일마지막거래에서 매수포지션으로 2P이상 수익이 났다면
금일은 더이상 매수진입은 하지 않는 방법을 알려주세요..
(마찬가지로 매도포지션으로 2P이상 수익이 났다면
금일은 더이상 매도진입은 하지 않습니다)
ma5와 ma20 골드크로스 시스템에 대해서 예제를 들어주세요
수고하세요^^
2008-12-10
904
글번호 18670
답변완료
시스템질문입니다
진입 전략과 청산전략이 있는데
진입 전략은 15분 차트에서 적용이 되고
청산 전략은 5분 차트에서 적용시킬려고 합니다
가능한지 궁굼하고, 차트를 접목시키는 명령어좀 예제좀 부탁드립니다.
2008-12-10
790
글번호 18669
답변완료
타종목 호가잔량 이평 오실레이터
호가 잔량이평오실레이터 지표식은 아래와 같은데
Input : Period(5);
Var : value(0);
value = ma(bids,period)-ma(asks,period);
If value > value[1] Then
Plot1(value, "매수총잔량 우위");
Else
Plot2(value, "매도총잔량 우위");
PlotBaseLine1(0,"기준선");
이 지표식을 data2에 선물차트를 띄워놓고 data2 차트에 적용하여 보려고 합니다.
value = data2(ma(bids,period))-data2(ma(asks,period)); 만 바꾸어 적용했더니 제대로 그려지지 않네요.
어떻게 작성해야 data2에 적용할 수 있는지요?
친절한 답변에 늘 감사드립니다. 그럼 수고하세요 ^^*
2008-12-10
1043
글번호 18668
답변완료
당일 시가 기준 진입횟수
당일 시가 기준으로 위아래 2포인트 내외에서는 신호가 안나오게끔 하고 싶은데요.
If (dayopen > 2 or dayopen < -2) And 진입식 Then
이렇게 하면은.. 당일 시가 기준으로 위 아래 2포인트 내외에서는 신호가 안나올줄
알았는데.. 안되더라구요 ㅡㅡ;
도움 부탁드리겠습니다.
2008-12-10
853
글번호 18664
답변완료
진입효율 방법
매거래시마다.. 리포트에 진입효율과 청산효율이 뜨는데요.
예를들어서.. 진입이후 청산시.. 그 거래에 대한.. 진입 효율이
50 이하이면은.. 그날 거래 중지.. 50이상이면은.. 거래 계속 가능!!
이런식으로... 진입효율을 이용한 함수전략이 가능한지요?
제 생각으로는.. 진입시점을 잡는 계산법이기에 안될것 같지만..
혹시나 싶어 질문드립니다.. 그럼 수고하세요 ^^
2008-12-10
864
글번호 18660
답변완료
다음식의 검증
간단한 식을 작성했는데요
맞는지 보아주시면 매우 감사하겠습니다.
현재봉의 매도잔량이 매수잔량보다 크면...
if asks>bids ...
1봉전봉보다 현재봉의 매도총잔량이 우위이면...
var1=bids-asks
if var1 < var1[1]...
--------
그리고
선물 시뮬레이션 차트에서(15분봉)
지표식의 미결제약정을 차트에 적용하려하면
예트3.1 프로그램이 아예 다운되어 버리네요.
몇번이나 해보았는데도요.
왜 그럴까요? 오늘 아침에 일어나서 다시해봐도 예트 프로그램이
다운되어서 사라지네요. 그래서 다시 로그인해야만 하네요.
그리고 선물에서 미결제약정을 활용하는 방법은 어찌되는지요?
매도 포지션의 미결제약정이 있을 것 같고,
매수 포지션의 미결제약정이 있을 것 같은데...
매도포지션의 미결제약정이 늘어나면 통상 매도쪽으로 추세가 강화되고
매수포지션의 미결제약정이 늘어나면 통상 매수쪽으로 추세가 강화되고...
이럴 것 같은데,,,
지표식을 보니 그냥 OPENINREREST로 표시되었네요???
미결제약정을 이용해서 추세 혹은 매수/매도 진입을 표시하는 상식선의 수식은
어찌 되는지 알려주시면 매우 감사하겠습니다.
-----------
선물시스템거래에서요.
전날 마지막봉에서 특정조건을 만족하면,
다음날 최초의 시가에서 진입이 가능하게 할 수 있나요?
아니면 역시 시가봉이 완성된 후에만 진입이 가능한가요?
만약 시가에서 진입이 가능하다면,
전일 마지막봉(다음날 시가봉에서는 1봉전이 되겠네요)종가가=a라면,
다음날 시가에 매수하라...
이런 식을 만들어 주시면 감사하겠습니다.
좋은 하루되세요 ^^
2008-12-10
941
글번호 18659
답변완료
수식문의드립니다.
안녕하세요.
50, 100, 150, 200 이라는 지수(선물 등등)가 있을때요.
50~100을 1
100~150을 2
150~200을 3
이라고 하면요.
전봉의 종가가 범위1에 있는지 범위2나 범위3에 있는지 알려주는 수식을 만들려고
합니다. 이것을 하나하나 if ~ then문으로 비교 안 하고, 좀 간단하게 할 수 있는
방법 없나요? 범위가 한 10가지 이상이 되면.. 너무 복잡해져서요.
2008-12-09
866
글번호 18657
답변완료
문의드립니다.
안녕하세요
1. 중복진입을 허용한 상태에서 진입을 두번하였을때 각각의 진입수량을 알수 있는 방법이 있나요?
2. 만료일을 알려주는 ExpirationDate 값이 0으로만 나옵니다. 어떻게 하면 활용할수 있을까요?
미리 감사드립니다.
2008-12-09
1026
글번호 18655
답변완료
재문의
빠른 답변 감사합니다..
1] 시가 위 일정 범위 돌파시마다 진입하여
진입수량 4개까지 피라미딩 가능한 식으로 아래와 같이 만들어봤는데..
[나중엔 최대 10개까지로 하려고 생각중입니다]
조금 이상합니다..원하는대로 안들어가네요..
수정 부탁드립니다...
2] 일최대진입수량은 11개로 제한하여면 어떤 구문을 추가해야하나요..?
아래 "일최대진입횟수"가 진입 수량을 제한하는게 아니라..피라미딩 횟수를
나타내는 것 같네요..
3] 또,손절이나 익절의 경우 Isentryname("ba") 처럼 지정하여..
진입명이 ba 인 진입만 처리할수는 없는건가요?
if isentryname("ba") then
exitlong("baCS",AtStop,entryBA-1,"",1,1);
이런 식으론 안되는건지요?
수고하세요..
##########################################################################
var: countN(0),cntN(0);
vars : entryBA(0),entryBB(0),entryBC(0),entryBD(0);
input : 일최대진입횟수(5);
input : entrystime(090000),entryftimeB(143000) ;
input : pyramidgap(0.5) ;
countN = 0;
for cntN = 0 to 10 {
if sdate == EntryDate(cntN) Then
countN = countN+1;
}
## BA
if stime>entrystime and stime < entryftimeB Then
if MarketPosition() == 0 and C> dayOpen() and countN <일최대진입횟수 Then {
if crossup(C,dayopen()+pyramidgap) Then{ //pyramidgap 돌파시
buy("ba");
entryBA = C; //ba의 진입가
}
}
## BB
if stime>entrystime and stime < entryftimeB Then
if MarketPosition() == 1 and CurrentEntries() == 1 and countN <일최대진입횟수-1
and accumn(iff(CurrentEntries == 2,1,0),BarsSinceEntry()+1) < 1 Then {
if crossup(C,dayopen()+pyramidgap*2) Then{ //pyramidgap 돌파시
buy("bb");
entryBB = C; //bb의 진입가
}
}
## BC
if stime>entrystime and stime < entryftimeB Then
if MarketPosition() == 1 and CurrentEntries() == 2 and countN <일최대진입횟수-2
and accumn(iff(CurrentEntries == 3,1,0),BarsSinceEntry()+1) < 2 Then {
if crossup(C,dayopen()+pyramidgap*3) Then{ //pyramidgap 돌파시
buy("bc");
entryBC = C; //bc의 진입가
}
}
## BD
if stime>entrystime and stime < entryftimeB Then
if MarketPosition() == 1 and CurrentEntries() == 3 and countN <일최대진입횟수-3
and accumn(iff(CurrentEntries == 4,1,0),BarsSinceEntry()+1) < 3 Then {
if crossup(C,dayopen()+pyramidgap*3) Then{ //pyramidgap 돌파시
buy("bd");
entryBD = C; //bd의 진입가
}
}
##########################################################################
input : CSlen(1.5),TSplen(1.9),returnTSlen(0.8) ;
## BA매수만 진입했을 경우
if MarketPosition() == 1 and CurrentEntries() == 1 then {
exitlong("baCS",AtStop,entryBA-CSlen,"",1,1);
if highest(C,BarsSinceEntry) >= entryBA+TSplen Then
exitlong("baTS",AtStop,highest(C,BarsSinceEntry)-returnTSlen,"",1,1);
}
## BA와 BB 2개 진입이 피라미딩으로 진입했을 경우
if MarketPosition() == 1 and CurrentEntries() == 2 then {
exitlong("bbCS",AtStop,entryBB-CSlen,"",1,1);
if highest(C,BarsSinceEntry) >= entryBB+TSplen Then
exitlong("bbTS",AtStop,highest(H,BarsSinceEntry)-returnTSlen,"",1,1);
}
## BA,BB & BC 3개 진입이 피라미딩으로 진입했을 경우
if MarketPosition() == 1 and CurrentEntries() >= 3 then {
exitlong("bcCS",AtStop,entryBC-CSlen,"",1,1);
if highest(C,BarsSinceEntry) >= entryBC+TSplen Then
exitlong("bcTS",AtStop,highest(H,BarsSinceEntry)-returnTSlen,"",1,1);
}
## BA,BB,BC & BD 4개 진입이 피라미딩으로 진입했을 경우
if MarketPosition() == 1 and CurrentEntries() >= 4 then {
exitlong("bdCS",AtStop,entryBD-CSlen,"",1,1);
if highest(C,BarsSinceEntry) >= entryBD+TSplen Then
exitlong("bdTS",AtStop,highest(H,BarsSinceEntry)-returnTSlen,"",1,1);
}
SetStopEndofday(1500);
2008-12-09
1130
글번호 18651