커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

부틱드립니다

수고하십니다 예스로 부탁드립니다 // This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International // https://creativecommons.org/licenses/by-nc-sa/4.0/ // © Zeiierman { //@version=6 indicator("AI-Weighted RSI (Zeiierman)", overlay=false, max_lines_count=500, max_labels_count=500, precision = 1) //~~} // ~~ Tooltips { var string t1 = "RSI lookback length computed on the current timeframe." var string t2 = "Moving Average lookback length computed on RSI." var string t3 = "Rolling window for correlation learning and z-scoring.." //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Inputs { rsiLen = input.int(14, "RSI Length", minval=2, group="Rsi Settings", tooltip=t1) sigLen = input.int(20, "Signal Length", minval=2, group="Rsi Settings", tooltip=t2) learnLen = input.int(20, "Learning Window", minval=1, group="Learning / Prediction", tooltip=t3) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Per-bar features { retLog = math.log(close / nz(close[1], close)) rsiVal = ta.rsi(close, rsiLen) atrPct = ta.atr(200) / close vol = volume volLogChg = math.log(vol / nz(vol[1], vol)) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Target (y): prior bar RSI { y_rsi = rsiVal[1] //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Predictors (X): prior-bar values of each feature (aligned with y) { x_ret = nz(retLog[1]) x_rsi = nz(rsiVal[1]) x_atrp = nz(atrPct[1]) x_vchg = nz(volLogChg[1]) x_vol = nz(vol[1]) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Utilities { f_z(src, len) => m = ta.sma(src, len) s = ta.stdev(src, len) s > 0 ? (src - m) / s : 0 f_corr(a, b, len) => ta.correlation(a, b, len) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Top-K indices by value { f_topk_indices(arr) => sz = arr.size() kk = math.min(5, sz) tmp = array.new_float(sz, 0.0) for i = 0 to sz - 1 tmp.set(i, nz(arr.get(i))) out = array.new_int() for n = 0 to kk - 1 maxI = 0 maxV = tmp.get(0) for j = 1 to sz - 1 vj = tmp.get(j) take = na(maxV) or (not na(vj) and vj > maxV) if take maxV := vj maxI := j out.push(maxI) tmp.set(maxI, na) out //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Feature S e leCTion via correlations { corrs_abs_ret = math.abs(nz(f_corr(y_rsi, x_ret, learnLen))) corrs_abs_rsi = math.abs(nz(f_corr(y_rsi, x_rsi, learnLen))) corrs_abs_atrp = math.abs(nz(f_corr(y_rsi, x_atrp, learnLen))) corrs_abs_vchg = math.abs(nz(f_corr(y_rsi, x_vchg, learnLen))) corrs_abs_vol = math.abs(nz(f_corr(y_rsi, x_vol, learnLen))) corrs = array.from(corrs_abs_ret, corrs_abs_rsi, corrs_abs_atrp, corrs_abs_vchg, corrs_abs_vol) topIdx = f_topk_indices(corrs) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Z-scored current levels of each predictor series { xz_ret = nz(f_z(x_ret, learnLen)) xz_rsi = nz(f_z(x_rsi, learnLen)) xz_atrp = nz(f_z(x_atrp, learnLen)) xz_vchg = nz(f_z(x_vchg, learnLen)) xz_vol = nz(f_z(x_vol, learnLen)) featZ = array.from(xz_ret, xz_rsi, xz_atrp, xz_vchg, xz_vol) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Signed “coefficients” ~ correlations on standardized inputs { coef_ret = nz(f_corr(y_rsi, x_ret, learnLen)) coef_rsi = 1.0 // Hardcoded: always 1, since x_rsi == y_rsi coef_atrp = nz(f_corr(y_rsi, x_atrp, learnLen)) coef_vchg = nz(f_corr(y_rsi, x_vchg, learnLen)) coef_vol = nz(f_corr(y_rsi, x_vol, learnLen)) coef = array.from(coef_ret, coef_rsi, coef_atrp, coef_vchg, coef_vol) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Prediction from S e leCTed features: sum_i corr_i * z(feature_i) { f_pred(topIdxArr, coefArr, featArr) => s = 0.0 k = topIdxArr.size() for i = 0 to k - 1 idx = topIdxArr.get(i) c = coefArr.get(idx) z = featArr.get(idx) s += (nz(c) * nz(z)) s pred_rsi_z = f_pred(topIdx, coef, featZ) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Map z back to RSI level using rolling mean/std of the target { rsi_mean = ta.sma(y_rsi, learnLen) rsi_std = ta.stdev(y_rsi, learnLen) pred_rsi = nz(rsi_mean) + nz(rsi_std) * pred_rsi_z //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Map prediction → “weight” { rsiWeight = math.max(-2, math.min(2, (50 - nz(pred_rsi)) / 50)) * -1 ma_rsi = ta.sma(rsiWeight,sigLen) //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} // ~~ Plots { rsiPlot = plot(rsiWeight, "AI-Weighted RSI", color=#7E57C2) rsiMa = plot(ma_rsi, "AI-Weighted RSI Signal Line", color=color.yellow) rsiUpperBand = hline(0.5, "AI-Weighted RSI Upper Band", color=#787B86) midline = hline(0, "AI-Weighted RSI Middle Band", color=color.new(#787B86, 50)) rsiLowerBand = hline(-0.5, "AI-Weighted RSI Lower Band", color=#787B86) fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="AI-Weighted RSI Background Fill") midLinePlot = plot(0, color = na, editable = false, display = display.none) fill(rsiPlot, midLinePlot, 0.5, 0, top_color = color.new(color.lime, 0), bottom_color = color.new(color.lime, 100), title = "Overbought Gradient Fill") fill(rsiPlot, midLinePlot, 0, -0.5, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0), title = "Oversold Gradient Fill") //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
프로필 이미지
파생돌이
49
글번호 194396
지표
답변완료

