یہ حکمت عملی ایک رجحان پر عمل کرنے والا تجارتی نظام ہے جو متعدد تکنیکی اشارے کو یکجا کرتا ہے ، مارکیٹ کے رجحانات کی نشاندہی کرنے کے لئے ایم اے سی ڈی ، آر ایس آئی ، آر وی آئی ، ای ایم اے ، اور حجم کی تصدیق کے کراس سگنل کا استعمال کرتا ہے ، جس میں رسک مینجمنٹ کے لئے ٹریلنگ اسٹاپس ہوتے ہیں۔ یہ حکمت عملی مخصوص قیمت کی حدوں میں کام کرتی ہے اور تجارتی درستگی اور وشوسنییتا کو بہتر بنانے کے لئے متعدد سگنل کے مجموعے کا استعمال کرتی ہے۔
اس حکمت عملی میں کئی اہم اجزاء کے ساتھ ایک کثیر پرت سگنل کی توثیق کا طریقہ کار استعمال کیا جاتا ہے۔ سب سے پہلے ، یہ مارکیٹ کے مجموعی رجحانات کا تعین کرنے کے لئے 20 پیریڈ اور 200 پیریڈ کے ایکسپونینشل موونگ میڈیز (ای ایم اے) کا استعمال کرتا ہے۔ دوسرا ، یہ رجحان موڑ کے مقامات پر قبضہ کرنے کے لئے ایم اے سی ڈی اشارے (12,26,9) کراس اوورز کا استعمال کرتا ہے۔ تیسرا ، یہ زیادہ خرید / زیادہ فروخت کی شرائط کی تصدیق کے لئے رشتہ دار طاقت انڈیکس (آر ایس آئی) اور رشتہ دار اتار چڑھاؤ انڈیکس (آر وی آئی) کا استعمال کرتا ہے۔ آخر میں ، یہ حجم کے اشارے کے ذریعہ تجارت کی توثیق کرتا ہے۔ خرید کی شرائط کو بیک وقت اطمینان کی ضرورت ہوتی ہے: ایم اے سی ڈی گولڈن کراس ، آر ایس آئی 70 سے نیچے ، آر وی آئی 0 سے اوپر ، دونوں ای ایم اے سے اوپر کی قیمت ، اور کم سے کم حجم کی ضروریات۔ فروخت کی شرائط اس کے برعکس ہیں۔ حکمت عملی میں متحرک اسٹاپ نقصان کی ایڈجسٹمنٹ کے ذریعے
یہ حکمت عملی متعدد تکنیکی اشارے کے امتزاج کے ذریعے نسبتا complete مکمل تجارتی نظام تیار کرتی ہے۔ اگرچہ اس کی کچھ حدود ہیں ، لیکن حکمت عملی کے پاس معقول پیرامیٹر کی اصلاح اور رسک مینجمنٹ کے ذریعے عملی قدر ہے۔ استحکام اور منافع کو بڑھانے کے لئے زیادہ موافقت پذیر میکانزم اور رسک کنٹرول اقدامات متعارف کرانے سے مستقبل میں بہتری لائی جاسکتی ہے۔
/*backtest start: 2024-10-27 00:00:00 end: 2024-11-26 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD/RSI/RVI/EMA20-200/Volume BTC Auto Trading Bot", overlay=true, margin_long=100, margin_short=100) // Parámetros de EMA ema20Length = input(20, title="EMA 20 Length") ema200Length = input(200, title="EMA 200 Length") // Parámetros de MACD macdFastLength = input(12, title="MACD Fast Length") macdSlowLength = input(26, title="MACD Slow Length") macdSignalSmoothing = input(9, title="MACD Signal Smoothing") // Parámetros de RSI y RVI rsiLength = input(14, title="RSI Length") rviLength = input(14, title="RVI Length") // Volumen mínimo para operar minVolume = input(100, title="Min Volume to Enter Trade") // Rango de precios de BTC entre 60k y 80k minPrice = 60000 maxPrice = 80000 // Rango de precios BTC inPriceRange = close >= minPrice and close <= maxPrice // Cálculo de las EMAs ema20 = ta.ema(close, ema20Length) ema200 = ta.ema(close, ema200Length) plot(ema20, color=color.green, title="EMA 20") plot(ema200, color=color.red, title="EMA 200") // Cálculo del MACD [macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing) macdHist = macdLine - signalLine plot(macdLine, color=color.blue, title="MACD Line") plot(signalLine, color=color.orange, title="Signal Line") hline(0, "MACD Zero Line", color=color.gray) plot(macdHist, style=plot.style_histogram, color=(macdHist >= 0 ? color.green : color.red), title="MACD Histogram") // Cálculo del RSI rsi = ta.rsi(close, rsiLength) hline(70, "RSI Overbought", color=color.red) hline(30, "RSI Oversold", color=color.green) plot(rsi, color=color.purple, title="RSI") // Cálculo del RVI numerator = (close - open) + 2 * (close[1] - open[1]) + 2 * (close[2] - open[2]) + (close[3] - open[3]) denominator = (high - low) + 2 * (high[1] - low[1]) + 2 * (high[2] - low[2]) + (high[3] - low[3]) rvi = ta.sma(numerator / denominator, rviLength) plot(rvi, color=color.blue, title="RVI") // Volumen volumeCondition = volume > minVolume // Condiciones de compra bullishCondition = ta.crossover(macdLine, signalLine) and rsi < 70 and rvi > 0 and close > ema20 and close > ema200 and inPriceRange and volumeCondition // Condiciones de venta bearishCondition = ta.crossunder(macdLine, signalLine) and rsi > 30 and rvi < 0 and close < ema20 and close < ema200 and inPriceRange and volumeCondition // Configuración del trailing stop loss trail_stop = input(true, title="Enable Trailing Stop") trail_offset = input.float(0.5, title="Trailing Stop Offset (%)", step=0.1) // Funciones para la gestión del Trailing Stop Loss if (bullishCondition) strategy.entry("Buy", strategy.long) var float highestPrice = na highestPrice := na(highestPrice) ? high : math.max(high, highestPrice) strategy.exit("Trailing Stop", "Buy", stop=highestPrice * (1 - trail_offset / 100)) if (bearishCondition) strategy.entry("Sell", strategy.short) var float lowestPrice = na lowestPrice := na(lowestPrice) ? low : math.min(low, lowestPrice) strategy.exit("Trailing Stop", "Sell", stop=lowestPrice * (1 + trail_offset / 100)) plotshape(bullishCondition, title="Buy Signal", location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text="BUY") plotshape(bearishCondition, title="Sell Signal", location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text="SELL")