커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7746
글번호 230811
답변완료
질문좀 드릴게요.
이평을 분봉에서 일간 이평을 보는 방법처럼.
1. 분봉에서 일간 볼린져밴드 보는 것좀 만들어 주실 수 있을까요?
2. 추가로. 선물 장마감 직전 청산식에서. 만기일만 따로 날짜 지정해서
청산되게 하려면 어떻게 해야하는지좀. 아래처럼 하면 만기일은 14시45분 청산
만기일 아닌날은 15시00분 청산인데 else 아랫부분을 지우면 만기일날만 청산되고
그외의 날짜는 조건이 발생하지 않을때는 청산이 안되어야 하는데 청산이 14시 45분에
되는 것같아서 해결방법좀 알려주셨으면 합니다.
if date==20010308 || date==20010614 || date==20010913 || date==20011213 ||
date==20020314 || date==20020612 || date==20020912 || date==20021212 ||
date==20030313 || date==20030612 || date==20030909 || date==20031211 ||
date==20040311 || date==20040610 || date==20040909 || date==20041209 ||
date==20050310 || date==20050609 || date==20050908 || date==20051208 ||
date==20060309 || date==20060608 || date==20060914 || date==20061214 ||
date==20070308 || date==20070614 || date==20070913 || date==20071213 ||
date==20080313 || date==20080612 || date==20080911 || date==20081211 ||
date==20090312 || date==20090611 || date==20090910 || date==20091210 ||
date==20100311 || date==20100610 || date==20100909 || date==20101209 then
setstopendofday(144500);
else
setstopendofday(150000);
3. 포지션 시스템에서 연결선물이 만기일 다음날에는 월물이 변하는데 자동으로 다음월물을 매수하게 한다거나 백테스트 오차를 줄이는 방법은 없을까요?
답변좀 부탁드립니다.
2010-12-02
668
글번호 34027
답변완료
임의 기준선 추가 문의합니다.
기존 지표에 0 기준선을 만들고자 하는데
생각처럼 쉽게 안되네요.
수고하십시요.
2010-12-02
653
글번호 34024
예제 수식 변경 부탁드립니다.
예제를 잘못봤네요 ㅎㅎ
죄송합니다.
2010-12-02
635
글번호 34023
답변완료
파워 종목검색관련 16355글 질문자입니다.
16355글에서 질문드렸었는데 다시 문의드립니다.
아래와같은 조건으로 파워종목검색시 HmaCre(25), MaR(150); 이렇게 설정하고 검색
했을때 안나오던종목이, HmaCre(115), MaR(30); 이렇게 설정하고 검색하면 나오는경우
가 있습니다. 115봉전기준으로 30봉을 검색하면 나오는종목은 25봉전 150봉을 검색하면
당연히 모두 포함되어나와야하는거 아닌지요? 앞선조건에서는 안나오는데 뒤의조건검색
에서는 나오는종목을 하나만 말씀드려보면 imbc가 있습니다. 그외에도 검색일 지정에
따라서 다른종목들도 나오고 안나오고 하는경우가 많이 있습니다.
//상한가검색식 시작
var : 상한가(0), UpLimit(0);
var : aaa(0), bbb(0), ccc(0), ddd(0), eee(0),fff(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else
UpLimit = (BP[0] * 1.15);
if CodeCategory() == 2 then {
if date >= 20030721 then {
aaa = int(UpLimit/100+0.00001)*100;
bbb = int(UpLimit/100+0.00001)*100;
ccc = int(UpLimit/100+0.00001)*100;
ddd = int(UpLimit/50+0.00001)*50;
eee = int(UpLimit/10+0.00001)*10;
fff = int(UpLimit/5+0.00001)*5;
}
else {
aaa = int(UpLimit/1000+0.00001)*1000;
bbb = int(UpLimit/500+0.00001)*500;
ccc = int(UpLimit/100+0.00001)*100;
ddd = int(UpLimit/50+0.00001)*50;
eee = int(UpLimit/10+0.00001)*10;
fff = int(UpLimit/10+0.00001)*10;
}
}
Else {
aaa = int(UpLimit/1000+0.00001)*1000;
bbb = int(UpLimit/500+0.00001)*500;
ccc = int(UpLimit/100+0.00001)*100;
ddd = int(UpLimit/50+0.00001)*50;
eee = int(UpLimit/10+0.00001)*10;
fff = int(UpLimit/5+0.00001)*5;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
If BP >= 500000 Then
상한가 = aaa;
Else If BP >= 100000 Then
상한가 = iff(bbb>=500000, aaa, bbb);
Else If BP >= 50000 Then
상한가 = iff(ccc>=100000, bbb, ccc);
Else If BP >= 10000 Then
상한가 = iff(ddd>=50000, ccc, ddd);
Else If BP >= 5000 Then
상한가 = iff(eee>=10000, ddd, eee);
Else
상한가 = iff(fff>=5000, eee, fff);
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = fff;
}
}
//상한가검색식 종료
Input : HmaCre(25), MaR(150);
value1 = V;
value2 = ma(H,1);
value3 = ma(C,1);
value4 = (value3 - value2)/value2*100;
value5 = (Highest(H,120)[1] - Lowest(L,120)[1]) - (Highest(H,120)[1] - Lowest(L,120)[1])*60/100;
value6 = ma(C,1)[20] - ((ma(C,1)[20] - Lowest(L,120)[1]) - value5);
value7 = (ma(C,1) - value6[20])/ma(C,1)*100;
If CountIF(
countif( C[HmaCre] >= 상한가,1) <= 0 &&
CountIF( value1[HmaCre] >= 50000,6) == 6 &&
countif(
value4[HmaCre] >= -6
,5) >= 5 &&
countif(
(value7[HmaCre] > 18 or value7[HmaCre] < -2)
,6) <= 0
,MaR) >=1 Then
value99 = 1;
Else
value99 = 0;
Find(
value99
);
웃긴건 다른종목 비교는 빼고 imbc만을 기준으로 검색테스트해보았을때,
countif( C[HmaCre] >= 상한가,1) <= 0 &&
CountIF( value1[HmaCre] >= 50000,6) == 6 &&
countif(
value4[HmaCre] >= -6
,5) >= 5 &&
countif(
(value7[HmaCre] > 18 or value7[HmaCre] < -2)
,6) <= 0
위조건중 단 하나의 조건이라도 빼면 HmaCre(25), MaR(150); 이렇게 설정하고 검색해도
imbc가 나오게됩니다. 도저히 원인을 못찾겠네요.
그리고 두번째 질문하나 더 드립니다.
HmaCre(25), 이 설정을 HmaCre(0), 으로 바꾸고 파워종목검색 프로그램툴에서 기준봉
설정을 25로 바꿔주면, HmaCre(25) 이렇게 하고 기준봉을 0으로 설정했을때와 검색
결과가 일치해야하는거 아닌지요? 답변부탁드립니다.
수고하세요.
2010-12-02
715
글번호 34022
답변완료
시초가 표기 ...
안녕하세요.
시초가를 장이 끝날때까지 표시하는 식을 알고 싶습니다.
감사합니다.
2010-12-02
851
글번호 34021
답변완료
수식추가부탁드립니다==============
INPUTS: R(8), S(5), U(5),매수전봉차(1.8),매도전봉차(2),손절치(28),익절치(50),연속봉(11);
VALUE1 = TSI(C, R, S, U);
if stime >= 91000 and stime < 145000 then{
if value1 >= value1[1]+매수전봉차 or countif(value1 > value1[1],연속봉) == 연속봉 Then
Buy();
if MarketPosition == 1 Then{
ExitLong("bx1",AtStop,EntryPrice-PriceScale*손절치);
ExitLong("bx2",AtStop,highest(H,BarsSinceEntry)-PriceScale*익절치);
}
if value1 <= value1[1]-매도전봉차 or countif(value1 < value1[1],연속봉) == 연속봉 Then
sell();
if MarketPosition == -1 Then{
ExitShort("sx1",AtStop,EntryPrice+PriceScale*손절치);
ExitShort("sx2",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*익절치);
}
}
위식에다가 호가잔량 이평오실레이터값이 3000 ~ -3000 사이에 있을 때는 진입안하게 해주세요
2010-12-02
803
글번호 34020
답변완료
시스템식 질문입니다
시스템식 질무입니다
콜옵션 5초 차트
참조 다우산업 일봉
설정해놓은 다음
만약 전 날
다우산업 일봉이 1% 이상 오른 상태에서
장을 다감했다면
9시 장시작이후 첫양봉 시 매수 식 입니다
조건
전일 다우산업지수 1% 이상 상승
5초 콜옵션 첫 양봉 출현시 매수 입니다
감사합니다
2010-12-02
770
글번호 34019
답변완료
문의?
1. 종가가 20일 이동평균선을 상향돌파하면 매수하라.
2. 종가가 직전 매수체결가와 5일전의 최저점을 하향돌파하면 매도하라.
3. 종가가 20일 이동평균선을 하향돌파하면 매도하라.
4. 종가가 직전 매도체결가와 5일전의 최고점을 상향돌파하면 매수하라.
2010-12-01
820
글번호 34018
답변완료
조건 검색식 문의드립니다
[조건 검색]
볼린저밴드 중심선은 "12일 이동평균선"으로 설정하고,
볼린저밴드의 상한선은 "중심선(12일선) +2σ", 하한선은 "중심선(12일선)-2σ"로 설정함.
볼린저밴드의 상한선은 "중심선(12일이동평균선)+3%이내"에 있어야 하며,
& 볼린저밴드의 하한선은 "중심선(12일선)- 3%이내"에 있어야 하고,
& 당일의 캔들(일봉)이 "양봉”이면서 "양봉" 의 고가가 처음으로 볼린저밴드의 상한선을 돌파해야 하며
& 양봉의 고가가 볼린저밴드의 상한선을 돌파한 상태에서 양봉의 고가〉볼린저밴드의 상한선〉5일선〉12일선(중심선)〉20일선의 정배열을 이루어야 하며,
& 당일거래량이 전일거래량 보다 2배 이상이어야 하고
& 스토캐스틱(5,3,1)에서 스토캐스틱(5,3,1)의 값이 당일이 전일 보다 크면서, 당일의 스토캐스틱(5,3,1) 값이 30 이상인 경우의 종목을 검색하는 프로그램을 부탁드립니다.
2010-12-01
1008
글번호 34017