커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4317
글번호 230811
답변완료
수식 요청 드립니다.
안녕하세요.
수식 요청 드립니다.
1, 연결선물 당일청산 시스템에서 전일 선물거래량 기준으로
-> 전일 선물거래량이 20,000계약 이상일경우 시스템 당일 진입금지 수식 요청드립니다.
감사 합니다.
2017-11-07
154
글번호 113958
답변완료
주문 시간 관련
if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then
buy();
if stime == 144000 or (stime > 144000 and stime[1] < 144000) Then
buy();
위와 같은 수식으로 2:30과 2:40에 매수하려 합니다.
봉차트가 완성된 후 2:31과 2:41에 매수주문이 나가는 것으로 파악됩니다.
혹시 차트를 30분봉으로 설정해두면 2:40의 주문은 3:00 봉차트 완성 이후인 3:01에 나가게 되나요?
(요약: 위와 같은 수식을 사용하려면 봉차트의 시간간격을 10분 이하로 해주어야 하나요?)
2017-11-07
158
글번호 113956
답변완료
이것저것 문의드립니다.
파고들면 파고들수록 예트 참 어렵네요. 도와주시는 덕분에 배우고 있습니다. 매번 감사합니다.
1. 시스템
1-1 매수
-특정가격에 도달하면 즉시 매수
청산
-볼린저밴드 상단 하향돌파하거나
-고점대비 n% 떨어지면 청산
1-2
*지금 매수
청산
볼린저밴드 상단 하향돌파하거나
n% 이상 오른 뒤 고점대비 nb% 이상 내리면 청산
비고
1-1,1-2 고점대비 n% 떨어지면 청산 이것도 이전의 트레일링스탑처럼 매수매도 리포트와 큰 차이가 나는 경우인가요? 만약에 그렇다면 차이가 없는 코딩으로 부탁드립니다.
1-2 허매수 코드없이 적당히 그냥 시스템 키면 매수 가능한 코드는 없을까요? 매번 시간이나 날짜 지정하는 게 힘들어서요.
2. 시스템
진입
특정날짜(변수) 시가에 매수 진입
청산
1-1과 같은 조건
3. 시스템
진입
b
-엔벨로프 폭(상단선-하단선)보다 볼린저밴드 차(상단선-하단선)가 작다면 볼린저밴드 하단선 표준편차 1.8을 종가가 하향돌파했을 때 매수
-c
엔벨로프폭보다 볼린저밴드 차가 크고
볼린저밴드 상단선 가격보다 현재 가격이 n% 이상 크다면 진입
청산
b
볼린저밴드 상단선을 상향돌파하면 청산
c
볼린저밴드 중앙선을 종가가 하향돌파하면 청산
4. 시스템
매수 진입
b
-엔벨로프 폭(상단선-하단선)보다 볼린저밴드 차(상단선-하단선)가 작다면 볼린저밴드 하단선 표준편차 1.8을 종가가 하향돌파했을 때 매수
-c
엔벨로프폭보다 볼린저밴드 차가 크고
볼린저밴드 상단선 가격보다 현재 가격이 n% 이상 크다면 (매도d 청산하고) 진입
매도
d
엔벨로프 폭(상단선-하단선)보다 볼린저밴드 차(상단선-하단선)가 작다면 볼린저밴드 상단선(1.8)을 상향돌파하면 b청산하고 매도 진입
e
엔벨로프 폭보다 볼린저밴드 차가 크고
볼린저밴드 하단선 가격보다 현재 가격이 n% 이상 작다면 (매수b 청산하고) 매도 진입
5. 시스템
특정날짜에 시가대비 n% 이상 현재가가 상승했으면 매수
2017-11-07
174
글번호 113951
답변완료
지표식 부탁드립니다.
안녕하세요.
국선과 해선의 오전장 시작 구분선(수직)을 나타내는 수식을 부탁드립니다.
1) 국내선물 복합장 차트 오전장 시작 수직선
2) 해외선물 차트 오전장 시작 수직선
2) 그리고 항생차트 오전장 시작 구분선(수직)을 나타내는 수식을 부탁드립니다.
미리 감사드립니다.
즐거운 하루되시길 바랍니다.
2017-11-07
181
글번호 113949
답변완료
선 색깔 변경
아래 수식에 선색을 밝은 노랑으로 바꾸어 주세요
input : N(10);
var : idx(0);
if bdate != Bdate[1] Then
idx = 0;
idx = idx+1;
if idx== N Then
TL_New(sdate,stime,99999999,sdate,stime,0);
if idx== N*2 Then
TL_New(sdate,stime,99999999,sdate,stime,0);
if idx== N*3 Then
TL_New(sdate,stime,99999999,sdate,stime,0);
if idx== N*4 Then
TL_New(sdate,stime,99999999,sdate,stime,0);
if idx== N*5 Then
TL_New(sdate,stime,99999999,sdate,stime,0);
2017-11-06
178
글번호 113948
답변완료
어제 답변에 이어서 질문입니다
var : S1(0),D1(0),TM(0),TF(0),cnt(0),TM1(0),TF1(0);
Array : Ovalue[10](0),Hvalue[10](0),Lvalue[10](0),Cvalue[10](0);
#영업일 변경
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);//변경시점의 9시 이후 경과된 분 저장
D1 = sdate; //날짜저장
}
#날짜저장후(차트상 최초 영업일 변경후부터)
if D1 > 0 then{
#영업일 변경시간을 기준으로 현재 경과된 분수를 계산
#영업일 변경시간이 07시이면 s1는 420
#현재 10시이면 600-420 = 180분
#현재 20시이면 1200-420 = 780분
#현재 03시이면 180+1440-420 = 1200분
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
#영업일변경이후 경과된 분수를 60으로 나누어 나머지를 구함
#1분봉에서 아래와 같이 반복적으로 나머지값을 가지게 됨
#[0,1,2,~,58,59],[0,1,2,~,58,59],[0,1,2,~,58,59],....
#그러므로 TF가 전봉보다 작아지는 봉이 새로운 60분봉이 시작되는 봉임
TF = TM%60;
#새로운 60분봉 시작
#각 배열변수 [0]번방에는 초기값 지정
#각 배열변수의 각 방에 저장된 값을 다음방으로 이동
#기존 [0]번방은 [1]번방으로, 기존[1]번방값은 [2]번방으로....
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{
Ovalue[0] = O;
Hvalue[0] = H;
Lvalue[0] = L;
for cnt = 1 to 9{
Ovalue[cnt] = Ovalue[cnt-1][1];
Hvalue[cnt] = Hvalue[cnt-1][1];
Lvalue[cnt] = Lvalue[cnt-1][1];
Cvalue[cnt] = Cvalue[cnt-1][1];
}
}
#Hvalue[0]보다 큰 고가가 출력하면 값갱신
if H > Hvalue[0] Then
Hvalue[0] = H;
#Lvalue[0]보다 작은 저가가 출력하면 값갱신
if L < Lvalue[0] Then
Lvalue[0] = L;
#Cvalue[0]는 매봉종가
Cvalue[0] = C;
var1=dayopen;
#
if (TF == 59) then
{
If Cvalue[0] > var1 and Ovalue[0]<=var1 and Ovalue[1] < Cvalue[0] and Ovalue[2] < Cvalue[0] Then
Condition1 = true;
Else
Condition1 = false;
}
if Condition1 == true Then
buy("시가매수", atlimit ,var1);
if MarketPosition == 1 then
{
if C < entryprice then
ExitLong ("본절청산",AtLimit,entryprice);
if C > entryprice and TM >= TM[BarsSinceEntry]+120 then //진입이후 120분 이상 경과
exitlong("매수익절",AtLimit,entryprice+PriceScale*100);
}
}
이렇게 수식을 주셨는데요.
Cvalue[0]=C; 매봉 종가로 잡아주셔서 차트와 같은 일이 생기는 것 같습니다.
(상단은 60분, 하단은 1분봉입니다. 60분차트의 화살표가 제가 의도하는 진입과 청산시점인데
하단 1분봉 차트에서는 그 이전캔들에서 돌파되자마자 바로 청산해 버리는 상황입니다.)
즉, 60분 봉이었다면 다음 캔들에서 조정이 올때 청산했을 텐데. 1분봉 전략에서는
진입캔들(60개 묶음)이 완성되자 마자. 다음부터 1분캔들 하나하나의 종가에 모두 반응해 버리는 문제가 있습니다.
어제 설명해주신 것처럼 마지막 59분 캔들의 종가에만(매봉 종가가 아닌) Cvalue(0)가 갱신될 수 있도록 부탁드립니다.
if C(또는 Cvalue(0)) < entryprice then
ExitLong ("본절청산",AtLimit,entryprice);
그러면 청산식에서도 C 와 Cvalue(0)의 차이가 생길것 같네요. 위의 식으로는 C대신 Cvalue(0)를 입력해도 같은 결과가 나옵니다...
그리고 한가지 추가 질문드리면, Bdate 는 해외선물에서 오전7시 부터 다음날 오전6시가 영업일 1단위가 되는 건가요? (위에 설명에서는 오전9시 부터라고 해놓으셔서...)
2017-11-06
191
글번호 113947
답변완료
재문의드립니다
55371번재문의드립니다 전봉의고가저가의반절을수평선으로부탁드립니다~~
2017-11-06
167
글번호 113946
답변완료
수식작성 부탁드립니다.
기본챠트 : 60분봉
스톡케스틱 주기 : 5,3,3
수식요청1
스톡케스틱의 기준선 60%아래에서
%k가 %D를 골든크로스하고 난이후 4.5시간동안 데드크로스가 나지 않으면 매수
수식요청2
스톡케스틱의 기준선 60%아래에서
%k가 %D를 골든크로스하고 난이후 4.5시간동안 %k가 상승방향이면 매수
수식요청3
가격이 60이평선을 터치하면 경보음 10회 발생
2017-11-06
156
글번호 113945
답변완료
문의드립니다.
문의 드립니다.
매수 : 연속 음봉 5개 발생시 다음 봉 시초가에 매수진입
매수2 : 연속 음봉 3개 발생후 4번째 봉의 가격이 3번째 음봉 최저가보다 낮을경우 매수진입
매수청산 : 매수진입후 다음봉이 음봉이면 청산
매도 : 연속 양봉 5개 발생시 다음봉 시초가 매도진입
매도2 : 연속 양봉 3개 발생후 4번째 봉의 가격이 3번째 양봉 최고가 보다 높을 경우 매도진입
매도청산 : 매수후 다음봉이 양봉이면 청산
2017-11-07
144
글번호 113944