SPAR Posted November 2 Report Posted November 2 37 minutes ago, loki0007 said: Your code has issue this backtest is too good to be true I checked it enter and exit in same min 0sec gap between entry exit If the entry and exit are same candle (5m), I think TV will show like that . Is it not true?
WizdomSignal Posted November 2 Report Posted November 2 I tested the code, the performance results are wrong, it's based on heikin ashi candles, which means it uses the open price of the candle which is different than real close, you can check the trades manually and you'll find losing trades showing as winners because of wrong entry price. However, I found that target with 111 ticks is good, but I changed the SL to last swing, and this has improved the winning rate. SPAR 1
loki0007 Posted November 2 Report Posted November 2 16 minutes ago, WizdomSignal said: I tested the code, the performance results are wrong, it's based on heikin ashi candles, which means it uses the open price of the candle which is different than real close, you can check the trades manually and you'll find losing trades showing as winners because of wrong entry price. However, I found that target with 111 ticks is good, but I changed the SL to last swing, and this has improved the winning rate. Can you send corrected code ??
sun Posted November 2 Report Posted November 2 @loki0007 would you mind sharing the code you updated. Not a coder won't be able to do any change. Please share if it's ok with you.
loki0007 Posted November 2 Report Posted November 2 1 hour ago, sun said: @loki0007 would you mind sharing the code you updated. Not a coder won't be able to do any change. Please share if it's ok with you. It's already shared bro i didn't change anything
WizdomSignal Posted November 2 Report Posted November 2 9 hours ago, loki0007 said: Can you send corrected code ?? I tested it manually, one trade at a time, I don't have new code, I'm sharing my feedback for coders to update it. loki0007 1
loki0007 Posted Monday at 01:35 PM Report Posted Monday at 01:35 PM //@version=5 strategy("Simple Market Metrics Trading Rules [Normal Candles Fixed]", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // === REMOVE HEIKIN ASHI WARNING & DEPENDENCY === var bool d7c = true // Disable Heikin Ashi warning var const string x1z = "***** Simple Market Metrics Trading Rules *****" var const string p2k = "\n\n1. How to enter a trade:\n• Wait for a Buy or Sell signal to appear" var const string l4m = "\n• If the signal remains when the candle closes, enter the trade with a market or limit order" var const string b9n = "\n\n2. How to exit a trade:\n• Take profit when the price reaches the profit target line" var const string t8j = "\n• Stop out of the trade if the white dot remains on the opposite side of the profit wave only when the candle has closed." var const string q0z = x1z + p2k + l4m + b9n + t8j var const string e5v = "--------| Frequently Asked Questions |--------" var const string u3b = "\n\n1. What markets can this be traded with?\n• Simple Market Metrics works with any market, but the ES & NQ Futures are the preferred markets to trade this system with." var const string w6t = "\n\n2. What candle type should be used?\n• Simple Market Metrics was designed to be used on Heikin Ashi candles." var const string r1y = "\n\n3. What are the preferred trading hours?\n• The preferred hours to trade are during the New York session between 10:00am EST and 3:00pm EST." var const string z7m = "\n\n4. What timeframe should I trade?\n• The 1 and 2 minute timeframes are preferred with ES & NQ Futures" var const string j9p = "\n\n5. What should I set the profit targets to?\n• ES - 1 min: 4\n• ES - 2 min: 8\n• NQ - 1 min: 20\n• NQ - 2 min: 40" var const string k9z = "\n\n6. How many contracts should I start trading with prop firm accounts?\n• 50k - 5 micros on MES or MNQ \n• 150k - 2 minis on ES or NQ" var const string k3l = e5v + u3b + w6t + r1y + z7m + j9p + k9z var const string d5q = "Some final notes:\n\nThe Simple Market Metrics trading system has been built specifically for trading the ES & NQ Futures markets, with the goal of small but consistent daily profits." var const string c2a = "\n\nAlthough you may trade any market and timeframe you wish, it is up to you to determine the best settings for other markets and timeframes." var const string n4g = "\n\nTrading is risky, do not trade with money you are not comfortable losing.\nControl your risk by managing your position size accordingly, and please practice on a sim account before using real money." var const string f6b = "\n\nIf you need further assistance, contact us at [email protected]" var const string y8s = d5q + c2a + n4g + f6b var const string r0p = "------------------> START HERE <------------------" g1r = input.bool(false, title="Please Read The Trading Rules ----->", group=r0p, tooltip=q0z) h1f = input.bool(false, title="Frequently Asked Questions ------->", group=r0p, tooltip=k3l) b2l = input.bool(false, title="Final Notes & Contact Info --------->", group=r0p, tooltip=y8s) var b8v = '----- Signal Settings -----' n7s = input.bool(true, title='Enable Buy & Sell Signals', group=b8v) c6j = input.color(color.new(#4caf50, 0), 'Buy Signal Color', group=b8v) q8o = input.color(color.new(#b22833, 0), 'Sell Signal Color', group=b8v) m6r = input.bool(true, title='Enable Buy & Sell Price', group=b8v) t7z = input.bool(true, title='Enable Chop Filter', group=b8v, tooltip='This helps to reduce signals during choppy markets, and will produce less signals overall when enabled.') var r7p = '----- Strategy Settings -----' // New user inputs for Take Profit and Stop Loss w3f = input.int(50, title='Take Profit (Ticks/Pips)', group=r7p) s6p = input.int(45, title='Stop Loss (Ticks/Pips)', group=r7p) j4c = input.bool(true, title='Enable Profit Target Lines', group=r7p) v1n = input.int(10, title='Max Profit Target Lines', group=r7p, tooltip='Maximum amount of profit target lines to display on your chart.') y9q = input.color(color.new(color.yellow, 0), 'Profit Target Lines Color', group=r7p) s5d = input.bool(true, "Enable Profit Wave", group=r7p) x3m = input.color(color.new(#00ff8480, 50), 'Profit Wave Bullish Top Color', group=r7p) e4a = input.color(color.new(color.green, 50), 'Profit Wave Bullish Bottom Color', group=r7p) g9j = input.color(color.new(#8c0000, 50), 'Profit Wave Bearish Top Color', group=r7p) u5r = input.color(color.new(#ff0000, 50), 'Profit Wave Bearish Bottom Color', group=r7p) var t6v = '----- Background trendSwitch Settings -----' f3n = input.bool(true, "Enable Background trendSwitch Color", group=t6v) r3k = input.color(color.new(#66ff00, 70), 'Bullish Background Color', group=t6v) y2w = input.color(color.new(#ff0000, 70), 'Bearish Background Color', group=t6v) var p9t = "----- Candle Settings -----" n3b = input.color(color.new(#089981, 0), 'Bullish Candle Color', group=p9t) d9k = input.color(color.new(#f23645, 0), 'Bearish Candle Color', group=p9t) o1m = input.bool(true, title='Enable Candle Color Matching', group=p9t) f2s = input.string("Profit Wave", title='Match Candle Colors To', options=["Profit Wave", "Trend"], group=p9t) var j6z = '----- Support & Resistance Settings -----' m7h = input.bool(true, title='Enable Support & Resistance Lines', group=j6z) z4n = input.color(#ff0000, 'Resistance Lines Color', group=j6z) h4g = input.color(#66ff00, 'Support Lines Color', group=j6z) c5k = input.string("Dotted", options=["Dashed", "Dotted", "Solid"], title="Support & Resistance Lines Style", group=j6z) p8r = input.int(2, "Support & Resistance Lines Width", minval=1, maxval=5, step=1, group=j6z) r9l = input.string('Close', title='Extend Lines Until', options=['Touch', 'Close'], group=j6z, tooltip='Extend the lines until price touches them or a candle closes beyond them.') e6b = 20 g0s = 50 var q5d = '----- Real Price Settings -----' t4n = input(false, title="Enable Real Price Line", group=q5d) l1w = input(false, title="Extend Real Price Line", group=q5d) y0v = input(color.new(color.white, 0), title="Real Price Line Color", group=q5d) s2m = input.string("Thin", options=["Thin", "Thick"], title="Real Price Line Width", group=q5d) n9a = input.string("Dotted", options=["Dotted", "Solid", "Dashed"], title="Real Price Line Style", group=q5d) x8o = input.bool(true, title="Enable Real Close Price Dots", group=q5d) j2l = input(color.new(color.white, 0), title="Real Close Price Dot Color", group=q5d) k9g = input.string("Small", options=["Auto", "Small", "Large"], title="Real Close Price Dot Size", group=q5d) var d3h = '----- Price Channel Settings -----' l7x = input.bool(false, "Enable Price Channel", group=d3h) q6v = input.color(color.green, 'Bottom Price Channel Color', group=d3h) n6b = input.color(#ff0000, 'Top Price Channel Color', group=d3h) g4p = input.bool(false, "Extend Lines Left", group=d3h) b3k = input.bool(false, "Extend Lines Right", group=d3h) var x4a = "----- Dashboard Settings -----" c8y = input.bool(true, title='Enable Buy & Sell Signals on Dashboard', group=x4a) d8w = input.bool(false, "Enable Level Lines", group=x4a) j5r = input.string("Solid", options=["Solid", "Dotted", "Dashed"], title="Level Lines Style", group=x4a) p6t = input.int(1, "trendSwitch Dots Size", minval=1, maxval=10, step=1, group=x4a) q1r = input.int(3, "Signal Dots Size", minval=3, maxval=10, step=1, group=x4a) u7m = input.color(color.lime, 'Money Flow Bullish Color', group=x4a) r0n = input.color(color.red, 'Money Flow Bearish Color', group=x4a) // --- New Time Filter Section --- var z1t = '----- Time Filter -----' c0s = input.bool(true, "Enable Time Filter", group=z1t) z2j = time(timeframe.period, "1600-0859", "America/New_York") w1p = time(timeframe.period, "1200-1229", "America/New_York") isForbiddenTime = c0s and (z2j or w1p) // --- End New Time Filter Section --- z9f = chart.is_heikinashi if not z9f and not d7c f3n := false n7s := false j4c := false o1m := false s5d := false m7h := false middle_price = (high + low) / 2 visible_bar_count = bar_index - ta.valuewhen(time == chart.left_visible_bar_time, bar_index, 0) middle_bar_index = bar_index[visible_bar_count / 2] var label j1l = na if (bar_index > 0) label.delete(j1l) warningText = "\n⚠️ WARNING!!! ⚠️\n\nYou MUST set the chart candle type\nto Heikin Ashi for the signals to display correctly.\n\nThis message will disappear when you've done so.\n" j1l := label.new(x=middle_bar_index, y=middle_price, text=warningText, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_center, color=color.red, textcolor=color.white, size=size.huge, textalign=text.align_center, force_overlay=true) srcHlc3 = hlc3 srcOpen = open srcHigh = high srcLow = low srcClose = close real_price = ticker.new(prefix=syminfo.prefix, ticker=syminfo.ticker) real_close = request.security(symbol=real_price, timeframe='', expression=close, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_off) profitWaveEmaFast = ta.ema(srcClose, 😎 profitWaveEmaMedium = ta.ema(srcClose, 13) profitWaveEmaSlow = ta.ema(srcClose, 21) u8t = 1 r7c = math.max(math.max(high - low, math.abs(high - nz(close[1]))), math.abs(low - nz(close[1]))) p5y = high - nz(high[1]) > nz(low[1]) - low ? math.max(high - nz(high[1]), 0) : 0 d4h = nz(low[1]) - low > high - nz(high[1]) ? math.max(nz(low[1]) - low, 0) : 0 v5g = 0.0 v5g := nz(v5g[1]) - (nz(v5g[1]) / u8t) + r7c p1b = 0.0 p1b := nz(p1b[1]) - (nz(p1b[1]) / u8t) + p5y b6t = 0.0 b6t := nz(b6t[1]) - (nz(b6t[1]) / u8t) + d4h x9n = p1b / v5g * 100 d1v = b6t / v5g * 100 t5c = (srcHigh + srcLow) / 2 - (1.3 * ta.atr(8)) j6r = (srcHigh + srcLow) / 2 + (1.3 * ta.atr(8)) float r8d = na float t9f = na x2m = 0 r8d := srcClose[1] > r8d[1] ? math.max(t5c, r8d[1]) : t5c t9f := srcClose[1] < t9f[1] ? math.min(j6r, t9f[1]) : j6r x2m := srcClose > t9f[1] ? 1 : srcClose < r8d[1] ? -1 : nz(x2m[1], 1) u9z = x2m == 1 ? r8d : t9f y2g = u9z == r8d w1r = u9z == t9f b7f = color.gray b7f := if (srcClose > srcOpen) n3b else if (srcClose < srcOpen) d9k else b7f[1] if (o1m and f2s == "Trend") b7f := if (y2g) n3b else if (w1r) d9k else b7f[1] else if (o1m and f2s == "Profit Wave") b7f := if (srcClose > profitWaveEmaSlow) n3b else if (srcClose < profitWaveEmaSlow) d9k else b7f[1] plotcandle(srcOpen, srcHigh, srcLow, srcClose, "SMM Candles", color=b7f, wickcolor=b7f, bordercolor=b7f, force_overlay=true) x5y = color.white if (y2g) x5y := r3k else if (w1r) x5y := y2w else x5y := x5y[1] bgcolor(f3n ? x5y : na, force_overlay=true) var bool o1z = false var bool k8s = false o1z := u9z == r8d k8s := u9z == t9f mfl = ta.mfi(srcHlc3, 10) enum w0y buy = "Buy Mode" sell = "Sell Mode" none = "none" var w0y y7c = w0y.none if (x5y != x5y[1]) y7c := w0y.none a4h = srcClose > srcOpen and srcOpen == srcLow and real_close > profitWaveEmaFast and real_close > profitWaveEmaSlow p4r = srcClose < srcOpen and srcOpen == srcHigh and real_close < profitWaveEmaFast and real_close < profitWaveEmaSlow v7g = m6r ? "\n$" + str.tostring(real_close, format.mintick) : "" bool e1p = true bool t2y = true if (t7z) e1p := math.floor(x9n) > math.floor(d1v) and math.floor(x9n) >= 45 t2y := math.floor(d1v) > math.floor(x9n) and math.floor(d1v) >= 45 else e1p := true t2y := true var int u0k = na w2f = t7z ? mfl > 52 : true o4k = o1z and y2g and a4h and y7c != w0y.buy and w2f and e1p if (o4k and n7s) y7c := w0y.buy label.new(bar_index, low, style=label.style_label_up, color=c6j, size=size.normal, yloc=yloc.belowbar, text="Buy" + v7g, textcolor=color.white, force_overlay=true) u0k := bar_index b7m = t7z ? mfl < 48 : true o5t = k8s and w1r and p4r and y7c != w0y.sell and b7m and t2y if (o5t and n7s) y7c := w0y.sell label.new(bar_index, high, style=label.style_label_down, color=q8o, size=size.normal, yloc=yloc.abovebar, text="Sell" + v7g, textcolor=color.white, force_overlay=true) u0k := bar_index // Strategy entry with TP and SL. Now includes time filter. if (o4k and n7s and not isForbiddenTime) strategy.entry("Long", strategy.long, when=barstate.isconfirmed) strategy.exit("TP/SL Long", from_entry="Long", profit=w3f, loss=s6p) if (o5t and n7s and not isForbiddenTime) strategy.entry("Short", strategy.short, when=barstate.isconfirmed) strategy.exit("TP/SL Short", from_entry="Short", profit=w3f, loss=s6p) // The original exit logic based on the Profit Wave has been removed, as the `strategy` functions handle // exits based on profit and loss targets. You can still manually close a trade based on that rule // when using the strategy tester and visual backtesting. var line[] n9r = array.new_line(0) var label[] r2j = array.new_label(0) var float x0l = na if ((o4k or o5t) and n7s and j4c) if array.size(n9r) >= v1n o9m = array.get(n9r, 0) k2f = array.get(r2j, 0) line.delete(o9m) label.delete(k2f) array.remove(n9r, 0) array.remove(r2j, 0) x0l := o4k ? real_close + (w3f * syminfo.mintick) : o5t ? real_close - (w3f * syminfo.mintick) : na a2d = line.new(bar_index - 7, x0l, bar_index + 5, x0l, color=y9q, width=2, force_overlay=true) array.push(n9r, a2d) q9p = label.new(bar_index - 3, x0l, text="$" + str.tostring(x0l, format.mintick), style=label.style_none, textcolor=y9q, force_overlay=true) array.push(r2j, q9p) o7g = if not na(u0k) and bar_index > u0k y7c == w0y.buy ? srcHigh >= x0l : y7c == w0y.sell ? srcLow <= x0l : na alertcondition(condition=o4k and e1p, title='Buy alert', message='Buy') alertcondition(condition=o5t and t2y, title='Sell alert', message='Sell') alertcondition(condition=n7s and j4c ? o7g : na, title="Profit Target", message="Profit Target Hit!") if o7g x0l := na u0k := na p3f = plot(s5d ? profitWaveEmaFast : na, title="Profit Wave Line 1", color=color.new(color.white, 100), linewidth=1, force_overlay=true) h3m = plot(s5d ? profitWaveEmaMedium : na, title="Profit Wave Line 2", color=color.new(color.white, 100), linewidth=1, force_overlay=true) b0y = plot(s5d ? profitWaveEmaSlow : na, title="Profit Wave Line 3", color=color.new(color.white, 100), linewidth=1, force_overlay=true) a3c = real_close > profitWaveEmaSlow ? x3m : color.new(color.lime, 100) s8k = real_close > profitWaveEmaSlow ? e4a : color.new(color.green, 100) fill(p3f, h3m, a3c) fill(h3m, b0y, s8k) q4m = real_close < profitWaveEmaSlow ? u5r : color.new(#ff0000, 100) g7n = real_close < profitWaveEmaSlow ? g9j : color.new(#8c0000, 100) fill(p3f, h3m, q4m) fill(h3m, b0y, g7n) w4z = switch c5k "Solid" => line.style_solid "Dotted" => line.style_dotted "Dashed" => line.style_dashed ph1 = ta.pivothigh(srcHigh, e6b, e6b) lp8 = ta.pivotlow(srcLow, e6b, e6b) var line[] j3r = array.new_line(0) var line[] u5x = array.new_line(0) var int[] f4z = array.new_int(0) var int[] d5m = array.new_int(0) q6x = 500 f_manage_line_limit(a5h, p2x) => if array.size(a5h) > g0s line.delete(array.shift(a5h)) array.shift(p2x) if (m7h and not na(ph1) and bar_index[e6b] >= bar_index - q6x) h9s = srcHigh[e6b] y3k = bar_index[e6b] x4m = line.new(y3k, h9s, bar_index + 1, h9s, style=w4z, width=p8r, color=z4n, extend=extend.right, force_overlay=true) array.push(j3r, x4m) array.push(f4z, na) f_manage_line_limit(j3r, f4z) if (m7h and not na(lp8) and bar_index[e6b] >= bar_index - q6x) p0k = srcLow[e6b] l9h = bar_index[e6b] g9t = line.new(l9h, p0k, bar_index + 1, p0k, style=w4z, width=p8r, color=h4g, extend=extend.right, force_overlay=true) array.push(u5x, g9t) array.push(d5m, na) f_manage_line_limit(u5x, d5m) if array.size(j3r) > 0 z8v = r9l == 'Close' ? srcClose : srcHigh for i = 0 to array.size(j3r) - 1 b2m = array.get(j3r, i) o6p = line.get_y1(b2m) q3n = array.get(f4z, i) if na(q3n) line.set_x2(b2m, bar_index) line.set_extend(b2m, extend.none) if na(q3n) and z8v >= o6p line.set_x2(b2m, bar_index) line.set_extend(b2m, extend.none) array.set(f4z, i, bar_index) if array.size(u5x) > 0 t0w = r9l == 'Close' ? srcClose : srcLow for i = 0 to array.size(u5x) - 1 a2r = array.get(u5x, i) v0g = line.get_y1(a2r) z9l = array.get(d5m, i) if na(z9l) line.set_x2(a2r, bar_index) line.set_extend(a2r, extend.none) if na(z9l) and t0w <= v0g line.set_x2(a2r, bar_index) line.set_extend(a2r, extend.none) array.set(d5m, i, bar_index) v4n = (x8o and k9g == "Auto" ? display.all : display.none) p1s = (x8o and k9g == "Small" ? display.all : display.none) m0x = (x8o and k9g == "Large" ? display.all : display.none) g9v = switch s2m "Thin" => 1 "Thick" => 2 if (t4n and (n9a == "Solid")) t2r = line.new(bar_index[1], real_close, bar_index, real_close, xloc.bar_index, (l1w ? extend.both : extend.right), y0v, line.style_solid, g9v, force_overlay=true) line.delete(t2r[1]) if (t4n and (n9a == "Dotted")) k2h = line.new(bar_index[1], real_close, bar_index, real_close, xloc.bar_index, (l1w ? extend.both : extend.right), y0v, line.style_dotted, g9v, force_overlay=true) line.delete(k2h[1]) if (t4n and (n9a == "Dashed")) n7r = line.new(bar_index[1], real_close, bar_index, real_close, xloc.bar_index, (l1w ? extend.both : extend.right), y0v, line.style_dashed, g9v, force_overlay=true) line.delete(n7r[1]) // Real Price Line + Dots logic originally created by PHVNTOM_TRADER plotchar(series=real_close, title="Real Close dots", location=location.absolute, color=j2l, editable=false, char="•", size=size.auto, display=v4n, force_overlay=true) plotchar(series=real_close, title="Real Close dots", location=location.absolute, color=j2l, editable=false, char="•", size=size.tiny, display=p1s, force_overlay=true) plotshape(series=real_close, title="Real Close dots", location=location.absolute, color=j2l, editable=false, style=shape.circle, size=size.auto, display=m0x, force_overlay=true) l5v = 9 c8k = 2.0 d3n = 100 v0x = switch g4p and b3k => extend.both g4p => extend.left b3k => extend.right => extend.none var f5k = array.new_line(0) var g5w = array.new_line(0) h7a(p1q, a3l, y4m, u9g, l0k, i8r, is1t) => line.set_xy1(p1q, a3l, y4m) line.set_xy2(p1q, u9g, l0k) line.set_color(p1q, i8r) line.set_style(p1q, is1t ? line.style_dotted : line.style_solid) if l7x if barstate.isfirst for i = 1 to l5v array.push(f5k, line.new(na, na, na, na, extend=v0x, force_overlay=true)) array.push(g5w, line.new(na, na, na, na, extend=v0x, force_overlay=true)) n1l = bar_index c5n = ta.variance(srcClose, d3n) z7r = ta.correlation(srcClose, n1l, d3n) a6v = z7r * (math.sqrt(c5n) / ta.stdev(n1l, d3n)) w5j = ta.sma(srcClose, d3n) - a6v * ta.sma(n1l, d3n) t2d = math.sqrt(c5n - c5n * math.pow(z7r, 2)) * c8k if barstate.islast v9l = a6v * (n1l - d3n + 1) + w5j - t2d k0y = a6v * n1l + w5j - t2d w8g = false for i = 0 to l5v - 2 q7p = i / (l5v - 1) g0f = q7p * t2d * 2 p9g = color.from_gradient(q7p, 0, 0.5, color.new(q6v, 00), color.new(q6v, 75)) r4n = color.from_gradient(q7p, 0.5, 1, color.new(n6b, 60), color.new(n6b, 25)) u2x = color.white if (q7p == 0.5) u2x := color.white w8g := true if q7p < 0.5 u2x := p9g if q7p > 0.5 u2x := r4n h7a(array.get(f5k, i), n1l - d3n + 1, v9l + g0f, n1l, k0y + g0f, u2x, w8g) w8g := false h7a(array.get(f5k, l5v - 1), n1l - d3n + 1, v9l + t2d * 2, n1l, k0y + t2d * 2, n6b, w8g) u4n = math.sqrt(c5n - c5n * math.pow(z7r, 2)) * 1 b3d = switch j5r "Solid" => hline.style_solid "Dotted" => hline.style_dotted "Dashed" => hline.style_dashed p0n = hline(100, color=color.new(#ff1b1b, 50), linestyle=hline.style_solid) h3r = hline(90, color=color.new(#ff2626, 50), linestyle=hline.style_solid) n9l = hline(80, color=color.new(#ff3f3f, 50), linestyle=hline.style_solid) a1t = hline(d8w ? 70 : na, color=color.new(#ff5050, 50), linestyle=b3d) d0g = hline(d8w ? 60 : na, color=color.new(#ff6464, 50), linestyle=b3d) v2c = hline(d8w ? 50 : na, color=color.new(#ff6464, 100), linestyle=b3d) l5n = hline(0, color=color.new(#047200, 50), linestyle=hline.style_solid) z1h = hline(10, color=color.new(#047e00, 50), linestyle=hline.style_solid) k6r = hline(20, color=color.new(#048900, 50), linestyle=hline.style_solid) b9t = hline(d8w ? 30 : na, color=color.new(#059f00, 50), linestyle=b3d) h4w = hline(d8w ? 40 : na, color=color.new(#06b200, 50), linestyle=b3d) y5g = hline(d8w ? 50 : na, color=color.new(#06b200, 100), linestyle=b3d) fill(p0n, h3r, color=color.new(#ff1b1b, 20), title="Overbought Extreme Background") fill(h3r, n9l, color=color.new(#ff2626, 40), title="Overbought Start Background") fill(l5n, z1h, color=color.new(#047200, 10), title="Oversold Start Background") fill(k6r, z1h, color=color.new(#047e00, 40), title="Oversold Extreme Background") t5n = y2g ? #66ff00 : #ff0000 plot(50, color=t5n, style=plot.style_circles, title="Dashboard Center Line trendSwitch Dots", linewidth=p6t) plotshape(o4k and c8y and e1p ? 10 : na, title='Dashboard Buy Signal', style=shape.labelup, location=location.absolute, text='Buy', textcolor=color.white, color=c6j) plotshape(o5t and c8y and t2y ? 90 : na, title='Dashboard Sell Signal', style=shape.labeldown, location=location.absolute, text='Sell', textcolor=color.white, color=q8o) u2t = if (mfl > 50) u7m else if (mfl < 50) r0n else color.white plot(mfl, "Dashboard Money Flow Line", color=u2t, style=plot.style_stepline) plot(o4k ? 50 : na, color=#66ff00, style=plot.style_circles, linewidth=q1r, title='Dashboard Crossover Up Dots') plot(o5t ? 50 : na, color=#ff0000, style=plot.style_circles, linewidth=q1r, title='Dashboard Crossover Down Dots')
loki0007 Posted Monday at 01:37 PM Report Posted Monday at 01:37 PM check this code use this on normal candlestick if used on heikenishi candlestick you get fake results
fchot33 Posted 1 hour ago Author Report Posted 1 hour ago I reviewed the code, now its going well so far in backtesting. needed some refinement. ⭐ goldeneagle1 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now