커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

로직 문의

안녕하세요 몇가지 질문이 있습니다 질문 #1 제가 봤을때는 동일한 논리인 아래 두 코드가 백테스트에는 다른 결과를 보여주는데요 제가 잘못 이해하고 있는게 있을까요? 감사합니다 코드 #1 var : hh(0),ll(0); input:X1(5); // 1~10, 직전 XX봉 횟수 ll = lowest(L,X1); hh = highest(H,X1); Condition1 = CrossUp(C,hh[1]) and MarketPosition == 0; Condition2 = CrossDown(C,ll[1]) and MarketPosition == 0; If Condition1 == True and CrossUp(C,hh[1]) then Buy("B1",AtMarket,DEf,1); If Condition2 == True and CrossDown(C,ll[1]) then Sell("B2",AtMarket,DEf,1); 코드 #2 var : hh(0),ll(0); input:X1(5); // 1~10, 직전 XX봉 횟수 ll = lowest(L,X1); hh = highest(H,X1); If CrossUp(C,hh[1]) then Buy("B1",AtMarket,DEf,1); If CrossDown(C,ll[1]) then Sell("B2",AtMarket,DEf,1); 질문 #2 아래 코드의 논리를 제가 이렇게 이해하고 있는데, 맞는지 검증 부탁드립니다 현재봉에서 직전 XX봉 고가/저가 돌파가 나오면 매수/매도 포지션이 있을때 entryprice가 진입봉의 저가/고가를 벗어나면 청산 var : hh(0),ll(0); input:X1(5); // 1~10, 직전 XX봉 횟수 ll = lowest(L,X1); hh = highest(H,X1); Condition1 = CrossUp(C,hh[1]) and MarketPosition == 0; Condition2 = CrossDown(C,ll[1]) and MarketPosition == 0; If Condition1 == True then Buy("B1",AtMarket,DEf,1); If Condition2 == True then Sell("B2",AtMarket,DEf,1); // 손절: 진입신호 봉의 저가 손절 input:FF(8); // 1~10, 진입 후 XX봉 경과 If MarketPosition == 1 and EntryPrice < L[BarsSinceEntry] Then ExitLong("C1"); If MarketPosition == -1 and EntryPrice > H[BarsSinceEntry] Then ExitShort("C2");
프로필 이미지
sewzie
2025-05-14
236
글번호 190804
시스템
답변완료

키움수식 변환 부탁드립니다.

안녕하세요, 항상 도움을 주셔서 감사합니다. 첨부된 그림의 조건검색을 예스트레이더의 검색식으로 변환 부탁드립니다. 감사합니다.
프로필 이미지
리버피닉스
2025-05-14
283
글번호 190802
종목검색
답변완료

지표 변환 부탁드립니다.