수식문의(LRL)

일반 봉차트에서 아래 수식과 조건을 만족하는 종목을 검색코자 합니다. wma1 = wavg(C, len); // TEMA 계산 ema1_1 = eavg(wma1, len); ema1_2 = eavg(ema1_1, len); ema1_3 = eavg(ema1_2, len); TEWMA1 = 3 * ema1_1 - 3 * ema1_2 + ema1_3; len2 = len * multi; wma2 = wavg(C, len2); ema2_1 = eavg(wma2, len2); ema2_2 = eavg(ema2_1, len2); ema2_3 = eavg(ema2_2, len2); TEWMA2 = 3 * ema2_1 - 3 * ema2_2 + ema2_3; TEWMA = (TEWMA1 + TEWMA2) / 2; (지표변수 LEN=50, MULTI=1.75) * LRL50이 TEWMA를 돌파 시 검색.
프로필 이미지
ksks
44
글번호 194393
종목검색
답변완료

수식으로 된다면 부탁드립니다

// TEWMA - 삼중 지수 가중 이동 평균 지표 Input : len(50), // 기본 기간 multi(1.75), // 승수 크기(12) ; // 텍스트 크기 Vars : len2(0), // 계산된 두 번째 기간 TEWMA1(0), // 첫 번째 TEWMA 값 TEWMA2(0), // 두 번째 TEWMA 값 TEWMA(0), // 최종 TERWMA 값 Signal(0), // 트랜드 신호 (-1 : 하락, 1 : 상승) dir(0), // 방향 변수 (텍스트 신호용) Long(false), // 상승 조건 Short(false), // 하락 조건 tx(0) ; // 텍스트 객체 // 두 번째 기간 계산 (len * multi를 반올림) len2 = Round(len * multi, 0); // TEWMA1 계산: TEMA(WMA(종가, len), len) var : wma1(0), ema1_1(0), ema1_2(0), ema1_3(0); wma1 = wma(C, len) ; // 가중 이동 평균 ema1_1 = Ema(wma1, len) ; // 첫 번째 지수 이동 평균 ema1_2 = Ema(ema1_1, len) ; // 두 번째 지수 이동 평균 ema1_3 = Ema(ema1_2, len) ; // 세 번째 지수 이동 평균 TEWMA1 = 3 * ema1_1 - 3- ema1_2 + ema1_3 ; //TEMA공식 // TEWMA2 계산: TEMA(WMA(종가, len2), len2) var : wma2(0), ema2_1(0), ema2_2(0), ema2_3(0); wma1 = wma(C, len2) ; // 가중 이동 평균 ema2_1 = Ema(wma2, len2) ; // 첫 번째 지수 이동 평균 ema2_2 = Ema(ema2_1, len2) ; // 두 번째 지수 이동 평균 ema2_3 = Ema(ema2_2, len2) ; // 세 번째 지수 이동 평균 TEWMA2 = 3 * ema2_1 - 3 * ema2_2 + ema2_3 ; // TEMA공식 //최종 TEWMA 계산 (두 값의 평균) TEWMA = (TEWMA1 + TEWMA2) / 2 ; //트랜드 조건 정의 Long = TEWMA > TEWMA[1] ; // 현재 TEWMA가 이전 값 보다 크면 상승 Short = TEWMA < TEWMA[1] ; // 현재 TEWMA가 이전 값 보다 작으면 하락 // 신호 상태 업데이트 if Long then { signal = 1; // 상승 신호 dir = 1 ; // dir 변수도 함께 업데이트 } if Short then { signal = -1; // 하락 신호 dir = -1 ; // dir 변수도 함께 업데이트 } // 지표 출력 (색상은 차트 설정에서 수동 변경 필요) Plot1(TEWMA, "TEWMA") ; // 메인 TEWMA 라인 Plot2(TEWMA1, "TEWMA1") ; // 첫 번째 TEWMA 라인 Plot3(TEWMA2, "TEWMA2") ; // 두 번째 TEWMA 라인 // 상승 신호 (이전이 하락에서 상승으로 전환) if dir == 1 and dir[1] == -1 Then { tx = Text_New(sDate, sTime, low, "▲") ; Text_SetStyle(tx, 2, 0) ; Text_SetSize(tx, 크기) ; Text_SetColor(tx, Black) ; } // 하락 신호 (이전이 상승에서 하락으로 전환) if dir == -1 and dir[1] == 1 Then { tx = Text_New(sDate, sTime, high, "▼") ; Text_SetStyle(tx, 2, 1) ; Text_SetSize(tx, 크기) ; Text_SetColor(tx, Black) ; } /* // 알림 기능 (Alert 함수 사용) if Long then { Alert("TEWMA Long 신호 발생") ; } if Short then { Alert("TEWMA Long 신호 발생") ; } 위 수식을 예스 코인 차트에 적용하면 지표는 크게 나오고 봉 차트는 일자로 나오게 되는데 정상적인 차트로 볼 수가 있나요? 검증 부탁드립니다
프로필 이미지
볼라레
66
글번호 194392
지표
답변완료

