커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6177
글번호 230811
답변완료
변수입력 추가
아래 수식 건을 가지고
1)분봉 건은 input으로 봉개수를 사용해보았으나 작동이 안됩니다.
2)틱차트 건은 input을 어떻게 해야할 지 모르겠습니다.
시뮬레이션을 위해 input변수를 넣는 수식을 부탁드립니다.
***********************************
안녕하세요
예스스탁입니다.
1.분봉
양봉이고 전봉보다 100개 이상 증가했으면 매수
음봉이고 전봉보다 100개 이상 증가했으면 매도
if bdate == bdate[1] and ticks > ticks[1]+100 and C > O Then
buy();
if bdate == bdate[1] and ticks > ticks[1]+100 and C < O Then
sell();
2 틱차트
양봉이고 전봉보다 시간이 감소했으면 매수
음봉이고 전봉보다 시간이 감소했으면 매도
var : S1(0),S2(0),ST(0),E1(0),E2(0),ET(0),second(0);
S1 = TimeToMinutes(stime)*60;
S2 = FracPortion(stime/100)*100;
ST = S1+S2;
E1 = TimeToMinutes(time)*60;
E2 = FracPortion(time/100)*100;
ET = E1+E2;
Second = ET-ST;
if bdate == bdate[1] and Second < Second[1] and C > O Then
buy();
if bdate == bdate[1] and Second < Second[1] and C < O Then
sell();
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 진입청산 수식
> 아래수식에 buy/sell 수식 예제까지 부탁드립니다.
2018-02-27
149
글번호 116984
답변완료
함수 예약어 정의 및 설명 부탁드립니다.
안녕하세요~
항상 정확하고 빠른 답변에 대해 감사드립니다.
다름이 아니라 단기과열 관련하여 검색을 하다 보니 아래와 같은 수식을 발견하였습니다.
var : AA(0),BB(0);
AA = iff(ma(c, 40)[1] * 1.3 <= C and
ma(m/C, 40)[1] * 6 <= ma(m/C, 2) and ma(((h-l)/((h+l)/2)), 40)[1] * 1.5 <= ma(((h-l)/((h+l)/2)), 2)
and C[1] < C,1,0);
BB = accum(AA);
var2=iff(c>o,c,o);
if BB[1] - BB[10] == 0 and AA == 1 then
PlotPaintBar(var2,var2,var2,var2, "단기과열적출");
else
NoPlot(1);
이중에 일부 함수와 예약어의 뜻이 궁금하여 문의 드립니다.
- iif
- m
- PlotPaintBar(), NoPlot() 이 두 함수는 Plot1()함수와 어떤 차이가 있나요?
감사합니다.
2018-02-27
189
글번호 116976
답변완료
수식 요청 드립니다.
안녕하세요.
연결선물 적용 오버형 시스템에서 진입되어있는 현재 포지션 있는경우 매월 옵션 만기일 15시15분에는
모든 포지션이 전량 청산하는 옵션 만기일 청산수식 요청 드립니다.
감사합니다.
2018-02-27
137
글번호 116975
답변완료
문의
아래 키움을 macd 크로스 수식작성 부탁드립니다.
1번
Input : shortPeriod(25), longPeriod(30), Period(5);
var : hh(0);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
여기까지 했습니다.
== 아래 ==
키움 수식변경이 가능할까요?
a =macd(shortperiod,longperiod);
b =evag(a,sigperiod);
hh = valuewhen(1,crossup(1,b),h);
crossup(c,hh)
2번
혹시 참조데이터할때 꼭 차트를 그려야하나요
현제 기본 국선차트에 참조데이터 data2 를 콜옵션 등가지정이라면
차트에 data3로 또다른 콜지정가 차트를 그리지는 안고 그값을 불러들여서
현제 얼마인지 알수없나요?
콜 317 의 현제가격을 input
2018-02-27
165
글번호 116971
답변완료
함수요청
안녕하세요?
작성주신 식을 응용하여 아래와 같이 작성하였습니다.
생각했던 신호가 아니어서 올바르게 작성된 것인지 검수요청 부탁드립니다.
매수: (data2)일봉상 파라볼릭 매수신호(상승파라볼릭) 상태이며,
(data1)60분봉상 60ma가 볼린저밴드 하단선을 하향돌파 후 3개 봉이 완성되고 4번째 봉 시가에 진입
매도: (data2)일봉상 파라볼릭 매도신호(하락파라볼릭) 상태이며,
(data1)60분봉상 60ma가 볼린저밴드 상한선을 상향돌파 후 3개 봉이 완성되고 4번째 봉 시가에 진입
거래시간: 9시~16시(진입기준)
input : P(20),dv(2);
Input : af(0.02), maxAF(0.2);
var : BBmd1(0,data1),BBup1(0,data1),BBdn1(0,data1);
var : up1(0,data1),dn1(0,data1);
var : sar1(0,data2);
BBmd1 = data1(ma(C,P));
BBup1 = data1(BollBandUp(P,dv));
BBdn1 = data1(BollBandDown(P,dv));
sar1 = data2(sar(af,maxAF));
if data1(Crossup(c,BBup1)) and data2(c>sar1)) Then
up1 = data1(index);
if data1(CrossDown(c,BBdn1)) and data2(csar1)) Then
dn1 = data1(index);
if data1(stime >= 90000 and stime < 160000) then{
if data1(index == dn1+3 and dn1 > 0) Then
buy("b",AtMarket);
if data1(index == up1+3 and up1 > 0) Then
sell("s",AtMarket);
}
2018-02-27
143
글번호 116970
답변완료
지표
1. 차트에 추세선,피보나치 등등을 그리고 나서 저장방법 -> 차트 속성 -> 차트보조도구 저장을 했고, 답변주신거에서 종목을 바꾸면 없어진다했는데 종목을 바꿔도 오늘은 안없어지는데
이게 약간 랜덤인가요?... 아니면 어느정도의 기간이 좀 차트에 그리면 없어지는건지
아니면 위에 하라는대로 보조도구만 저장해두고 오른쪽 하단 기본조건설정해놓으면 1.종목을 바꾸어도, 2.hts를 꺼도 그대로 유지가되는건지
2. 밑에 지표를 거래량처럼 활용을 하려고하는데 분봉 거래(가격대비)처럼 양봉에는 빨간색 음봉에는 파란색으로 하려고하면 어떻게 설정하면 되나요?
var : B(0),B2(0);
if date != date[1] Then{
B2 = B[1];
}
B = B + iff(c>o,(H+O+L+C)/4*V/100000000,iff(c<o,-(H+O+L+C)/4*V/100000000,0));
3. 어제 물어본 내용인데 뜻풀이는 이정도로 하면 되나요?? 공시를 토대로 조건수식입니다
표시는 일봉에 나타내는건데 화살표이든 강세표시이든 표시를 나타낼수있는거면 됩니다
시중에 나와있는 지표라 해석을 안썻었네요 죄송함다
-과열예고발동-
1.
A = sum(avg(c, 40, 1) * 1.3 <= C //1봉전40이평선*1.3 <= 종가이고
and avg(거래대금/C, 40, 1) * 6 <= avg(거래대금/C, 2) //1봉전 기준 거래대금/종가의 40봉평균값*6 <= 0봉전기준 거래대금/종가의 2봉평균값이고
and avg(((h-l)/((h+l)/2)), 40, 1) * 1.5 <= avg(((h-l)/((h+l)/2)), 2) // 1봉전기준 ((고가-저가)/(고가+저가)/2))의 40봉평균값*1.5 <= 0봉전기준 ((고가-저가)/(고가+저가)/2))의 2봉평균값이고
and C(1) < C); //1봉전 종가 < 0봉전 종가 조건을 모두 만족할때마다 1값을 누적함
B = valuewhen(1, A(1) != A, C); // 위 조건 모두 만족했을때의 종가
if(A(1) - A(10) >= 1, B(1) < C and A(1) != A, A(1) != A) // 1봉전기준 10봉이내에 위 조건에 만족한 횟수가 1이상이고 1봉전 B값 < 0봉전 종가이고 1봉전 A값과 0봉전 A값이 서로다를때 신호를 나타내고, 1봉전기준 10봉이내에 위 조건에 만족하지 않았을때에는 1봉전 A값과 0봉전 A값이 서로다를때 신호를 나타냄
2.
A = avg(c, 40, 1) * 1.3 <= C //1봉전40이평선*1.3 <= 종가이고
and avg(거래대금/C, 40, 1) * 6 <= avg(거래대금/C, 2) //1봉전 기준 거래대금/종가의 40봉평균값*6 <= 0봉전기준 거래대금/종가의 2봉평균값이고
and avg(((h-l)/((h+l)/2)), 40, 1) * 1.5 <= avg(((h-l)/((h+l)/2)), 2) // 1봉전기준 ((고가-저가)/(고가+저가)/2))의 40봉평균값*1.5 <= 0봉전기준 ((고가-저가)/(고가+저가)/2))의 2봉평균값이고
and C(1) < C; //1봉전 종가 < 0봉전 종가 조건을 모두 만족하면 1값을 나타냄
B = sum(A); // A조건이 만족할때마다 1값을 누적함
B(1) - B(10) == 0 and A == 1 // 1봉전 기준 10봉이내에 A조건을 만족하지 않고, 0봉전 기준으로 A조건에 만족시 신호를 나타냄
2018-02-27
200
글번호 116969
답변완료
수식추가부탁드립니다.
안녕하세요,, 글번호 53898 에 추가부탁드립니다
데이타4 당일시가라인
데이타4 당일고가라인
데이타4 당일저가라인
데이타4 당일중심라인
수고하세요. 꾸벅
2018-02-27
148
글번호 116968
sdsadsa 님에 의해서 삭제되었습니다.
2018-02-27
1
글번호 116966
답변완료
문의드립니다.
매번 감사합니다.
1. 기타
전에 만들어 주신 전략인데요. 이거 해선에 적용하기 위해서 시작시간을 특정시간(외부변수)을 적용하려면 어떻게 바꾸어야 하나요? 해선은 dayopen하면 오후 시간대가 시작시간이더라구요.
input : N(35);
var : TM(0);
TM = TimeToMinutes(stime);
if date != date[1] Then
var1 = TM;
if TM < var1+N Then{
value1 = dayhigh;
value2 = daylow;
value3 = dayhigh-daylow;
}
input : 당일진입횟수(1);
var : K1(0),Dayentry(0);
if bdate != bdate[1] Then
K1 = TotalTrades;
if MarketPosition == 0 Then
Dayentry = TotalTrades-K1;
Else
Dayentry = TotalTrades-K1+1;
if TM >= var1+N Then{
if crossup(c,value1) Then{
if dayentry < 당일진입횟수 then
buy();
}
if CrossDown(c,value2) Then
{if dayentry < 당일진입횟수 then
sell();
}
}
2018-02-27
150
글번호 116965