এই কৌশলটি ট্রেডিং সংকেত এবং ঝুঁকি নিয়ন্ত্রণের জন্য এমএ, এমএসিডি এবং এটিআর প্রযুক্তিগত সূচকগুলি ব্যবহার করে গড় বিপরীতমুখী এবং প্রবণতা অনুসরণকারী পদ্ধতিগুলিকে একত্রিত করে। মূল ধারণাটি হ'ল যখন মূল্য চলমান গড় থেকে বিচ্যুত হয় তখন বাজারের বিপরীতমুখী ধারণাগুলি ক্যাপচার করা, যা এমএসিডি ক্রসওভার সংকেত দ্বারা নিশ্চিত করা হয়, ঝুঁকি পরিচালনার জন্য এটিআর-ভিত্তিক গতিশীল স্টপ-লস বাস্তবায়ন করার সময়।
কৌশলটি একটি ত্রিগুণ যাচাইকরণ প্রক্রিয়া ব্যবহার করেঃ
এই কৌশলটি গড় বিপরীতমুখী এবং প্রবণতা অনুসরণ পদ্ধতির সংমিশ্রণ দ্বারা একটি অপেক্ষাকৃত শক্তিশালী ট্রেডিং সিস্টেম অর্জন করে। একাধিক সূচক যাচাইকরণ প্রক্রিয়া ট্রেডিং সংকেত নির্ভরযোগ্যতা উন্নত করে, যখন এটিআর গতিশীল স্টপ-লস কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে। অপ্টিমাইজেশনের জন্য কিছু জায়গা থাকা সত্ত্বেও, এটি একটি যৌক্তিকভাবে সুস্থ এবং ব্যবহারিক কৌশল কাঠামো প্রতিনিধিত্ব করে।
/*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)