//@version=6 indicator("Trend Classifier [ChartPrime]", overlay = true, max_labels_count = 500) // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120400;&#120398;&#120384;&#120397; &#120388;&#120393;&#120395;&#120400;&#120399;&#120398; // --------------------------------------------------------------------------------------------------------------------{ int length = input.int(10, "Length") bool show_bands = input.bool(true, "Trend Bands") color col_up = input.color(#008fa5, "", inline = "col") color col_dn = input.color(#e14c60, "", inline = "col") color col_range = input.color(#edae49, "", inline = "col") // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120388;&#120393;&#120383;&#120388;&#120382;&#120380;&#120399;&#120394;&#120397; &#120382;&#120380;&#120391;&#120382;&#120400;&#120391;&#120380;&#120399;&#120388;&#120394;&#120393;&#120398; // --------------------------------------------------------------------------------------------------------------------{ smema(src, length)=> ta.sma(ta.ema(src, length), length) col_distance(src, col)=> distance = math.abs(close - src) col_size = distance / ta.percentile_linear_interpolation(distance, 400, 100) show_bands ? color.from_gradient(col_size, 0, 0.5, color(na), col) : color(na) float smema = smema(close, length) float distance1 = close - smema float distance2 = smema - close float step = smema(high-low, 100) float smema_up3 = smema + step * 3 float smema_up2 = smema + step * 2 float smema_up1 = smema + step float smema_dn3 = smema - step * 3 float smema_dn2 = smema - step * 2 float smema_dn1 = smema - step bool trend = smema > smema[1] bool above3 = close > smema_up3 bool above2 = close > smema_up2 bool above1 = close > smema_up1 bool below1 = close < smema_dn1 bool below2 = close < smema_dn2 bool below3 = close < smema_dn3 int bull_strength = (above1 ? 1 : 0) + (above2 ? 1 : 0) + (above3 ? 1 : 0) int bear_strength = (below1 ? 1 : 0) + (below2 ? 1 : 0) + (below3 ? 1 : 0) label_signal = trend and bull_strength >= 1 ? 1 : not trend and bear_strength >= 1 ? -1 : 0 // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120401;&#120388;&#120398;&#120400;&#120380;&#120391;&#120388;&#120405;&#120380;&#120399;&#120388;&#120394;&#120393; // --------------------------------------------------------------------------------------------------------------------{ table mytbl = table.new(position.top_right, 10, 50) if barstate.islast table.cell(mytbl, 0, 0, "Bull Strength", text_color = chart.fg_color) table.cell(mytbl, 0, 1, "Bear Strength", text_color = chart.fg_color) for i = 0 to 3 table.cell(mytbl, 1+i, 0, "") if bull_strength >= 0 for i = 0 to bull_strength table.cell(mytbl, i+1, 0, i == bull_strength ? str.tostring(bull_strength) : "", bgcolor = color.new(col_up, 80 - i * 30), text_color = chart.fg_color) if bear_strength >= 0 for i = 0 to bear_strength table.cell(mytbl, i+1, 1, i == bear_strength ? str.tostring(bear_strength) : "", bgcolor = color.new(col_dn, 80 - i * 30), text_color = chart.fg_color) color color_class = label_signal > 0 ? col_up : label_signal < 0 ? col_dn : col_range // Labels barcolor(color_class) plotcandle(open, high, low, close, title='Candles Color', color = color_class, wickcolor=color_class, bordercolor = color_class, force_overlay = true) plotshape(trend != trend[1] ? smema[1] : na, location=location.absolute, color=chart.fg_color, style=shape.diamond, title="Trend Signal", force_overlay = true, offset = -1, size = size.tiny) if label_signal == 1 label.new(bar_index, low, "▲₩n" + str.tostring(bull_strength), style = label.style_label_up, color = color(na), size = size.tiny, textcolor = color_class) if label_signal == -1 label.new(bar_index, high, str.tostring(bear_strength) + "₩n▼", style = label.style_label_down, color = color(na), size = size.tiny, textcolor = color_class) color col_mid = smema > smema[1] ? col_up : col_dn color col_up1 = col_distance(smema_up1, close > smema_up1 and trend ? col_up : close < smema_up1 and not trend ? col_dn : color(na)) color col_up2 = col_distance(smema_up2, close > smema_up2 and trend ? col_up : close < smema_up2 and not trend ? col_dn : color(na)) color col_up3 = col_distance(smema_up3, close > smema_up3 and trend ? col_up : close < smema_up3 and not trend ? col_dn : color(na)) color col_dn1 = col_distance(smema_dn1, close < smema_dn1 and not trend ? col_dn : close > smema_dn1 and trend ? col_up : color(na)) color col_dn2 = col_distance(smema_dn2, close < smema_dn2 and not trend ? col_dn : close > smema_dn2 and trend ? col_up : color(na)) color col_dn3 = col_distance(smema_dn3, close < smema_dn3 and not trend ? col_dn : close > smema_dn3 and trend ? col_up : color(na)) plot(smema_up3, color = col_up3, editable = false) plot(smema_up2, color = col_up2, editable = false) plot(smema_up1, color = col_up1, editable = false) plot(smema, "Trend Line",color = col_mid, editable = true, linewidth = 2) plot(smema_dn1, color = col_dn1, editable = false) plot(smema_dn2, color = col_dn2, editable = false) plot(smema_dn3, color = col_dn3, editable = false) // --------------------------------------------------------------------------------------------------------------------}
프로필 이미지
삼손감자
2025-05-14
369
글번호 190801
지표
답변완료

