استراتژی ترید
لطقا کد را بدون ارور تحویل بدید و در قسمت اندیکاتور ها قابل نمایش باشد در دو ورژن ۵ و ۶ باشد //@version=5 indicator("[My Custom Indicator]", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=500) // ══════════════════════════ VOLATILITY FUNCTIONS ═══════════════════ f_coc(x, period, sqrtAnnual) => mean = ta.sma(x, period) s = array.new_float(0) for i = 0 to period - 1 by 1 array.push(s, math.pow(x[i] - mean, 2)) sqrtAnnual * math.sqrt(array.sum(s) / (period - 1)) f_park(period, sqrtAnnual) => var LOG2 = math.log(2) powLogHighLow = math.pow(math.log(high / low), 2) sqrtAnnual * math.sqrt(1.0 / period * math.sum(1.0 / (4.0 * LOG2) * powLogHighLow, period)) f_gk(period, sqrtAnnual) => var LOG2 = math.log(2) var SQRT_1_PERIOD = math.sqrt(1 / period) powLogHighLow = math.pow(math.log(high / low), 2) powLogCloseOpen = math.pow(math.log(close / open), 2) tmp = 0.5 * powLogHighLow - (2.0 * LOG2 - 1.0) * powLogCloseOpen sqrtAnnual * math.sqrt(math.sum(tmp, period)) * SQRT_1_PERIOD f_rsv(period, sqrtAnnual) => tmp = math.log(high / close) * math.log(high / open) + math.log(low / close) * math.log(low / open) sqrtAnnual * math.sqrt(math.sum(tmp, period) / period) f_gkyz(period, sqrtAnnual) => var LOG2 = math.log(2) var SQRT_1_PERIOD = math.sqrt(1 / period) powLogHighLow = math.pow(math.log(high / low), 2) powLogCloseOpen = math.pow(math.log(close / open), 2) lastClose = nz(close[1], close) powLogOpenClose1 = math.pow(math.log(open / lastClose), 2) tmp = powLogOpenClose1 + 0.5 * powLogHighLow - (2.0 * LOG2 - 1.0) * powLogCloseOpen sqrtAnnual * math.sqrt(math.sum(tmp, period)) * SQRT_1_PERIOD f_yz(a, period, sqrtAnnual) => o = math.log(open) - math.log(nz(close[1], close)) u = math.log(high) - math.log(open) d = math.log(low) - math.log(open) c = math.log(close) - math.log(open) nMinusOne = period - 1 avgo = ta.sma(o, period) avgc = ta.sma(c, period) so = array.new_float(0) sc = array.new_float(0) for i = 0 to period - 1 by 1 array.push(so, math.pow(o[i] - avgo, 2)) array.push(sc, math.pow(c[i] - avgc, 2)) sumo = array.sum(so) sumc = array.sum(sc) Vo = sumo / nMinusOne Vc = sumc / nMinusOne Vrs = math.sum(u * (u - c) + d * (d - c), period) / period k = (a - 1.0) / (a + (period + 1.0) / nMinusOne) sqrtAnnual * math.sqrt(Vo + k * Vc + (1.0 - k) * Vrs) f_ewma(source, period, sqrtAnnual) => var lambda = (period - 1) / (period + 1) squared = math.pow(source, 2) float v = na v := lambda * nz(v[1], squared) + (1.0 - lambda) * squared sqrtAnnual * math.sqrt(v) f_mad(source, period, sqrtAnnual) => var SQRT_HALF_PI = math.sqrt(math.asin(1)) mean = ta.sma(source, period) S = array.new_float(0) for i = 0 to period - 1 by 1 array.push(S, math.abs(source[i] - mean)) sumS = array.sum(S) sqrtAnnual * (sumS / period) * SQRT_HALF_PI f_mead(source, period, sqrtAnnual) => median = ta.percentile_nearest_rank(source, period, 50) E = 0.0 for i = 0 to period - 1 by 1 E += math.abs(source[i] - median) sqrtAnnual * math.sqrt(2) * (E / period) // ══════════════════════════ VOLATILITY MODEL ════════════════════════ H = input.string('EWMA', 'Volatility Model', options=['Close to Close', 'Parkinson', 'Garman Klass', 'Rogers Satchell', 'Garman Klass Yang Zhang Extension', 'Yang Zhang', 'EWMA', 'Mean Absolute Deviation', 'Median Absolute Deviation']) period = input.int(10, 'Period', 1) Annual = input.int(365, 'Annual Days', 1) a = input.float(1.34, 'Yang Zhang a', 0.1, 5) Plen = input.int(365, 'Percentile Length', 1) Pco = input.bool(true, 'Color by Percentile') sma = input.bool(true, 'Show SMA of HV') malen = input.int(55, 'SMA Length', 1) stl = input.string('Columns', 'Plot Style', options=['Line', 'StepLine', 'Area', 'Columns']) lT = input.int(3, 'Line Width', 1, 10) var sqrtAnnual = math.sqrt(Annual) * 100 logr = math.log(close / close[1]) model = H Hv = if model == 'Close to Close' f_coc(logr, period, sqrtAnnual) else if model == 'Parkinson' f_park(period, sqrtAnnual) else if model == 'Rogers Satchell' f_rsv(period, sqrtAnnual) else if model == 'Garman Klass' f_gk(period, sqrtAnnual) else if model == 'Garman Klass Yang Zhang Extension' f_gkyz(period, sqrtAnnual) else if model == 'EWMA' f_ewma(logr, period, sqrtAnnual) else if model == 'Yang Zhang' f_yz(a, period, sqrtAnnual) else if model == 'Mean Absolute Deviation' f_mad(logr, period, sqrtAnnual) else f_mead(logr, period, sqrtAnnual) avgHV = ta.sma(Hv, malen) HVP = ta.percentrank(Hv, Plen) colorHV = Pco ? color.from_gradient(HVP, 0, 100, color.red, color.lime) : color.aqua plot(Hv, 'HV', color=colorHV, linewidth=lT, style=plot.style_line) plot(sma ? avgHV : na, 'sma', color=color.new(color.white, 75), linewidth=2) // ════════════════════════ AUTO SENSITIVITY (Volatility Bands) ═════ maa = avgHV / 100 * 140 mab = avgHV / 100 * 180 mac = avgHV / 100 * 240 mad = avgHV / 100 * 60 mae = avgHV / 100 * 20 float auto_volatility = na if Hv < maa and Hv > avgHV auto_volatility := 3.15 else if Hv < mab and Hv > maa auto_volatility := 3.5 else if Hv < mac and Hv > mab auto_volatility := 3.6 else if Hv > mac auto_volatility := 4 else if Hv < maa and Hv > mad auto_volatility := 3 else if Hv < mad and Hv > mae auto_volatility := 2.85 else if Hv < mae auto_volatility := 3 // ══════════════════════════ STRATEGY INPUTS ════════════════════════ enableDashboard = input.bool(true, 'Enable Dashboard', group='DASHBOARD') locationDashboard = input.string('Middle right', 'Location', options=['Top right', 'Top left', 'Middle right', 'Middle left', 'Bottom right', 'Bottom left'], group='DASHBOARD') sizeDashboard = input.string('Tiny', 'Size', options=['Tiny', 'Small', 'Normal'], group='DASHBOARD') mobileMode = input.bool(true, '📱 Mobile Mode', group='DASHBOARD') colorBackground = input.color(#2A2E39, 'Bg', group='DASHBOARD') colorFrame = input.color(#2A2E39, 'Frame', group='DASHBOARD') colorBorder = input.color(#363A45, 'Border', group='DASHBOARD') showSignals = input.bool(true, 'Show signals', group='SIGNALS') strategy = input.string('Normal', 'Strategy', options=['Normal', 'Confirmed', 'Trend scalper'], group='SIGNALS') sensitivity = input.float(1.8, 'Manual Sensitivity', 1, 20, group='SIGNALS') auto_button = input.bool(true, 'Auto Sensitivity', group='SIGNALS') sensitivity := auto_button ? auto_volatility : sensitivity consSignalsFilter = input.bool(false, 'Consolidation filter', group='SIGNALS') smartSignalsOnly = input.bool(false, 'Smart signals only', group='SIGNALS') highVolSignals = input.bool(false, 'High volume signals', group='SIGNALS') signalsTrendCloud = input.bool(false, 'Trend only signals', group='SIGNALS') showTrendCloud = input.bool(true, 'Show Trend cloud', group='TREND CLOUD') periodTrendCloud = input.string('New', 'Period', options=['Short term', 'Long term', 'New'], group='TREND CLOUD') enableSR = input.bool(false, 'Enable S/R', group='SUPPORT & RESISTANCE') lineSrStyle = input.string('Dashed', 'Style', options=['Solid', 'Dotted', 'Dashed'], group='SUPPORT & RESISTANCE') lineSrWidth = input.int(2, 'Width', 1, 4, group='SUPPORT & RESISTANCE') showCons = input.bool(false, 'Consolidation Zones', group='CONSOLIDATION') lbPeriod = input.int(10, 'Loopback', 2, 50, group='CONSOLIDATION') lenCons = input.int(5, 'Min Length', 2, 20, group='CONSOLIDATION') paintCons = input.bool(true, 'Paint Area', group='CONSOLIDATION') colorZone = input.color(color.new(color.blue, 70), 'Color', group='CONSOLIDATION') showSMC = input.bool(true, '🧠 Smart Money Concepts', group='SMART MONEY') showFVG = input.bool(true, '📊 Fair Value Gaps', group='SMART MONEY') showLiquidity = input.bool(true, '💧 Liquidity Sweeps', group='SMART MONEY') smcAlert = input.bool(true, '🔔 Smart Money Alerts', group='SMART MONEY') box_ob = input.bool(false, 'Order Blocks (Legacy)', group='ORDER BLOCKS') bos_type = input.string('High and Low', 'MSB trigger', options=['High and Low', 'Close and Open'], group='ORDER BLOCKS') box_sv = input.bool(true, 'Plot demand boxes', group='ORDER BLOCKS') eliteVP = input.bool(false, 'Volume Profile', group='VOLUME PROFILE') // ══════════════════════════ HELPER FUNCTIONS ═══════════════════════ f_supertrend(src, factor, len) => atr = ta.atr(len) upperBand = src + factor * atr lowerBand = src - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand int direction = na float superTrend = na prevSuperTrend = nz(superTrend[1]) if prevSuperTrend == prevUpperBand direction := close > upperBand ? 1 : -1 else direction := close < lowerBand ? -1 : 1 superTrend := direction == 1 ? lowerBand : direction == -1 ? upperBand : na superTrend f_dchannel(len) => hh = ta.highest(len) ll = ta.lowest(len) int trend = 0 trend := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(trend[1]) trend // ══════════════════════════ CORE INDICATORS ════════════════════════ ema150 = ta.ema(close, 150) ema250 = ta.ema(close, 250) hma55 = ta.hma(close, 55) [_, _, macd] = ta.macd(close, 12, 26, 9) supertrend = f_supertrend(ohlc4, sensitivity, 10) maintrend = f_dchannel(30) confBull = (ta.crossover(close, supertrend) or (ta.crossover(close, supertrend)[1] and maintrend[1] < 0)) and macd > 0 and macd > macd[1] and ema150 > ema250 and hma55 > hma55[2] and maintrend > 0 confBear = (ta.crossunder(close, supertrend) or (ta.crossunder(close, supertrend)[1] and maintrend[1] > 0)) and macd < 0 and macd < macd[1] and ema150 < ema250 and hma55 < hma55[2] and maintrend < 0 trendcloud = f_supertrend(ohlc4, periodTrendCloud == 'Long term' ? 7 : 4, 10) [_, _, adx] = ta.dmi(14, 14) consFilter = adx > 20 smartFilter = ta.ema(close, 200) volFilter = (ta.ema(volume, 25) - ta.ema(volume, 26)) / ta.ema(volume, 26) > 0 bull = (strategy == 'Normal' ? ta.crossover(close, supertrend) : confBull and not confBull[1]) and strategy != 'Trend scalper' and (smartSignalsOnly ? close > smartFilter : true) and (consSignalsFilter ? consFilter : true) and (highVolSignals ? volFilter : true) and (signalsTrendCloud ? (periodTrendCloud == 'New' ? ema150 > ema250 : close > trendcloud) : true) bear = (strategy == 'Normal' ? ta.crossunder(close, supertrend) : confBear and not confBear[1]) and strategy != 'Trend scalper' and (smartSignalsOnly ? close < smartFilter : true) and (consSignalsFilter ? consFilter : true) and (highVolSignals ? volFilter : true) and (signalsTrendCloud ? (periodTrendCloud == 'New' ? ema150 < ema250 : close < trendcloud) : true) countBull = ta.barssince(bull) countBear = ta.barssince(bear) trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0 // ══════════════════════════ SMART MONEY (FVG & Liquidity) ══════════ rsi = ta.rsi(close, 14) mfi = ta.mfi(close, 14) obv = ta.obv obv_ema = ta.ema(obv, 21) vwap = ta.vwap(close) fvg_up = high[2] < low[0] and close[1] > open[1] fvg_dn = low[2] > high[0] and close[1] < open[1] eqh = high == high[1] and high[1] > high[2] eql = low == low[1] and low[1] < low[2] smart_buy_cond = showSMC and (fvg_up[1] or eql[1]) and close > vwap and rsi > 50 and mfi > 50 and obv > obv_ema smart_sell_cond = showSMC and (fvg_dn[1] or eqh[1]) and close < vwap and rsi < 50 and mfi < 50 and obv < obv_ema if showSMC and showFVG if fvg_up box.new(bar_index[2], high[2], bar_index, low[0], border_color=color.new(color.green, 70), bgcolor=color.new(color.green, 85)) if fvg_dn box.new(bar_index[2], low[2], bar_index, high[0], border_color=color.new(color.red, 70), bgcolor=color.new(color.red, 85)) if showSMC and showLiquidity if eqh label.new(bar_index, high, 'EQH', style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small) if eql label.new(bar_index, low, 'EQL', style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small) // ══════════════════════════ SIGNAL STRENGTH ════════════════════════ signal_strength = 0 if bull signal_strength += (smart_buy_cond ? 5 : 0) + (rsi > 60 ? 1 : 0) + (mfi > 60 ? 1 : 0) + (obv > obv_ema ? 1 : 0) + (close > vwap ? 1 : 0) + (ta.crossover(macd, 0) ? 1 : 0) if bear signal_strength += (smart_sell_cond ? 5 : 0) + (rsi < 40 ? 1 : 0) + (mfi < 40 ? 1 : 0) + (obv < obv_ema ? 1 : 0) + (close < vwap ? 1 : 0) + (ta.crossunder(macd, 0) ? 1 : 0) // ══════════════════════════ SIGNAL LABELS ══════════════════════════ buy_text = signal_strength >= 8 ? '🚀 Smart Buy' : 'Buy' sell_text = signal_strength >= 8 ? '🚀 Smart Sell' : 'Sell' lbl_size = mobileMode ? size.small : size.normal if showSignals and bull label.new(bar_index, low, buy_text + '\n' + str.tostring(signal_strength) + '⭐', xloc.bar_index, yloc.belowbar, color.green, label.style_label_up, color.white, size=lbl_size) if showSignals and bear label.new(bar_index, high, str.tostring(signal_strength) + '⭐\n' + sell_text, xloc.bar_index, yloc.abovebar, color.red, label.style_label_down, color.white, size=lbl_size) // ══════════════════════════ ALERTS ════════════════════════════════ if smcAlert alertcondition(bull and signal_strength >= 8, 'Smart Buy', '✅ Smart Buy on ' + syminfo.ticker) alertcondition(bear and signal_strength >= 8, 'Smart Sell', '❌ Smart Sell on ' + syminfo.ticker) // ══════════════════════════ DASHBOARD ══════════════════════════════ if mobileMode and enableDashboard var table tbl = table.new(position.bottom_right, 1, 5, colorBackground, colorFrame, 2, colorBorder, 2) if barstate.islast table.cell(tbl, 0, 0, 'Trend: ' + (ema150 > ema250 ? '⬆️' : '⬇️'), text_color=color.white, text_size=size.small) table.cell(tbl, 0, 1, 'Signal: ' + (trigger ? 'BUY' : 'SELL'), text_color=trigger ? color.green : color.red, text_size=size.small) table.cell(tbl, 0, 2, 'Strength: ' + str.tostring(signal_strength) + '/10', text_color=color.white, text_size=size.small) table.cell(tbl, 0, 3, 'SMC: ' + (smart_buy_cond or smart_sell_cond ? 'ON' : 'OFF'), text_color=smart_buy_cond or smart_sell_cond ? color.yellow : color.gray, text_size=size.small) table.cell(tbl, 0, 4, 'Vol: ' + (Hv > avgHV ? '🔥' : '❄️'), text_color=color.white, text_size=size.small) else if enableDashboard var table fullTbl = table.new(locationDashboard == 'Top right' ? position.top_right : locationDashboard == 'Top left' ? position.top_left : locationDashboard == 'Middle right' ? position.middle_right : locationDashboard == 'Middle left' ? position.middle_left : locationDashboard == 'Bottom right' ? position.bottom_right : position.bottom_left, 2, 8, colorBackground, colorFrame, 2, colorBorder, 2) if barstate.islast table.cell(fullTbl, 0, 0, 'Strategy'), table.cell(fullTbl, 1, 0, strategy) table.cell(fullTbl, 0, 1, 'Sensitivity'), table.cell(fullTbl, 1, 1, str.tostring(sensitivity)) table.cell(fullTbl, 0, 2, 'Position'), table.cell(fullTbl, 1, 2, strategy != 'Trend scalper' ? (trigger ? 'Buy' : 'Sell') : ''), table.cell_set_bgcolor(fullTbl, 1, 2, trigger ? color.green : color.red) table.cell(fullTbl, 0, 3, 'Trend'), table.cell(fullTbl, 1, 3, ema150 > ema250 ? 'Bullish' : 'Bearish'), table.cell_set_bgcolor(fullTbl, 1, 3, ema150 > ema250 ? color.green : color.red) table.cell(fullTbl, 0, 4, 'Strength'), table.cell(fullTbl, 1, 4, str.tostring(math.abs(open - close) / (high - low) * 100, '0.0') + ' %') table.cell(fullTbl, 0, 5, 'Volume'), table.cell(fullTbl, 1, 5, obv > obv_ema ? 'Bullish' : 'Bearish'), table.cell_set_bgcolor(fullTbl, 1, 5, obv > obv_ema ? color.green : color.red) table.cell(fullTbl, 0, 6, 'Volatility'), table.cell(fullTbl, 1, 6, adx > 20 ? 'Trending' : 'Ranging') table.cell(fullTbl, 0, 7, 'Momentum'), table.cell(fullTbl, 1, 7, rsi > 50 ? 'Bullish' : 'Bearish'), table.cell_set_bgcolor(fullTbl, 1, 7, rsi > 50 ? color.green : color.red) // ══════════════════════════ SUPPORT & RESISTANCE ═══════════════════ var pivotvals = array.new_float(0) float ph = ta.pivothigh(high, 10, 10) float pl = ta.pivotlow(low, 10, 10) if ph or pl array.unshift(pivotvals, ph ? ph : pl) if array.size(pivotvals) > 20 array.pop(pivotvals) get_sr_vals(ind) => float lo = array.get(pivotvals, ind) float hi = lo int numpp = 0 for y = 0 to array.size(pivotvals) - 1 by 1 float cpp = array.get(pivotvals, y) float wdth = cpp <= lo ? hi - cpp : cpp - lo if wdth <= (ta.highest(300) - ta.lowest(300)) * 0.1 lo := cpp <= lo ? cpp : lo hi := cpp > lo ? cpp : hi numpp += 1 [hi, lo, numpp] var sr_up = array.new_float(0) var sr_dn = array.new_float(0) var sr_str = array.new_float(0) find_loc(str) => ret = array.size(sr_str) for i = ret - 1 to 0 by 1 if str <= array.get(sr_str, i) break ret := i ret check_sr(hi, lo, str) => ret = true for i = 0 to array.size(sr_up) - 1 by 1 if (array.get(sr_up, i) >= lo and array.get(sr_up, i) <= hi) or (array.get(sr_dn, i) >= lo and array.get(sr_dn, i) <= hi) if str >= array.get(sr_str, i) array.remove(sr_str, i) array.remove(sr_up, i) array.remove(sr_dn, i) ret else ret := false break ret var sr_lines = array.new_line(11, na) if enableSR if ph or pl array.clear(sr_up) array.clear(sr_dn) array.clear(sr_str) for x = 0 to array.size(pivotvals) - 1 by 1 [hi, lo, strength] = get_sr_vals(x) if check_sr(hi, lo, strength) loc = find_loc(strength) if loc < 5 and strength >= 2 array.insert(sr_str, loc, strength) array.insert(sr_up, loc, hi) array.insert(sr_dn, loc, lo) if array.size(sr_str) > 5 array.pop(sr_str) array.pop(sr_up) array.pop(sr_dn) for x = 1 to 10 by 1 line.delete(array.get(sr_lines, x)) for x = 0 to array.size(sr_up) - 1 by 1 float mid = math.round_to_mintick((array.get(sr_up, x) + array.get(sr_dn, x)) / 2) array.set(sr_lines, x + 1, line.new(x1=bar_index, y1=mid, x2=bar_index - 1, y2=mid, extend=extend.both, color=mid >= close ? color.red : color.lime, style=lineSrStyle == 'Dashed' ? line.style_dashed : lineSrStyle == 'Solid' ? line.style_solid : line.style_dotted, width=lineSrWidth)) // ══════════════════════════ CONSOLIDATION ZONES ═══════════════════ if showCons float range = ta.highest(high, lbPeriod) - ta.lowest(low, lbPeriod) float avgRange = ta.sma(range, 20) bool isConsolidating = range < avgRange * 0.6 and range < ta.atr(14) * 0.8 if isConsolidating and barstate.isconfirmed float hi = ta.highest(high, lbPeriod) float lo = ta.lowest(low, lbPeriod) if paintCons fill(plot(hi, title='', editable=false), plot(lo, title='', editable=false), color=color.new(color.blue, 70)) line.new(bar_index, hi, bar_index - lbPeriod, hi, color=color.blue, style=line.style_dashed) line.new(bar_index, lo, bar_index - lbPeriod, lo, color=color.blue, style=line.style_dashed) // ══════════════════════════ ORDER BLOCKS (LEGACY) ══════════════════ var float[] pvh1_p = array.new_float(1000, na) var int[] pvh1_t = array.new_int(1000, na) var float[] pvl1_p = array.new_float(1000, na) var int[] pvl1_t = array.new_int(1000, na) var float[] pvh2_p = array.new_float(1000, na) var int[] pvh2_t = array.new_int(1000, na) var float[] pvl2_p = array.new_float(1000, na) var int[] pvl2_t = array.new_int(1000, na) var float htcmrll_price = na var int htcmrll_time = na var float ltcmrhh_price = na var int ltcmrhh_time = na var box[] long_boxes = array.new_box() var box[] short_boxes = array.new_box() if box_ob and barstate.isconfirmed bool pvh = high < high[1] and high[1] > high[2] bool pvl = low > low[1] and low[1] < low[2] int pv1_time = bar_index[1] float pv1_high = high[1] float pv1_low = low[1] float trigger_high = bos_type == 'High and Low' ? high : math.max(open, close) float trigger_low = bos_type == 'High and Low' ? low : math.min(open, close) if pvh array.pop(pvh1_p) array.pop(pvh1_t) array.unshift(pvh1_p, pv1_high) array.unshift(pvh1_t, pv1_time) if array.size(pvh1_p) > 2 temp_pv_0 = array.get(pvh1_p, 0) temp_pv_1 = array.get(pvh1_p, 1) temp_pv_2 = array.get(pvh1_p, 2) if temp_pv_0 > temp_pv_1 for i = 0 to array.size(pvl1_t) - 1 by 1 if array.get(pvl1_t, i) < array.get(pvh1_t, 0) ltcmrhh_price := array.get(pvl1_p, i) ltcmrhh_time := array.get(pvl1_t, i) break if temp_pv_0 < temp_pv_1 and temp_pv_1 > temp_pv_2 array.pop(pvh2_p) array.pop(pvh2_t) array.unshift(pvh2_p, temp_pv_1) array.unshift(pvh2_t, array.get(pvh1_t, 1)) if pvl array.pop(pvl1_p) array.pop(pvl1_t) array.unshift(pvl1_p, pv1_low) array.unshift(pvl1_t, pv1_time) if array.size(pvl1_p) > 2 temp_pv_0 = array.get(pvl1_p, 0) temp_pv_1 = array.get(pvl1_p, 1) temp_pv_2 = array.get(pvl1_p, 2) if temp_pv_0 < temp_pv_1 for i = 0 to array.size(pvh1_t) - 1 by 1 if array.get(pvh1_t, i) < array.get(pvl1_t, 0) htcmrll_price := array.get(pvh1_p, i) htcmrll_time := array.get(pvh1_t, i) break if temp_pv_0 > temp_pv_1 and temp_pv_1 < temp_pv_2 array.pop(pvl2_p) array.pop(pvl2_t) array.unshift(pvl2_p, temp_pv_1) array.unshift(pvl2_t, array.get(pvl1_t, 1)) if trigger_high > htcmrll_price and box_sv loBox = box.new(left=array.get(pvl1_t, 0), top=math.min(high[bar_index - array.get(pvl1_t, 0)], high[bar_index - array.get(pvl1_t, 0) + 1]), right=bar_index, bottom=array.get(pvl1_p, 0), bgcolor=color.rgb(0, 255, 0, 80), border_color=color.rgb(0, 255, 0, 80), extend=extend.right) if array.size(long_boxes) >= 25 box.delete(array.shift(long_boxes)) array.push(long_boxes, loBox) htcmrll_price := na if trigger_low < ltcmrhh_price and box_sv hiBox = box.new(left=array.get(pvh1_t, 0), top=array.get(pvh1_p, 0), right=bar_index, bottom=math.max(low[bar_index - array.get(pvh1_t, 0)], low[bar_index - array.get(pvh1_t, 0) + 1]), bgcolor=color.rgb(255, 0, 0, 80), border_color=color.rgb(255, 0, 0, 80), extend=extend.right) if array.size(short_boxes) >= 25 box.delete(array.shift(short_boxes)) array.push(short_boxes, hiBox) ltcmrhh_price := na // ══════════════════════════ VOLUME PROFILE (SIMPLE) ════════════════ if eliteVP rangeHigh = ta.highest(high, 100) rangeLow = ta.lowest(low, 100) line.new(bar_index, rangeHigh, bar_index[100], rangeHigh, color=color.new(color.blue, 50), width=2) line.new(bar_index, rangeLow, bar_index[100], rangeLow, color=color.new(color.blue, 50), width=2)
امتیاز : 0 از 10
فایل ضمیمه
هیچ فایلی ضمیمه نشده است
- اطلاعات پروژه
- 20159کد پروژه
-
فروش ، بازاریابی ، سئو و دیجیتال مارکتینگ
دسته بندی - 08 مرداد 1405تاریخ ثبت
- 10 روزمهلت اجرا
- 200,000 تومانحداقل بودجه
- 500,000 تومانحداکثر بودجه
- 35 درصد ضمانت اجرا
- آماده دریافت پیشنهادها وضعیت
تایم لاین پروژه
درخواست پشتیبانی-
در انتظار پرداخت
پرداخت تعرفه ثبت پروژه های غیر رایگان
-
در حال بررسی
برسی و تایید پروژه از طرف مدیرت سایت
-
آماده دریافت پیشنهادها
تایید پروژه و نمایش برای مجریان
-
در انتظار پرداخت هزینه پروژه
پرداخت هزینه اجرای پروژه توسط کارفرما
-
در انتظار پرداخت ضمانت اجرا
پرداخت مبلغ ضمانت اجرا توسط مجری
-
در حال انجام
پروژه شما درحال انجام می باشد
-
انجام شد
اتمام اجرای پروژه
لیست پیشنهادها
در حال بارگذاری...