Diese Strategie kombiniert zwei technische Indikatoren, MACD und RSI, und verwendet MACD-Crossover-Signale und RSI-Überkauf-/Überverkaufssignale, um den Handelszeitpunkt zu bestimmen. Inzwischen führt die Strategie auch den gewichteten gleitenden Durchschnitt (WMA) als Hilfsurteil ein, um die Zuverlässigkeit der Strategie zu verbessern. Die Strategie läuft in einem Zeitrahmen von 1 Stunde, indem lange Positionen geöffnet werden, wenn der MACD ein goldenes Kreuz bildet und der RSI über 50 liegt, und kurze Positionen geöffnet werden, wenn der MACD ein Todeskreuz bildet und der RSI unter 50 liegt. Gleichzeitig schließt sie lange Positionen, wenn der RSI über 70 liegt und schließt kurze Positionen, wenn der RSI unter 30 liegt. Darüber hinaus setzt die Strategie mehrere Zeiträume fest, um Trendänderungen in verschiedenen Zeitskalen zu beurteilen.
Der Kern dieser Strategie besteht aus der Kombination von zwei technischen Indikatoren, MACD und RSI. Der MACD besteht aus der Differenz zwischen der schnellen Linie (kurzfristiger gleitender Durchschnitt) und der langsamen Linie (langfristiger gleitender Durchschnitt), die Markttrendänderungen widerspiegeln kann. Wenn die schnelle Linie über die langsame Linie geht, bildet sie ein goldenes Kreuz, das einen Aufwärtstrend anzeigt; umgekehrt bildet sie ein Todeskreuz, das einen Abwärtstrend anzeigt. Der RSI ist ein Indikator, der den überkauften und überverkauften Zustand des Marktes misst. Wenn der RSI über 70 liegt, zeigt er an, dass der Markt überkauft ist und einem Pullback-Risiko ausgesetzt sein kann; wenn der RSI unter 30 liegt, zeigt er an, dass der Markt überverkauft ist und eine Rebound-Chance einlädt.
Diese Strategie kombiniert MACD und RSI und verwendet MACDs Trendbeurteilung und RSI's Überkauf/Überverkauf Beurteilung, um den Handelszeitpunkt genauer zu erfassen. Gleichzeitig führt die Strategie auch den gewichteten gleitenden Durchschnitt (WMA) als Hilfsbeurteilung ein. WMA legt mehr Wert auf die jüngsten Preise im Vergleich zu gewöhnlichen gleitenden Durchschnitten und kann Preisschwankungen sensibler widerspiegeln.
Darüber hinaus setzt die Strategie Variablen für mehrere Zeitrahmen (z. B. 15 Minuten, 30 Minuten, 1 Stunde, 2 Stunden usw.) fest, um Trendveränderungen in verschiedenen Zeitskalen zu beurteilen.
Diese Strategie kombiniert zwei effektive technische Indikatoren, MACD und RSI, während die Einführung von WMA als Hilfsurteil für Handelsentscheidungen in einem 1-Stunden-Zeitrahmen. Die Strategie Logik ist klar, leicht zu verstehen und umzusetzen, und kann Markttrends und Überkauft/Überverkauft Bedingungen, mit einer gewissen Machbarkeit besser zu erfassen. Allerdings hat die Strategie auch einige Einschränkungen und Risiken, wie Verzögerung, einzelne Zeitrahmen, Mangel an Risikokontrolle, etc. In Zukunft kann die Strategie verbessert werden, in Bezug auf die Einführung von mehr Indikatoren, kontinuierliche Zeitrahmen, die Stärkung der Risikokontrolle, Parameteroptimierung, etc., um seine Robustheit und Rentabilität zu verbessern. Insgesamt bietet diese Strategie eine Denkweise für den quantitativen Handel, aber noch optimiert und in der Praxis verfeinert werden muss.
/*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")