종목검색 시점에 대한 문의

안녕하세요 항상 친절한 답변 주셔서 감사합니다. 오늘은 파워종목검색의 시점에 대해 여쭤보고자 합니다. 현재 만들어진 전략은 두가지 조건식(A,B)을 만족하고 있습니다. A식은 기준봉이 1봉전이며, B식은 기준봉이 0봉전 그러니까 오늘의 값을 실시간 참고합니다. B식의 코드는 다음과 같습니다. input : ; var : ; if ma(Money,5)[1] > 2000000000 && low < Close[1] && Close > Close[1]*0.99 && (h - l)/l*100 < 6 && (C - C[1])/C[1]*100 < 15 Then Find(1); 종목 호출 간격은 2초이며(var timer5 = 3; // 2초), 매수 시작시간은 09:10입니다.( if (nEventID == 1 && HHMMSS >= 91000 && HHMMSS < 143000)) 이해가 가지 않는 부분은 해당 전략에 따라 매수한 종목의 매수시점입니다. B코드 전문을 보면 아시겠지만, 전일 종가를 당일날 밑으로 터치한 후, 다시 회복하는 시점에 매수를 즉각적으로 해야합니다. 그러나, 해당 전략으로 매수된 종목을 하나 예시로 들자면 금일 롯데관광개발이 09:13:33에 10990원에 체결됐습니다. 전략대로라면, 전일 종가의 0.99를 돌파하는 시점 그러니까,10810*0.99(10.701.99원)근처에, 14:12경에 체결이 일어나야 정상입니다.어째서 이 시간대, 이 가격에 체결이 일어났는지 아무리 생각해봐도 모르겠습니다.ㅠㅠ 시간이 되신다면, 혹시 어느 부분이 잘못됐는지 짚어 주실 수 있을까요? 시간나실때, 답변 부탁드리겠습니다. 좋은하루 되세요!
프로필 이미지
아침식사됩니다
2025-05-14
278
글번호 190799
종목검색
답변완료

문의 드립니다.

안녕하세요 아래의 신호 수식의 종목 검색식 부탁 드립니다. max(BBandsUp(20,2))<min(BBandsdown(20,2))*1.01 or max(BBandsUp(20,2))<min(BBandsdown(20,2))*1.02 && c>BBandsc(20,2) && crossup(c,BBandsup(20,2)) && v>v(1)*2 && c>predayclose() && dayopen()<c && C*1.04 >= dayhigh() && h(1)<BBandsup(20,2) 감사합니다
프로필 이미지
ikksoo
2025-05-14
215
글번호 190797
검색

wscamtk 님에 의해서 삭제되었습니다.

프로필 이미지
wscamtk
2025-05-14
26
글번호 190793
시스템
답변완료

N일동안 rsi 최고일때 종가를 오늘돌파하는 종목

항상 감사드리며 좋은 하루 되실길 바라며 위 제목과 상동하는 조건식을 부탁드립니다
프로필 이미지
mizno
2025-05-14
272
글번호 190792
종목검색
답변완료

종목검색식 부탁드림니다.

항상 노고에 감사드림니다. 아래의 수식을 종목검색식으로 부탁드림니다. Crossup(C ,eavg(C, Period)) and Crossup(C ,eavg(C, Period1)) and V > avg(V, Period2) * Multiple && V > V(1) * Multiple 지표변수 Period 224 Period1 10 Period2 Multiple 1.5
프로필 이미지
존슨비치
2025-05-14
301
글번호 190791
종목검색
답변완료

문의드립니다.

아래의 트레이딩뷰 수식을 변환부탁드립니다. ============= indicator(title="Volume Weighted Average Price", shorttitle="VWAP", overlay=true, timeframe="", timeframe_gaps=true) hideonDWM = input(false, title="Hide VWAP on 1D or Above", group="VWAP Settings", display = display.data_window) var anchor = input.string(defval = "Session", title="Anchor Period", options=["Session", "Week", "Month", "Quarter", "Year", "Decade", "Century", "Earnings", "Dividends", "Splits"], group="VWAP Settings") src = input(title = "Source", defval = hlc3, group="VWAP Settings", display = display.data_window) offset = input.int(0, title="Offset", group="VWAP Settings", minval=0, display = display.data_window) BANDS_GROUP = "Bands Settings" CALC_MODE_TOOLTIP = "Determines the units used to calculate the distance of the bands. " calcModeInput = input.string("Standard Deviation", "Bands Calculation Mode", options = ["Standard Deviation", "Percentage"], group = BANDS_GROUP, tooltip = CALC_MODE_TOOLTIP, display = display.data_window) showBand_1 = input(true, title = "", group = BANDS_GROUP, inline = "band_1", display = display.data_window) bandMult_1 = input.float(1.0, title = "Bands Multiplier #1", group = BANDS_GROUP, inline = "band_1", step = 0.5, minval=0, display = display.data_window) showBand_2 = input(false, title = "", group = BANDS_GROUP, inline = "band_2", display = display.data_window) bandMult_2 = input.float(2.0, title = "Bands Multiplier #2", group = BANDS_GROUP, inline = "band_2", step = 0.5, minval=0, display = display.data_window) showBand_3 = input(false, title = "", group = BANDS_GROUP, inline = "band_3", display = display.data_window) bandMult_3 = input.float(3.0, title = "Bands Multiplier #3", group = BANDS_GROUP, inline = "band_3", step = 0.5, minval=0, display = display.data_window) cumVolume = ta.cum(volume) if barstate.islast and cumVolume == 0 runtime.error("No volume is provided by the data vendor.") new_earnings = request.earnings(syminfo.tickerid, earnings.actual, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true) new_dividends = request.dividends(syminfo.tickerid, dividends.gross, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true) new_split = request.splits(syminfo.tickerid, splits.denominator, barmerge.gaps_on, barmerge.lookahead_on, ignore_invalid_symbol=true) isNewPeriod = switch anchor "Earnings" => not na(new_earnings) "Dividends" => not na(new_dividends) "Splits" => not na(new_split) "Session" => timeframe.change("D") "Week" => timeframe.change("W") "Month" => timeframe.change("M") "Quarter" => timeframe.change("3M") "Year" => timeframe.change("12M") "Decade" => timeframe.change("12M") and year % 10 == 0 "Century" => timeframe.change("12M") and year % 100 == 0 => false isEsdAnchor = anchor == "Earnings" or anchor == "Dividends" or anchor == "Splits" if na(src[1]) and not isEsdAnchor isNewPeriod := true float vwapValue = na float upperBandValue1 = na float lowerBandValue1 = na float upperBandValue2 = na float lowerBandValue2 = na float upperBandValue3 = na float lowerBandValue3 = na if not (hideonDWM and timeframe.isdwm) [_vwap, _stdevUpper, _] = ta.vwap(src, isNewPeriod, 1) vwapValue := _vwap stdevAbs = _stdevUpper - _vwap bandBasis = calcModeInput == "Standard Deviation" ? stdevAbs : _vwap * 0.01 upperBandValue1 := _vwap + bandBasis * bandMult_1 lowerBandValue1 := _vwap - bandBasis * bandMult_1 upperBandValue2 := _vwap + bandBasis * bandMult_2 lowerBandValue2 := _vwap - bandBasis * bandMult_2 upperBandValue3 := _vwap + bandBasis * bandMult_3 lowerBandValue3 := _vwap - bandBasis * bandMult_3 plot(vwapValue, title = "VWAP", color = #2962FF, offset = offset) upperBand_1 = plot(upperBandValue1, title="Upper Band #1", color = color.green, offset = offset, display = showBand_1 ? display.all : display.none, editable = showBand_1) lowerBand_1 = plot(lowerBandValue1, title="Lower Band #1", color = color.green, offset = offset, display = showBand_1 ? display.all : display.none, editable = showBand_1) fill(upperBand_1, lowerBand_1, title="Bands Fill #1", color = color.new(color.green, 95), display = showBand_1 ? display.all : display.none, editable = showBand_1) upperBand_2 = plot(upperBandValue2, title="Upper Band #2", color = color.olive, offset = offset, display = showBand_2 ? display.all : display.none, editable = showBand_2) lowerBand_2 = plot(lowerBandValue2, title="Lower Band #2", color = color.olive, offset = offset, display = showBand_2 ? display.all : display.none, editable = showBand_2) fill(upperBand_2, lowerBand_2, title="Bands Fill #2", color = color.new(color.olive, 95), display = showBand_2 ? display.all : display.none, editable = showBand_2) upperBand_3 = plot(upperBandValue3, title="Upper Band #3", color = color.teal, offset = offset, display = showBand_3 ? display.all : display.none, editable = showBand_3) lowerBand_3 = plot(lowerBandValue3, title="Lower Band #3", color = color.teal, offset = offset, display = showBand_3 ? display.all : display.none, editable = showBand_3) fill(upperBand_3, lowerBand_3, title="Bands Fill #3", color = color.new(color.teal, 95), display = showBand_3 ? display.all : display.none, editable = showBand_3) =================== 거듭 감사합니다. 수고하세요!!!
프로필 이미지
해암
2025-05-14
441
글번호 190790
지표
답변완료

지표 문의 드립니다.

//@version=6 indicator( title = "Stoch RSI + TEMA", shorttitle = "SRTEMA", overlay = false, format = format.price, precision = 2) // ────────── 입력 smoothK = input.int(12 , "K" , minval = 1) smoothD = input.int(3 , "D" , minval = 1) rsiLen = input.int(14, "RSI Length" , minval = 1) stochLen = input.int(14, "Stoch Len" , minval = 1) src = input.source(close, "RSI Src") temaLen = input.int(12 , "TEMA Length" , minval = 1) // ────────── Stochastic RSI rsiVal = ta.rsi(src, rsiLen) k_raw = ta.stoch(rsiVal, rsiVal, rsiVal, stochLen) k = ta.sma(k_raw, smoothK) // %K d = ta.sma(k , smoothD) // %D // ────────── TEMA (%K 기반) ema1 = ta.ema(k, temaLen) ema2 = ta.ema(ema1, temaLen) ema3 = ta.ema(ema2, temaLen) tema = 3 * (ema1 - ema2) + ema3 // ────────── 시각화 plot(k , "K" , color = color.blue , linewidth = 2) plot(d , "D" , color = color.orange, linewidth = 2) plot(tema, "TEMA", color = color.green , linewidth = 2) hUpper = hline(80, "Upper" , color = color.gray) hMid = hline(50, "Middle", color = color.new(color.gray, 50)) hLower = hline(20, "Lower" , color = color.gray) fill(hUpper, hLower, color = color.rgb(33,150,243,90), title = "BG") // ────────── 알림(선택) bullCross = ta.crossover(k, tema) bearCross = ta.crossunder(k, tema) alertcondition(bullCross, "Bullish K>TEMA", "K crossed above TEMA") alertcondition(bearCross, "Bearish K<TEMA", "K crossed below TEMA") 트레이딩뷰 수식인데 예스 수식으로 바꿔주세요.
프로필 이미지
신대륙발견
2025-05-14
319
글번호 190789
지표