یہ حکمت عملی تجارتی سگنل اور رسک کنٹرول پیدا کرنے کے لئے ایم اے ، ایم اے سی ڈی ، اور اے ٹی آر تکنیکی اشارے کا استعمال کرتے ہوئے ، اوسط ریورس اور رجحان کے بعد کے طریقوں کو جوڑتی ہے۔ بنیادی تصور یہ ہے کہ جب قیمتیں چلتی اوسط سے انحراف کرتی ہیں تو مارکیٹ کی تبدیلیوں کو پکڑنا ہے ، جس کی تصدیق ایم اے سی ڈی کراس اوور سگنلز کے ذریعہ ہوتی ہے ، جبکہ خطرے کے انتظام کے لئے اے ٹی آر پر مبنی متحرک اسٹاپ نقصان کو نافذ کرنا۔
اسٹریٹیجی میں تین قسم کی تصدیق کا طریقہ کار استعمال کیا گیا ہے:
یہ حکمت عملی اوسط ریورس اور رجحان کے بعد کے طریقوں کو جوڑ کر نسبتا rob مضبوط تجارتی نظام حاصل کرتی ہے۔ متعدد اشارے کی توثیق کا طریقہ کار تجارتی سگنل کی وشوسنییتا کو بڑھا دیتا ہے ، جبکہ اے ٹی آر متحرک اسٹاپ نقصان مؤثر طریقے سے خطرے کو کنٹرول کرتا ہے۔ اصلاح کے لئے کچھ گنجائش کے باوجود ، یہ منطقی طور پر صحت مند اور عملی حکمت عملی کے فریم ورک کی نمائندگی کرتا ہے۔
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion Strategy with ATR, MACD and MA", overlay=true) // === Настройки для индикаторов === // Параметры скользящей средней (MA) maLength = input.int(30, title="Период скользящей средней (MA)") maType = input.string("EMA", title="Тип скользящей средней", options=["SMA", "EMA"]) // Параметры ATR atrLength = input.int(10, title="Период ATR") atrMultiplier = input.float(10, title="ATR множитель для стоп-лосса") // Параметры MACD macdFastLength = input.int(8, title="Период быстрой EMA для MACD") macdSlowLength = input.int(26, title="Период медленной EMA для MACD") macdSignalLength = input.int(5, title="Период сигнальной линии MACD") // === Рассчёт индикаторов === // Скользящая средняя ma = if maType == "SMA" ta.sma(close, maLength) else ta.ema(close, maLength) // ATR (Средний истинный диапазон) atr = ta.atr(atrLength) // MACD [macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength) // Условия для входа на покупку и продажу longCondition = ta.crossover(macdLine, signalLine) and close < ma shortCondition = ta.crossunder(macdLine, signalLine) and close > ma // === Управление позициями === if (longCondition) strategy.entry("Buy", strategy.long) // Стоп-лосс на основе ATR stopLossLevel = close - atr * atrMultiplier strategy.exit("Take Profit/Stop Loss", "Buy", stop=stopLossLevel) if (shortCondition) strategy.entry("Sell", strategy.short) // Стоп-лосс на основе ATR stopLossLevel = close + atr * atrMultiplier strategy.exit("Take Profit/Stop Loss", "Sell", stop=stopLossLevel) // Визуализация plot(ma, title="MA", color=color.blue, linewidth=2) plot(macdLine, title="MACD Line", color=color.green) plot(signalLine, title="Signal Line", color=color.red) hline(0, "Zero Line", color=color.gray)