커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4361
글번호 230811
답변완료
문의드립니다.
현재쓰고 있는 지표식입니다.
첨부파일 처럼 흰색박스를 그리고 싶습니다.
input : N(3);
if C > O Then
var1 = 1;
if C < O Then
var1 = -1;
value1 = CountIF(var1 == 1,N);
Value2 = CountIF(var1 == -1,N);
if var1 == -1 and value1[1] == N Then
Value3 = L[3];
if var1 == 1 and value2[1] == N Then
value4 = H[3];
plot1(value3);
plot2(value4);
2018-03-22
211
글번호 117613
답변완료
문의드려요
분할진입 분할청산하는 로직에서 맨마지막에 일어난 가격을 알고싶습니다.
LatestEntryPrice와 LatestExitprice 중에서도 가장 최근에 이루어진 가격을 구해주세요.
2018-03-22
112
글번호 117612
답변완료
일봉 스토캐스틱 20.1 선이 20이상인 종목 검색식 부탁합니다.
기본적으로 있는건 추세나 골든크로스, 특정 값만 검색되는듯 합니다.
일봉 기준 스토캐스틱 20.1 선이 20이상인 종목 검색식 부탁드립니다.
2018-03-22
138
글번호 117611
답변완료
문의 드립니다.
질문1) 다른 주기의 차트에 10분봉차트의 첫봉의 시,고,저,종가를 표시하고자 합니다.
5분봉차트는 data10 이고 반드시 5분봉 첫봉 하나만의 시가,고가,저가,종가를 수식으로 표현하는 방법을 부탁드립니다.
질문2) 가령 조건이 condtion1 , condition2, condition3 과 같이 여러 개가 있을 때 조건만족의 캔들이 condtion1이 가장 빠르고 그 다음에 condition2의 캔들, 그 다음 condition3의 캔들 순서로 순차적으로 만족되는 경우를 수식으로 표현하는 방법 좀 알려 주십시오.
2018-03-22
143
글번호 117609
답변완료
일봉에서 분봉참조
안녕하세요.
1분봉데이터에서 과거 일봉데이터를 참조해서 지표를 그리고있습니다.
메인차트는 1분봉이고, data2로 같은 종목의 일봉을 참조했는데요
과거데이터를 참조했으니 당일 실시간 변화에도 지표는 그대로 있어야하는데
호가가 바뀔때마다 이상한 값이 같이 찍혀서 지표가 왜곡되네요 ㅠㅠ
어떻게 해결해야할까요?
해당종목은 kodex 코스닥 150 레버리지입니다.
Var : 비중(0);
비중=0;
if data2(C[1]) > data2(ma(c,3)[1]) Then
{비중 = 비중+1;}
if data2(c[1]) > data2(ma(c,7)[1]) Then
{비중 = 비중+1;}
if data2(c[1]) > data2(ma(c,15)[1]) Then
{비중 = 비중+1;}
if data2(c[1]) > data2(ma(c,30)[1]) Then
{비중 = 비중+1;}
if data2(c[1]) > data2(ma(c,60)[1]) Then
{비중 = 비중+1;}
비중 = 비중/5; //gap=0;
//gap = data2(HighD(1))-data2(lowD(1));
MessageLog("60평균 %.2f",data2(ma(c,60)[1]));
var2=비중;
plot2(var2,"비중");
2018-03-22
151
글번호 117601
지상낙원 님에 의해서 삭제되었습니다.
2018-03-22
8
글번호 117596
깅창 님에 의해서 삭제되었습니다.
2018-03-22
2
글번호 117595
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1.기타
이 지표에서 시스템차트에는 필요없는 지표를 삭제부탁드립니다. 그리고 Filt로 이평과 그에 따른 볼린저밴드 표시도 부탁드립니다.
Inputs : N(0),Period(20),delta1(0.1),Type(1);
#Type : ema(1), sma(2),Gauss(3),Butter(4),Smooth(5),HP(6),2PHP(7),BP(8),BS(9)
Vars: Price(0), c0(1),c1(0),b0(1),b1(0),b2(0),a1(0),a2(0),alpha(0),beta1(0),gamma1(0),Filt(0);
Price = (H+L)/2;
If Type == 1 Then Begin
If CurrentBar <= N then Filt = Price;
alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/Period);
b0 = alpha;
a1 = 1 - alpha;
End;
If Type == 2 Then Begin
If CurrentBar <= N then Filt = Price;
c1 = 1 / N;
b0 = 1 / N;
a1 = 1;
End;
If Type == 3 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = 2.415*(1 - Cosine(360 / Period));
alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1);
c0 = alpha*alpha;
a1 = 2*(1 - alpha);
a2 = -(1 - alpha)*(1 - alpha);
End;
If Type == 4 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = 2.415*(1 - Cosine(360 / Period));
alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1);
c0 = alpha*alpha / 4;
b1 = 2;
b2 = 1;
a1 = 2*(1 - alpha);
a2 = -(1 - alpha)*(1 - alpha);
End;
If Type == 5 Then Begin
c0 = 1 / 4;
b1 = 2;
b2 = 1;
End;
If Type == 6 Then Begin
If CurrentBar <= N then Filt = 0;
alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/Period);
c0 = 1 - alpha / 2;
b1 = -1;
a1 = 1 - alpha;
End;
If Type == 7 Then Begin
If CurrentBar <= N then Filt = 0;
beta1 = 2.415*(1 - Cosine(360 / Period));
alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1);
c0 = (1 - alpha / 2)*(1 - alpha / 2);
b1 = -2;
b2 = 1;
a1 = 2*(1 - alpha);
a2 = -(1 - alpha)*(1 - alpha);
End;
If Type == 8 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = Cosine(360 / Period);
gamma1 = 1 / Cosine(720*delta1 / Period);
alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1);
c0 = (1 - alpha) / 2;
b2 = -1;
a1 = beta1*(1 + alpha);
a2 = -alpha;
End;
If Type == 9 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = Cosine(360 / Period);
gamma1 = 1 / Cosine(720*delta1 / Period);
alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1);
c0 = (1 + alpha) / 2;
b1 = -2*beta1;
b2 = 1;
a1 = beta1*(1 + alpha);
a2 = -alpha;
End;
If CurrentBar > N Then Begin
Filt = c0*(b0*price + b1*Price[1] + b2*Price[2]) + a1*Filt[1] +a2*Filt[2] - c1*Price[N];
Plot1(Filt, "Swiss");
End;
2. 기타
아래와 같이 간단하게 크로스업 전략을 짰는데요. 이상하게도 지표에는 나오는데 전략은 신호가 안나옵니다. 뭐가 문제인 지 잘 모르겠습니다.
Inputs : N(0),Period(20),delta1(0.1),Type(1);
#Type : ema(1), sma(2),Gauss(3),Butter(4),Smooth(5),HP(6),2PHP(7),BP(8),BS(9)
Vars: Price(0), c0(1),c1(0),b0(1),b1(0),b2(0),a1(0),a2(0),alpha(0),beta1(0),gamma1(0),Filt(0);
Price = (H+L)/2;
If Type == 1 Then Begin
If CurrentBar <= N then Filt = Price;
alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/Period);
b0 = alpha;
a1 = 1 - alpha;
End;
If Type == 2 Then Begin
If CurrentBar <= N then Filt = Price;
c1 = 1 / N;
b0 = 1 / N;
a1 = 1;
End;
If Type == 3 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = 2.415*(1 - Cosine(360 / Period));
alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1);
c0 = alpha*alpha;
a1 = 2*(1 - alpha);
a2 = -(1 - alpha)*(1 - alpha);
End;
If Type == 4 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = 2.415*(1 - Cosine(360 / Period));
alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1);
c0 = alpha*alpha / 4;
b1 = 2;
b2 = 1;
a1 = 2*(1 - alpha);
a2 = -(1 - alpha)*(1 - alpha);
End;
If Type == 5 Then Begin
c0 = 1 / 4;
b1 = 2;
b2 = 1;
End;
If Type == 6 Then Begin
If CurrentBar <= N then Filt = 0;
alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/Period);
c0 = 1 - alpha / 2;
b1 = -1;
a1 = 1 - alpha;
End;
If Type == 7 Then Begin
If CurrentBar <= N then Filt = 0;
beta1 = 2.415*(1 - Cosine(360 / Period));
alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1);
c0 = (1 - alpha / 2)*(1 - alpha / 2);
b1 = -2;
b2 = 1;
a1 = 2*(1 - alpha);
a2 = -(1 - alpha)*(1 - alpha);
End;
If Type == 8 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = Cosine(360 / Period);
gamma1 = 1 / Cosine(720*delta1 / Period);
alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1);
c0 = (1 - alpha) / 2;
b2 = -1;
a1 = beta1*(1 + alpha);
a2 = -alpha;
End;
If Type == 9 Then Begin
If CurrentBar <= N then Filt = Price;
beta1 = Cosine(360 / Period);
gamma1 = 1 / Cosine(720*delta1 / Period);
alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1);
c0 = (1 + alpha) / 2;
b1 = -2*beta1;
b2 = 1;
a1 = beta1*(1 + alpha);
a2 = -alpha;
End;
If CurrentBar > N Then Begin
Filt = c0*(b0*price + b1*Price[1] + b2*Price[2]) + a1*Filt[1] +a2*Filt[2] - c1*Price[N];
End;
input: p(40);
if crossup(Filt,ma(Filt,P)) then
buy();
if crossdown(filt,ma(Filt,P)) then
sell();
3. 57154 재질문 답변 부탁드립니다.
2018-03-22
169
글번호 117594
답변완료
청산 주문 수식 요청
안녕하세요.
초단위로 그당시의 가격으로 바로 주문을 내고 싶습니다.
AtStop 주문으로 특정 시간의 가격으로 청산 주문을 바로 내는 수식 요청 드립니다.
그럼 수고하세요.
예) 11시 10분 30초의 가격에 바로 주문
2018-03-22
118
글번호 117593