키움수식 변환 요청드립니다

노고에 항상 감사드립니다. 아래 키움 신호수식을 예스트레이더 수식으로 변경 부탁드립니다. bol = BBandsup(20, 2, 25); ilmok = shift(close, 26+1); final = Valuewhen(1, crossup(ilmok, bol), bol); 감사합니다.
프로필 이미지
진은광
59
글번호 194391
종목검색
답변완료

수식 문의드립니다.

안녕하세요. 아래 키움 수식인데 예스랭귀지 종목 검색식으로 변경 부탁드립니다. 감사합니다. A=Highest(V,20); B=ValueWhen(1,V>A(1),(O+C+L+H+C)/5); A1=Highest(V,60); B1=ValueWhen(1,V>A1(1),(O+C+L+H+C)/5); B>B1 && B(1)<=B1(1)
프로필 이미지
vhouse
50
글번호 194390
검색
답변완료

변환 부탁드립니다

//@version=5 indicator("VWAP Bands", overlay=true) var float vwapsum = na var float volumesum = na var float v2sum = na var float myvwap = na var float dev = na var float prevwap = na showPWAP = input(false, title="Show Previous VWAP Close") upr1 = input(1.01, title="+1 Projection", group = "Projection One") dpr1 = input(1.01, title="-1 Projection", group = "Projection One") upr2 = input(1.62, title="+2 Projection", group = "Projection Two") dpr2 = input(1.62, title="-2 Projection", group = "Projection Two") upr3 = input(2.62, title="+3 Projection", group = "Projection Three") dpr3 = input(2.62, title="-3 Projection", group = "Projection Three") showPr1 = input(true, title="Show First Projection", group = "Projection One") showPr2 = input(true, title="Show Second Projection", group = "Projection Two") showPr3 = input(true, title="Show Third Projection", group = "Projection Three") start = request.security(syminfo.tickerid, "D", time) newSession = ta.change(start) ? 1 : 0 vwapsum := newSession ? hl2 * volume : vwapsum[1] + hl2 * volume volumesum := newSession ? volume : volumesum[1] + volume v2sum := newSession ? volume * hl2 * hl2 : v2sum[1] + volume * hl2 * hl2 myvwap := vwapsum / volumesum dev := math.sqrt(math.max(v2sum / volumesum - myvwap * myvwap, 0)) trendcolor = close > myvwap ? color.new(color.lime, 0) : color.new(color.red, 0) A = plot(myvwap, style=plot.style_line, title="VWAP", color=trendcolor) trendcolor2 = close > (myvwap + upr1 * dev) ? color.new(color.lime, 75) : color.new(color.red, 75) U1 = plot(showPr1 ? myvwap + upr1 * dev : na, style=plot.style_line, title="VWAP Upper (1)", color=trendcolor2) trendcolor3 = close > (myvwap - dpr1 * dev) ? color.new(color.lime, 75) : color.new(color.red, 75) D1 = plot(showPr1 ? myvwap - dpr1 * dev : na, style=plot.style_line, title="VWAP Lower (1)", color=trendcolor3) trendcolor4 = close > (myvwap + upr2 * dev) ? color.new(color.lime, 50) : color.new(color.red, 50) U2 = plot(showPr2 ? myvwap + upr2 * dev : na, style=plot.style_line, title="VWAP Upper (2)", color=trendcolor4) trendcolor5 = close > (myvwap - dpr2 * dev) ? color.new(color.lime, 50) : color.new(color.red, 50) D2 = plot(showPr2 ? myvwap - dpr2 * dev : na, style=plot.style_line, title="VWAP Lower (2)", color=trendcolor5) trendcolor6 = close > (myvwap + upr3 * dev) ? color.new(color.lime, 45) : color.new(color.red, 45) U3 = plot(showPr3 ? myvwap + upr3 * dev : na, style=plot.style_line, title="VWAP Upper (3)", color=trendcolor6) trendcolor7 = close > (myvwap - dpr3 * dev) ? color.new(color.lime, 45) : color.new(color.red, 45) D3 = plot(showPr3 ? myvwap - dpr3 * dev : na, style=plot.style_line, title="VWAP Lower (3)", color=trendcolor7) prevwap := newSession ? myvwap[1] : prevwap[1] plot(showPWAP ? prevwap : na, style=plot.style_line, color=close > prevwap ? color.new(color.aqua, 35) : color.new(color.fuchsia, 35), linewidth=1, title="Previous VWAP")
프로필 이미지
고저중
59
글번호 194389
지표

