커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6142
글번호 230811
답변완료
여러 조건을 테스트 할
https://www.yesstock.com/Board/View.asp?db=board100036&Ext=0&startpage=1&pageno=2&num=194965&ref=194955&Sort=&KeyField=&KeyWord=&SystemName=
이어서 문의드립니다.
만약 진입을 하고 여러 청산 방식을 변수로 테스트해보고자 할때는 아래와 같이 하면 되나요?
input: exit(1)
if 조건 then
buy
short
end
if marketposition != 또는 <> 0
if exit == 1 then
A 방식 청산;
if exit == 2 then
B 방식 청산;
end
2025-09-18
658
글번호 194117
답변완료
지표관련 문의 드립니다.
안녕하세요 운영자님
1. 다름이 아니오라 볼린저밴드의 상한선과 하한선의 현재가격에 첨부된 그림과 같이 가로선이 그려지게 가능한지 문의 드립니다.
2. 다음의 수식에도 린저밴드의 상한선과 하한선의 현재가격에 첨부된 그림과 같이 가로선이 그려지게 부탁드립니다.
선의 색이나 굵기는 속성창에서 선택가능하도록 부탁드립니다.
input : Period(20),dv(2);
var : bbmd(0),SumSqrt(0),cnt(0),stdv(0);
var : bbup(0),bbdn(0);
bbmd = (C+AccumN(C,Period-1))/Period;
SumSqrt = (C-bbmd)^2;
For cnt = 0 To Period - 2
{
SumSqrt = SumSqrt + (C[cnt] - bbmd)^2;
}
Stdv = SquareRoot(SumSqrt / Period);
bbup = BBmd + stdv*dv;
bbdn = BBmd - stdv*dv;
Plot1(bbup,"상단");
Plot2(bbmd,"중단");
Plot3(bbdn,"하단");
//오른쪽으로 1봉 이동
FixPlotShift(1,1);
FixPlotShift(2,1);
FixPlotShift(3,1);
2025-09-18
337
글번호 194115
답변완료
궁금합니다.
예스님이 올려주신 매수,매도 잔량 지표인데요.
사진처럼 나오는건 매도잔량이 많다는 표시인거 맞나요?
if Bids > Asks Then
{
Plot1(Bids,"잔량1",Red);
Plot2(Asks,"잔량2",Blue);
}
Else
{
Plot1(Asks,"잔량1",Blue);
Plot2(Bids,"잔량2",Red);
}
2025-09-18
314
글번호 194113
땅끝 님에 의해서 삭제되었습니다.
2025-09-18
26
글번호 194108
답변완료
이동평균 세로라인
수고 많습니다.
이동평균선이 골든크로스, 데드크로스 되는 지점(캔들)에 세로라인을 그리고 싶습니다.
예시를 찾아봐도 없어서 부탁드립니다.
그리고 가격차트 아래 보조지표 부분까지 그렸으면 더욱 좋겠습니다.
(첨부파일 참조)
2025-09-18
284
글번호 194102
답변완료
신호수식 부탁드립니다.
항상 감사드립니다. 신호수식 부탁드립니다.
a1=HuLL(c, 60);
a2=HuLL(c, 10);
D=요일(date);
WC=Valuewhen(1, D<D(1), C(1));
WO=Valuewhen(2, D<D(1), O);
b1=(WC+WO)/2;
Y=floor(date/10000);
YC=Valuewhen(1, Y!=Y(1), C(1));
YO=Valuewhen(2, Y!=Y(1), O);
YL=Valuewhen(1, Y!=Y(1), C(1));
Yh=Valuewhen(1, Y!=Y(1), h(1));
M=floor(date/100);
MC=Valuewhen(1, M!=M(1), C(1));
MO=Valuewhen(2, M!=M(1), O);
ML=Valuewhen(1, M!=M(1), L(1));
Mh=Valuewhen(1, M!=M(1), h(1));
D=요일(date);
WC=Valuewhen(1, D<D(1), C(1));
WO=Valuewhen(2, D<D(1), O);
WL=Valuewhen(1, D<D(1), L(1));
Wh=Valuewhen(1, D<D(1), h(1));
b2=(YL+ML+WL)/3;
b3=(Yc+Mc+Wc)/3;
b4=(Yh+Mh+Wh)/3;
D1=ma(c, 10,가중);
D2=ma(c, 60, 단순);
(c>a1 && o<=a1 && c>a2 && o<=a2 &&
c>b1 && o<=b1 && c>b2 && o<=b2 &&
c>b3 && o<=b3 && c>b4 && o<=b4 &&
((c>d1 && o<=d1) or (c>d2 && o<=d2))) or
(c>a1 && c>a2 && c>b1 && c>b2 && c>b3 && c>b4 && c>o &&
L(1)<=a1(1) && L(1)<=a2(1) && L(1)<=b1(1) && L(1)<=b2(1) &&
L(1)<=b3(1) && L(1)<=b4(1) && c(1)>o(1))
2025-09-18
323
글번호 194101
답변완료
부틱드립니다
수고하십니다
아래수식을 예스로 부탁드립니다
//@version=4
study(title="RSI Trends")
len = input(14, title="RSI Length")
ob = input(60, title="Upper Threshold")
os = input(40, title="Lower Threshold")
barcolor = input(true, title="Colored Bars")
rsi = rsi(close, len)
plot(rsi, color=color.gray)
col1 = rsi >= ob ? color.green : na
col2 = rsi <= os ? color.red : na
col0 = rsi < ob and rsi > os ? color.gray : na
plot1 = plot(rsi, style=plot.style_linebr, linewidth=3, color=col1)
plot2 = plot(rsi, style=plot.style_linebr, linewidth=3, color=col2)
barcolor(barcolor ? col1 : na)
barcolor(barcolor ? col2 : na)
barcolor(barcolor ? col0 : na)
h1 = hline(ob)
h2 = hline(os)
2025-09-18
346
글번호 194100
답변완료
수식 문의 드립니다
안녕하십니까?
FORCE INDEX(5,20)의 FVALFAST가
이전봉 10개중 최고점을 상향 통과 하는 종목
의 검색식을 부탁드립니다.
2025-09-17
316
글번호 194099
답변완료
부탁드립니다
수고하십니다
아래수식을 예스로 부탁드립니다
// === INPUTS ===
useRes = input(defval = true, title = "Use Alternate Resolution?")
intRes = input(defval = 3, title = "Multiplier for Alernate Resolution")
stratRes = ismonthly? tostring(interval*intRes,"###M") : isweekly? tostring(interval*intRes,"###W") : isdaily? tostring(interval*intRes,"###D") : isintraday ? tostring(interval*intRes,"####") : '60'
//
basisType = input(defval = "SMMA", title = "MA Type: ", options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA", "SMMA", "HullMA", "LSMA", "ALMA", "SSMA", "TMA"])
basisLen = input(defval = 8, title = "MA Period", minval = 1)
offsetSigma = input(defval = 6, title = "Offset for LSMA / Sigma for ALMA", minval = 0)
offsetALMA = input(defval = 0.85, title = "Offset for ALMA", minval = 0, step = 0.01)
delayOffset = input(defval = 0, title = "Delay Open/Close MA (Forces Non-Repainting)", minval = 0, step = 1)
//
uDiv = input(false,"Show Divergence Channel")
multi = input(0.5,minval=0.0,maxval=3.0,title="Divergence Channel Width Factor (Stddev)")
uHid = input(false, title="Show Hidden Divergence")
uReg = input(false, title="Show Regular Divergence")
uDiv := uReg or uHid ? uDiv : false
// === /INPUTS ===
// - variant(type, src, len)
// Returns MA input s e lection variant, default to SMA if blank or typo.
// Returns MA input s e lection variant, default to SMA if blank or typo.
variant(type, src, len, offSig, offALMA) =>
v1 = sma(src, len) // Simple
v2 = ema(src, len) // Exponential
v3 = 2 * v2 - ema(v2, len) // Double Exponential
v4 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) // Triple Exponential
v5 = wma(src, len) // Weighted
v6 = vwma(src, len) // Volume Weighted
v7 = 0.0
v7 := na(v7[1]) ? sma(src, len) : (v7[1] * (len - 1) + src) / len // Smoothed
v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) // Hull
v9 = linreg(src, len, offSig) // Least Squares
v10 = alma(src, len, offALMA, offSig) // Arnaud Legoux
v11 = sma(v1,len) // Triangular (extreme smooth)
// SuperSmoother filter
// © 2013 John F. Ehlers
a1 = exp(-1.414*3.14159 / len)
b1 = 2*a1*cos(1.414*3.14159 / len)
c2 = b1
c3 = (-a1)*a1
c1 = 1 - c2 - c3
v12 = 0.0
v12 := c1*(src + nz(src[1])) / 2 + c2*nz(v12[1]) + c3*nz(v12[2])
type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : type=="SMMA"?v7 : type=="HullMA"?v8 : type=="LSMA"?v9 : type=="ALMA"?v10 : type=="TMA"?v11: type=="SSMA"?v12: v1
// security wrapper for repeat calls
reso(exp, use, res) => use ? security(tickerid, res, exp, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on) : exp
// === SERIES SETUP ===
closeSeries = variant(basisType, close[delayOffset], basisLen, offsetSigma, offsetALMA)
openSeries = variant(basisType, open[delayOffset], basisLen, offsetSigma, offsetALMA)
closeOpenAvg = (closeSeries + openSeries) / 2
// === /SERIES ===
// Get Alternate Open/Close Series MAs, if s e lected.
closeSeriesAlt = reso(closeSeries, useRes, stratRes)
openSeriesAlt = reso(openSeries, useRes, stratRes)
//
xlong = crossover(closeSeriesAlt, openSeriesAlt)
xshort = crossunder(closeSeriesAlt, openSeriesAlt)
longCond = xlong // alternative: longCond[1]? false : (xlong or xlong[1]) and close>closeSeriesAlt and close>=open
shortCond = xshort // alternative: shortCond[1]? false : (xshort or xshort[1]) and close<closeSeriesAlt and close<=open
// === /ALERT conditions
// === PLOTTING ===
diff = closeSeriesAlt - openSeriesAlt
pcd = 50000.0*diff/closeOpenAvg
alert = longCond or shortCond
trendColour = closeSeriesAlt > openSeriesAlt ? green : red
hline(0,color=gray,linestyle=dashed)
plot(pcd,title="OCC Difference Factor", color = trendColour, linewidth=1,style=area,transp=80)
plot(pcd,title="OCC Difference Factor", color = trendColour, linewidth=2,style=line,transp=20)
plotshape(alert,title="OCC Alert Plot", color = trendColour,style=shape.circle,location=location.bottom,transp=0,size=size.auto)
// || Functions:
f_top_fractal(_src)=>_src[4] < _src[2] and _src[3] < _src[2] and _src[2] > _src[1] and _src[2] > _src[0]
f_bot_fractal(_src)=>_src[4] > _src[2] and _src[3] > _src[2] and _src[2] < _src[1] and _src[2] < _src[0]
f_fractalize(_src)=>f_top_fractal(_src) ? 1 : f_bot_fractal(_src) ? -1 : 0
// === /BASE FUNCTIONS ===
rsi_high = pcd
rsi_low = pcd
offset_ = multi*stdev(pcd,20)
fractal_top_rsi = f_fractalize(rsi_high) > 0 ? rsi_high[2] : na
fractal_bot_rsi = f_fractalize(rsi_low) < 0 ? rsi_low[2] : na
rsi_high_prev = valuewhen(fractal_top_rsi, rsi_high[2], 1)
rsi_high_price = valuewhen(fractal_top_rsi, high[2], 1)
rsi_low_prev = valuewhen(fractal_bot_rsi, rsi_low[2], 1)
rsi_low_price = valuewhen(fractal_bot_rsi, low[2], 1)
regular_bearish_div = fractal_top_rsi and high[2] > rsi_high_price and rsi_high[2] < rsi_high_prev and rsi_high>0
hidden_bearish_div = fractal_top_rsi and high[2] < rsi_high_price and rsi_high[2] > rsi_high_prev and rsi_high>0
regular_bullish_div = fractal_bot_rsi and low[2] < rsi_low_price and rsi_low[2] > rsi_low_prev and rsi_low<0
hidden_bullish_div = fractal_bot_rsi and low[2] > rsi_low_price and rsi_low[2] < rsi_low_prev and rsi_low<0
plot(title='RSI High', series=uDiv?rsi_high:na, color=gray)
plot(title='RSI Low', series=uDiv?rsi_low:na, color=gray)
plot(title='RSI H F', series=uDiv?fractal_top_rsi+offset_:na, color=red, offset=-2)
plot(title='RSI L F', series=uDiv?fractal_bot_rsi-offset_:na, color=green, offset=-2)
plot(title='RSI H D', series=uDiv?fractal_top_rsi+offset_:na, style=circles, color=(regular_bearish_div and uReg) or (hidden_bearish_div and uHid)? maroon : gray, linewidth=3, offset=-2)
plot(title='RSI L D', series=uDiv?fractal_bot_rsi-offset_:na, style=circles, color=(regular_bullish_div and uReg) or (hidden_bullish_div and uHid)? green : gray, linewidth=3, offset=-2)
plotshape(title='+RBD', series=regular_bearish_div and uReg? rsi_high[2]+offset_ : na, text='Regular', style=shape.labeldown, location=location.absolute, color=maroon, textcolor=white, offset=-2)
plotshape(title='+HBD', series=hidden_bearish_div and uHid? rsi_high[2]+offset_ : na, text='hidden', style=shape.labeldown, location=location.absolute, color=maroon, textcolor=white, offset=-2)
plotshape(title='-RBD', series=regular_bullish_div and uReg? rsi_low[2]-offset_ : na, text='Regular', style=shape.labelup, location=location.absolute, color=green, textcolor=white, offset=-2)
plotshape(title='-HBD', series=hidden_bullish_div and uHid? rsi_low[2]-offset_ : na, text='hidden', style=shape.labelup, location=location.absolute, color=green, textcolor=white, offset=-2)
// === ALARM ALERTS for TradingView ALARM sub-system (server based) ===
alertcondition(alert,message="OCC BothCond",title="OCC BothCond")
alertcondition(longCond,message="OCC LongCond",title="OCC LongCond")
alertcondition(shortCond,message="OCC ShortCond",title="OCC ShortCond")
// === /ALARM ALERTS
//eof
2025-09-17
1027
글번호 194096