커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3755
글번호 230811
답변완료
차트에서 지표 불러오는 방법
수고하십니다.
새로 만든 지표를 차트에서 어떻게 적용하는지 궁금합니다
1.예스랭귀이지에서 지표식을 작성후 검증 완료하였습니다.
2. 종목추가-종목선택의 "참조"에서 새로 만든 지표가 나타나질 않습니다.
제기 초보자이다 보니, 지표를 새로 만든후 차트에 적용하는 절차를 부탁드립니다.
2019-06-09
307
글번호 129280
답변완료
안녕하세요
안녕하세요.
수고 많으십니다.
아래수식 다시 검증 해 주세요.
var : cnt(0),HH(0),LL(0);
var1 = ma(C,1);
if (sdate != sdate[1] and stime >= 101500) or
(sdate == sdate[1] and stime >= 101500 and stime[1] < 101500) Then
{
HH = H;
LL = L;
}
if crossup(var1,(HH+LL)/2) Then
buy();
if CrossDown(var1,(HH+LL)/2) Then
sell();
var : pp(0),ll(0),tx(0);
if MarketPosition == 1 Then
{
pp = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*10));
if pp > pp[1] Then
{
tx = Text_New(sdate,stime,H+PriceScale*3,NumToStr(pp*10,0)+"틱");
Text_SetStyle(tx,2,1);
}
}
if MarketPosition == -1 Then
{
pp = Floor((EntryPrice-lowest(L,BarsSinceEntry))/(PriceScale*210));
if pp > pp[1] Then
{
tx = Text_New(sdate,stime,L-PriceScale*3,NumToStr(pp*10,0)+"틱");
Text_SetStyle(tx,2,0);
}
}
var : pp(0),ll(0),tx(0); 이 수식 줄수에서 .........
이미 선언된 이름을 다시 선언하고 있 습니다. 라는 문구가 뜨네요.
감사합니다. 수고하세요.
2019-06-10
304
글번호 129279
답변완료
수식추가 부탁합니다
제가 30분봉으로 매매를 하는데 일전에 일봉의 이동평균선과 90분봉의 이동평균선을 참조할 수 있도록 수식을 작성해 주셨습니다.
추가로 90분봉의 스톡케스틱 지표를 참조할 있도록 설정부탁드립니다.
아래식은 매매에 사용하는 30분봉의 단순 스톡케스틱입니다.
90분봉의 단순스톡케스틱 설정을 부탁드립니다.
# 단순스톡케스틱 설정
Lvalue = Lowest(L, sto1);
Hvalue = Highest(H, sto1);
FK = (Close - Lvalue) / (Hvalue - Lvalue) * 100;
SK = ma(FK,sto2);
SD = ma(SK,sto3);
================================================
input : ntime1(90),P1(20),P2(60),P(20),dv(2),스탑로스(2.5),손절폭(1.5),매수스톡(25),매도스톡(70),매수이격(18),매도이격(18);
input : sto1(25),sto2(6),sto3(6);
var : cnt(0),sum1(0),sum2(0),mav1(0),mav2(0);
var : tsum1(0),tsum2(0),tmav1(0),tmav2(0);
var : BBup(0),BBdn(0),BBMid(0);
var : S1(0),D1(0),TM(0),TF(0);
Array : C1[100](0);
Var : Lvalue(0), Hvalue(0),FK(0),SK(0),SD(0);
# 단순스톡케스틱 설정
Lvalue = Lowest(L, sto1);
Hvalue = Highest(H, sto1);
FK = (Close - Lvalue) / (Hvalue - Lvalue) * 100;
SK = ma(FK,sto2);
SD = ma(SK,sto3);
# 분봉설정
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or
(ntime1 != 1 and Bdate == Bdate[1] and TF < TF[1]) or
(ntime1 == 1 and Bdate == Bdate[1] and TF > TF[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P2] > 0 then
{
tsum1 = 0;
tsum2 = 0;
for cnt = 0 to P2-1
{
if cnt < P1 then
tsum1 = tsum1+C1[cnt];
if cnt < P2 then
tsum2 = tsum2+C1[cnt];
}
# 90분봉의 20일 이평선= tmav1, 60일 이평선= tmav2
tmav1 = tsum1/P1;
tmav2 = tsum2/P2;
}
2019-06-09
329
글번호 129278
답변완료
수식전환 부탁드립니다.
수고가 많으십니다. 키움수식을 예스트레이더 수식으로 전환부탁드립니다.
<1>
매수
aa=avg(c,120);
shift(aa<aa(1) && aa(1)>aa(2),-1)
매수청산
aa=avg(c,120);
shift(aa>aa(1) && aa(1)<aa(2),-1)
매도
aa=avg(c,120);
shift(aa>aa(1) && aa(1)<aa(2),-1)
매도청산
aa=avg(c,120);
shift(aa<aa(1) && aa(1)>aa(2),-1)
<2>
매수
A=ma(c,120,지수);
IF(A<A(1)*(1-0.1()/100),A,0)
매수청산
A=ma(c,120,지수);
IF(A<A(1)*(1-0.1()/100),A,0)
매도
A=ma(c,120,지수);
IF(A>A(1)*(1+0.1()/100),A,0)
매도청산
A=ma(c,120,지수);
IF(A<A(1)*(1-0.1()/100),A,0)
2019-06-08
373
글번호 129277
답변완료
분봉 스토캐스틱 을 틱차트에서 구현
좋은 프로그램 이용할 수 있게 해주셔서 감사합니다.
밑에 검색해보니 분봉 MACD를 틱차트에서 구현하는 것에 대해서는
내용이 있던데, 스토캐스틱은 볼 수가 없었습니다.
대략 5분봉 스토캐스틱을 100틱 차트에서 구현하는
식을 알려주시면 감사하겠습니다.
예스트레이더를 새로 접한지 몇 일 안되다 보니
직접하지 못하고, 의뢰합니다.
감사합니다.
2019-06-08
333
글번호 129276
답변완료
수식부탁드립니다------------------
현재선물지수에서 가장가까운 위,아래 옵션행사가를 plot으로 나타내고 싶슴니다
부탁드립니다 수고하세요
2019-06-08
316
글번호 129275
답변완료
문의드립니다
input : per1(23.6),per2(38.2),per3(50.0),per4(61.8),per5(76.4);
var : hh(0),ll(0),h1(0),l1(0),dd(0),tt(0),d1(0),t1(0);
var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0);
if bdate > bdate[1]-1 then
{
hh = h;
ll = l;
h1 = hh[1];
l1 = ll[1];
dd = sdate[1];
tt = stime[1];
d1 = dd[1];
t1 = tt[1];
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
if h > hh Then
{
hh = h;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
if l < ll Then
{
ll = l;
TL_Delete(tl1);
TL_Delete(tl2);
TL_Delete(tl3);
TL_Delete(tl4);
TL_Delete(tl5);
TL_Delete(tl6);
TL_Delete(tl7);
tl1 = TL_New(dd,tt,hh,sdate,stime,hh);
tl2 = TL_New(dd,tt,hh-(hh-ll)*(per1/100),sdate,stime,hh-(hh-ll)*(per1/100));
tl3 = TL_New(dd,tt,hh-(hh-ll)*(per2/100),sdate,stime,hh-(hh-ll)*(per2/100));
tl4 = TL_New(dd,tt,hh-(hh-ll)*(per3/100),sdate,stime,hh-(hh-ll)*(per3/100));
tl5 = TL_New(dd,tt,hh-(hh-ll)*(per4/100),sdate,stime,hh-(hh-ll)*(per4/100));
tl6 = TL_New(dd,tt,hh-(hh-ll)*(per5/100),sdate,stime,hh-(hh-ll)*(per5/100));
tl7 = TL_New(dd,tt,ll,sdate,stime,ll);
}
TL_SetExtRight(tl1,true);
Tl_SetColor(tl1,BLUE);
TL_SetExtRight(tl2,true);
Tl_SetColor(tl2,BLUE);
TL_SetExtRight(tl3,true);
TL_SetExtRight(tl4,true);
Tl_SetColor(tl4,WHITE);
TL_SetExtRight(tl5,true);
TL_SetExtRight(tl6,true);
Tl_SetColor(tl6,MAGENTA);
TL_SetExtRight(tl7,true);
Tl_SetColor(tl7,MAGENTA);
위수식으로 76.4프로 선에서 상승시레드색 하락시 블루색
23.6프로 선에서 상승스레드색 하락시 블루색 으로 강조식 부탁드립니다~~
2019-06-09
312
글번호 129274
답변완료
문의 드립니다
var : Diff2(0,data2),diff3(0,data3),sum(0,data2);
diff2 = data2((C-OpenD(0))/PriceScale);
diff3 = data3((C-OpenD(0))/PriceScale);
sum = diff2+diff3;
if diff2 >= abs(sum)*5 Then
buy();
if diff3 >= abs(sum)*5 Then
sell();
......................................................................
상기 시스템을 재가공 하고 싶습니다.
1. 먼저 상기식의 매수 발생싯점 캔들과 매도발생싯점 캔들에 각각 옆으로 수평선을 긋어 주세요
2. 5이평이 1번 수평선 <매수 발생싯점에서 그어진 수평선>을 하향 돌파 했다가 다시 상향 돌파 하면 매수
5이평이 1번 수평선 <매도 발생 싯점에서 그어진 수평선>을 상향 돌파 했다가 다시 하향 돌파 하면 매도
감사합니다
2019-06-10
322
글번호 129273
답변완료
부탁 드립니다.
도움주심에 감사 드립니다.
n일전에서 계산하는 것을
n주전으로 수정 부탁 드립니다.
미리 감사 드립니다.
input : N(1);
Array : sumo[10](0),sumh[10](0),suml[10](0),sumc[10](0),sumi[10](0);
var : accumo(0),accumh(0),accuml(0),accumc(0),accumi(0);
var : avgo(0),avgh(0),avgl(0),avgc(0);
var : s1(0),d1(0),tm(0),tf(0),cnt(0);
if bdate != Bdate[1] Then{
sumo[0] = 0;
sumh[0] = 0;
suml[0] = 0;
sumc[0] = 0;
sumi[0] = 0;
for cnt = 1 to 9{
sumo[cnt] = sumo[cnt-1][1];
sumh[cnt] = sumh[cnt-1][1];
suml[cnt] = suml[cnt-1][1];
sumc[cnt] = sumc[cnt-1][1];
sumi[cnt] = sumi[cnt-1][1];
}
S1 = TimeToMinutes(stime);
D1 = sdate;
}
sumo[0] = sumo[0]+o;
sumh[0] = sumh[0]+h;
suml[0] = suml[0]+l;
sumc[0] = sumc[0]+c;
sumi[0] = sumi[0]+1;
#전일 첫봉부터 현재까지 평균
accumO = 0;
accumh = 0;
accuml = 0;
accumc = 0;
accumi = 0;
for cnt = 0 to N{
accumO = accumO+sumO[cnt];
accumh = accumh+sumh[cnt];
accuml = accuml+suml[cnt];
accumc = accumc+sumc[cnt];
accumi = accumi+sumi[cnt];
}
avgo = accumo/accumi;
avgh = accumh/accumi;
avgl = accuml/accumi;
avgc = accumc/accumi;
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%120;
if bdate != bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{
var1 = avgo;
var2 = avgh;
var3 = avgl;
var4 = avgc;
}
plot1(var1,"o",red,def,0);
plot2(var2,"h",yellow,def,0);
plot3(var3,"L",BLUE,DEF,0);
plot4(var4,"C",MAGENTA,DEF,0);
PLOT5(L,"LOW",RED,DEF,0);
PLOT6(H,"HIGH",YELLOW,DEF,0);
}
2019-06-07
303
글번호 129272