커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5471
글번호 230811
답변완료
장중상한가
종가가 상한가가 아니여도
장중 상한가 간 종목까지 포함한
상한가 종목검색식 부탁합니다.
2020-02-21
399
글번호 136220
답변완료
문의드립니다.
study(title="VL", shorttitle="VB", overlay=true)
src=close
l =input(6, title="VMA Length")
std=input(false, title="Show Trend Direction")
bc=input(false, title="Color bars based on Trend")
k = 1.0/l
pdm = max((src - src[1]), 0)
mdm = max((src[1] - src), 0)
pdmS = ((1 - k)*nz(pdmS[1]) + k*pdm)
mdmS = ((1 - k)*nz(mdmS[1]) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = ((1 - k)*nz(pdiS[1]) + k*pdi)
mdiS = ((1 - k)*nz(mdiS[1]) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = ((1 - k)*nz(iS[1]) + k*d/s1)
hhv = highest(iS, l)
llv = lowest(iS, l)
d1 = hhv - llv
vI = (iS - llv)/d1
vma = (1 - k*vI)*nz(vma[1]) + k*vI*src
vmaC=(vma > vma[1]) ? green : (vma<vma[1]) ? red : (vma==vma[1]) ? blue : black
plot(vma, color=std?vmaC:black, linewidth=3, title="VMA")
barcolor(bc?vmaC:na)
감사합니다.
2020-02-21
387
글번호 136219
답변완료
문의 드립니다.
같은 때에 중복이 아니고
아래수식(2개수식)들이 60분봉차트(하루7개)중 2개의 수식이 다 뜨면 검색식에 나오도록 하고 싶습니다. 죄송합니다.^^
input : period(5),shortperiod(9),midperiod(26),longPeriod(52);
var : M1(0),M2(0),MM(0);
var : P1(0),P2(0),nn(0);
M1=((6*Dayclose())+(5*dayclose(1))+(4*dayclose(2))+(3*dayclose(3))+(2*dayclose(4))+(1*dayclose(5)))/21;
M2=((12*Dayclose())+(11*dayclose(1))+(10*dayclose(2))+(9*dayclose(3))+(8*dayclose(4))+(7*dayclose(5))+(6*dayclose(6))+(5*dayclose(7))+(4*dayclose(8))+(3*dayclose(9))+(2*dayclose(10))+(1*dayclose(11)))/78;
MM=ema(M1-M2,3);
Condition1 = MM>MM[1] && MM[1]<MM[2] &&
C > highest(C, Period)[1] &&
C >= (highest(high[midPeriod-1],shortPeriod)+lowest(low[midPeriod-1],shortPeriod)+highest(high[midPeriod-1],midPeriod)+lowest(low[midPeriod-1],midPeriod))/4 &&
C >= (highest(high[midPeriod-1],longPeriod)+lowest(low[midPeriod-1],longPeriod))/2 ;
P1=((12*Dayclose())+
(11*dayclose(1))+(10*dayclose(2))+(9*dayclose(3))+(8*dayclose(4))+(7*dayclose(5))+(6*dayclose(6))+(5*dayclose(7))+(4*dayclose(8))+(3*dayclose(9))+(2*dayclose(10))+(1*dayclose(11)))/78;
P2=((26*Dayclose())+
(25*dayclose(1))+(24*dayclose(2))+(23*dayclose(3))+(22*dayclose(4))+(21*dayclose(5))+(20*dayclose(6))+(19*dayclose(7))+(18*dayclose(8))+(17*dayclose(9))+(16*dayclose(10))+(15*dayclose(11))
+(14*dayclose(12))+(13*dayclose(13))+(12*dayclose(14))+(11*dayclose(15))+(10*dayclose(16))+(9*dayclose(17))+(8*dayclose(18))+(7*dayclose(19))+(6*dayclose(20))+(5*dayclose(21))+(4*dayclose(22))+(3*dayclose(23))+(2*dayclose(24))+(1*dayclose(25)))/351;
nn=ema(P1-P2,3);
Condition2 = nn>nn[1] && nn[1]<nn[2];
if Condition1 == true and Condition2 == true and v >= 200000 Then
find(1);
2020-02-21
377
글번호 136218
답변완료
부탁드립니다
수고하십니다
아래수식 에서
1,(var1,var2업이면),양봉이면시가에,음봉이면종가에 빨간선,
2.(var1,var2다운이면),양봉이면종가에,음봉이면시가에 청색선,수식수정 부탁드립니다
**(plot1 한선으로만 표시 부탁드립니다)**
var1 = ma(c,10);
var2 = ma(c,20);
if crossup(var1,var2) or CrossDown(var1,var2) Then
value1 = C;
plot1(value1,"10,20",iff(value1 == c,RED,BLUE));
2020-02-21
299
글번호 136209
답변완료
수식 부탁드립니다
항상도움주신데 대하여 감사드립니다
첨부파일 1번과같이 60/70/80/90/100/110/120/130/140/150/160틱
동그라미친것과같이 "모두상승"시 적색선 모두 "하락"시 파란선으로 상승하락을
이평선으로 표현하고자 합니다.
단 한곳이 일치되지않으면 녹색선 으로 표현 되도록 부탁드립니다'
틱추가가 가능하도록 부탁드립니다
좋은하루 되세요
수고하시기 바랍니다
2020-02-21
346
글번호 136208
답변완료
안녕하세요
study("EMES", shorttitle="EMA", overlay=true, precision=3)
src=input(hl2, title="Source")
fl=input(.5, title="Fast Limit")
sl=input(.05, title="Slow Limit")
sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0
dt = (.0962*sp + .5769*nz(sp[2]) - .5769*nz(sp[4])- .0962*nz(sp[6]))*(.075*nz(p[1]) + .54)
q1 = (.0962*dt + .5769*nz(dt[2]) - .5769*nz(dt[4])- .0962*nz(dt[6]))*(.075*nz(p[1]) + .54)
i1 = nz(dt[3])
jI = (.0962*i1 + .5769*nz(i1[2]) - .5769*nz(i1[4])- .0962*nz(i1[6]))*(.075*nz(p[1]) + .54)
jq = (.0962*q1 + .5769*nz(q1[2]) - .5769*nz(q1[4])- .0962*nz(q1[6]))*(.075*nz(p[1]) + .54)
i2_ = i1 - jq
q2_ = q1 + jI
i2 = .2*i2_ + .8*nz(i2[1])
q2 = .2*q2_ + .8*nz(q2[1])
re_ = i2*nz(i2[1]) + q2*nz(q2[1])
im_ = i2*nz(q2[1]) - q2*nz(i2[1])
re = .2*re_ + .8*nz(re[1])
im = .2*im_ + .8*nz(im[1])
p1 = iff(im!=0 and re!=0, 360/atan(im/re), nz(p[1]))
p2 = iff(p1 > 1.5*nz(p1[1]), 1.5*nz(p1[1]), iff(p1 < 0.67*nz(p1[1]), 0.67*nz(p1[1]), p1))
p3 = iff(p2<6, 6, iff (p2 > 50, 50, p2))
p = .2*p3 + .8*nz(p3[1])
spp = .33*p + .67*nz(spp[1])
phase = atan(q1 / i1)
dphase_ = nz(phase[1]) - phase
dphase = iff(dphase_< 1, 1, dphase_)
alpha_ = fl / dphase
alpha = iff(alpha_ < sl, sl, iff(alpha_ > fl, fl, alpha_))
mama = alpha*src + (1 - alpha)*nz(mama[1])
fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1])
pa=input(false, title="Mark crossover points")
plotarrow(pa?(cross(mama, fama)?mama<fama?-1:1:na):na, title="Crossover Markers")
fr=input(false, title="Fill MAMA/FAMA Region")
duml=plot(fr?(mama>fama?mama:fama):na, style=circles, color=gray, linewidth=0, title="DummyL")
mamal=plot(mama, title="MAMA", color=red, linewidth=2)
famal=plot(fama, title="FAMA", color=green, linewidth=2)
fill(duml, mamal, red, transp=70, title="NegativeFill")
fill(duml, famal, green, transp=70, title="PositiveFill")
ebc=input(false, title="Enable Bar colors")
bc=mama>fama?lime:red
barcolor(ebc?bc:na)
매번 부탁드리게 되어 죄송하고 감사합니다.
예스랭귀지로 변환 문의드립니다.
Fill region이 구현이 예스에서 가능할지 모르겠으나 가능하다면 포함시켜주시면 감사드리겠습니다.
2020-02-21
372
글번호 136202
답변완료
부탁합니다
input : g(13),r(25),s(2);
var1 = ema(ema(c-(highest(H,g) + lowest(L,g))*0.5,r),s) * 100/
(0.5 * ema(ema(highest(H,g)-lowest(L,g),r),s));
plot1(var1);
plot2(40);
plot3(-40);
위 지표를 상승, 하락을 하나의 선으로 색상으로 표현할수 있게 부탁합니다.
2020-02-21
285
글번호 136200
답변완료
66148 추가 답변요
66148에 대한 추가답변 부탁드려요
2020-02-21
258
글번호 136199
답변완료
안녕하세요
study(title="T", shorttitle="T", overlay=true)
length = input(title="Length", type=integer, defval=5)
factor = input(title="Factor", type=float, minval=0, maxval=1, defval=0.7)
highlightMovements = input(title="Highlight Movements ?", type=bool, defval=true)
src = input(title="Source", type=source, defval=close)
gd(src, length) =>
ema(src, length) * (1 + factor) - ema(ema(src, length), length) * factor
t3 = gd(gd(gd(src, length), length), length)
t3Color = highlightMovements ? (t3 > t3[1] ? green : red) : #6d1e7f
plot(t3, title="T3", linewidth=2, color=t3Color, transp=0)
예스트레이더 수식으로 변경 문의드립니다.
-------------------------------------------------------------------------
study("TFactor", shorttitle="B")
length=input(15)
bt = input( 100, title="Buy Trigger")
st = input( -100, title="Sell Trigger")
markCrossovers=input(false, type=bool)
prev(s,i) =>
y=abs(round(i))
s[y]
calc_ttf( periods ) =>
bp = highest( high, periods ) - prev( lowest( low, periods ), - periods )
sp = prev( highest( high, periods ), - periods ) - lowest( low, periods )
100 * (bp - sp) / ( 0.5*( bp + sp) )
ttf = calc_ttf( length )
plot(0, color=gray)
btl=plot(bt, color=gray, style=3)
stl=plot(st, color=gray, style=3)
long_f = cross( ttf, st ) and rising(ttf, 1)
short_f = cross(ttf, bt ) and falling(ttf, 1)
bs = (ttf > bt) ? bt : ttf
us = (ttf < st) ? st : ttf
bl=plot(bs, color=white)
ul=plot(us, color=white)
tl=plot(ttf, title="TTF", color=markCrossovers ? (long_f ? green : short_f ? red : blue) : maroon, linewidth=2)
fill(bl, tl, color=green, transp=75)
fill(ul, tl, color=red, transp=75)
예스랭귀지로 변환 문의드립니다. 감사합니다.
2020-02-21
304
글번호 136198