Эта стратегия сочетает в себе два технических индикатора, MACD и RSI, используя сигналы MACD crossover и сигналы RSI overbought / oversold для определения сроков торговли. Между тем, стратегия также вводит взвешенную скользящую среднюю (WMA) в качестве вспомогательного решения для повышения надежности стратегии. Стратегия работает в течение 1 часа, открывая длинные позиции, когда MACD образует золотой крест, а RSI выше 50, и открывая короткие позиции, когда MACD образует смертельный крест, а RSI ниже 50. В то же время, она закрывает длинные позиции, когда RSI выше 70, и закрывает короткие позиции, когда RSI ниже 30. Кроме того, стратегия устанавливает несколько временных переменных для оценки изменений тренда в разных временных масштабах.
Основой этой стратегии является совместное использование двух технических индикаторов, MACD и RSI. MACD состоит из разницы между быстрой линией (короткосрочная скользящая средняя) и медленной линией (долгосрочная скользящая средняя), которая может отражать изменения тенденции рынка. Когда быстрая линия пересекает верхнюю линию медленной, она образует золотой крест, указывающий на восходящую тенденцию; наоборот, она образует смертельный крест, указывающий на нисходящую тенденцию. RSI - это индикатор, который измеряет состояние перекупленности и перепроданности рынка. Когда RSI выше 70, он указывает на то, что рынок перекуплен и может столкнуться с риском откат; когда RSI ниже 30, он указывает на то, что рынок перепродан и может привести к возможности отскока.
Эта стратегия сочетает в себе MACD и RSI, используя суждение о тренде MACD и суждение о перекупленности / перепроданности RSI для более точного понимания сроков торговли. В то же время стратегия также вводит взвешенную скользящую среднюю (WMA) в качестве вспомогательного суждения. WMA больше уделяет внимания недавним ценам по сравнению с обычными скользящими средними и может более чувствительно отражать изменения цен.
Кроме того, стратегия устанавливает переменные для нескольких временных рамок (например, 15 минут, 30 минут, 1 час, 2 часа и т. д.), чтобы судить о изменениях тренда в разных временных масштабах.
Эта стратегия сочетает в себе два эффективных технических индикатора, MACD и RSI, в то время как внедряет WMA в качестве вспомогательного суждения для принятия торговых решений в течение 1-часового периода времени. Логика стратегии ясна, легко понятна и реализуема, и может лучше понять рыночные тенденции и условия перекупки / перепродажи, с определенной осуществимостью. Однако стратегия также имеет некоторые ограничения и риски, такие как задержка, единый временной промежуток, отсутствие контроля рисков и т. Д. В будущем стратегия может быть улучшена с точки зрения внедрения большего количества индикаторов, непрерывных временных рамок, усиления контроля рисков, оптимизации параметров и т. Д., Чтобы повысить ее надежность и рентабельность. В целом эта стратегия обеспечивает способ мышления для количественной торговли, но все еще должна быть оптимизирована и уточнена на практике.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved MACD and RSI Trading Strategy", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.01, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // MACD 設置 fast_length = input(12, title="MACD Fast Length") slow_length = input(26, title="MACD Slow Length") signal_smoothing = input(9, title="MACD Signal Smoothing") // RSI 設置 input_rsi_length = input.int(14, title="RSI Length") input_rsi_source = input(close, "RSI Source") RSI = ta.rsi(input_rsi_source, input_rsi_length) // 計算MACD和信號線 [macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_smoothing) // 自然交易理論:利用MACD和RSI的結合 ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) maTypeInput = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings") maLengthInput = input.int(14, title="Moving Average Length", group="MA Settings") macdMA = ma(macdLine, maLengthInput, maTypeInput) // 設置交易信號 longCondition = ta.crossover(macdLine, signalLine) and macdLine > macdMA and RSI < 70 shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < macdMA and RSI > 30 // 定義時間框架 tf_15m = ta.change(RSI, 15) > 0 ? 1 : 0 tf_30m = ta.change(RSI, 30) > 0 ? 1 : 0 tf_1h = ta.change(RSI, 60) > 0 ? 1 : 0 tf_2h = ta.change(RSI, 120) > 0 ? 1 : 0 tf_4h = ta.change(RSI, 240) > 0 ? 1 : 0 tf_6h = ta.change(RSI, 360) > 0 ? 1 : 0 tf_8h = ta.change(RSI, 480) > 0 ? 1 : 0 tf_12h = ta.change(RSI, 720) > 0 ? 1 : 0 tf_1d = ta.change(RSI, 1440) > 0 ? 1 : 0 // 設置開倉、平倉和空倉條件 if (longCondition and tf_1h and RSI > 50) strategy.entry("Long", strategy.long) if (shortCondition and tf_1h and RSI < 50) strategy.entry("Short", strategy.short) if (tf_1h and RSI > 70) strategy.close("Long") if (tf_1h and RSI < 30) strategy.close("Short") // 加入其他策略 // 定義加權平均價格 wma(source, length) => wma = 0.0 sum = 0.0 sum_wts = 0.0 for i = 0 to length - 1 wts = (length - i) * (length - i) sum := sum + source[i] * wts sum_wts := sum_wts + wts wma := sum / sum_wts wmaLength = input.int(20, title="WMA Length", group="Other Strategies") wmaValue = wma(close, wmaLength) // 設置交易信號 longWMACondition = close > wmaValue shortWMACondition = close < wmaValue if (longWMACondition and tf_1h and RSI > 50) strategy.entry("Long WMA", strategy.long) if (shortWMACondition and tf_1h and RSI < 50) strategy.entry("Short WMA", strategy.short) if (tf_1h and RSI > 70) strategy.close("Long WMA") if (tf_1h and RSI < 30) strategy.close("Short WMA") // 繪製MACD和RSI plot(macdLine, color=color.blue, title="MACD Line") plot(signalLine, color=color.red, title="Signal Line")