고저중 님에 의해서 삭제되었습니다.

프로필 이미지
고저중
2025-09-29
0
글번호 194388
지표
답변완료

부탁드립니다.

1.종가의 아래 꼬리가 2개연속 하여 몸통보다 길면 파란색으로, 종가의 위 꼬리가 2개 연속하여 몸통보다 길면 빨강색으로 구현해 주세요 2. 종가가 최근 3개봉의 최고가보다 높으면 파란색으로, 종가가 최근 3개봉의 최저가보다 낮으면 빨강색으로 구현해 주세요 3.현재 종가가 최근 20개봉 이내에서 양봉이 음봉보다 많으면 파란색으로, 최근 20개봉 이내에서 음봉이 양봉마다 많으면 빨강색으로 구현해 주세요(양봉 다음 도지는 양봉으로 계산, 음봉 다음 도지는 음봉으로 계산) 2. 현재 종가가 최근 20개봉 이내에서 양봉일 때 거래량이 음봉일 때 거래량보다 많으면 파란색으로, 최근 20개봉 이내에서 음봉일 때 거래량이 양봉일 때 거래량보다 많으면 빨강색으로 구현해 주세요(도지의 경우에는 직전 양봉이나 직전 음봉으로 계산) 고맙습니다.
프로필 이미지
서태공
37
글번호 194384
강조
답변완료

수식문의(HA)

수고하십니다. 아래 수식을 하이켄아시 차트에서 검색할 수식으로 변환 가능할까요? A=BBandsUp(17,2); B=BBandsUp(40,2); M=EnvelopeUp(20,2); (c>ma(h,5) and Crossup(A,M)) or (c>ma(h,5) and B>M and Crossup(A,B)) or (A>B and B>M and Crossup(C,A)) or Crossup(C,A) and Crossup(C,B) and Crossup(C,M)
프로필 이미지
ksks
47
글번호 194381
종목검색
답변완료

신호수식을 종목검색식으로 부탁드립니다

A=BWI(20,2); CROSSUP(A,5) && crossup(c,bbandsup(20,2))
프로필 이미지
우주최강
47
글번호 194380
종목검색