Wenn der kurzfristige gleitende Durchschnitt (9-Tage-MA) über den längerfristigen gleitenden Durchschnitt (15-Tage-MA) kreuzt, deutet dies auf eine stärkere kurzfristige Aufwärtsdynamik hin, um lang zu gehen. Wenn der kurzfristige MA unter den langfristigen MA kreuzt, signalisiert er eine stärkere kurzfristige Abwärtsdynamik, um kurz zu gehen. Darüber hinaus muss der Winkel des MA größer als 30 Grad sein, um eine ausreichende Aufwärts- oder Abwärtsleistung zu gewährleisten.
Diese Strategie kombiniert gleitende Durchschnittsindikatoren und Intraday-Candlestick-Muster, um Geräusche effektiv auszufiltern und Handelssignale zuverlässiger zu machen. Besonders mit der Winkelschwelle stellt sie sicher, dass vor der Erzeugung von Signalen genügend Kursänderungsmomentum besteht und unnötige falsche Signale vermieden werden. Außerdem können die Stop-Loss- und Take-Profit-Levels automatisch den maximalen Verlust und die Gewinnentnahme begrenzen. Diese Maßnahmen verbessern sowohl die Stabilität als auch die Rentabilität.
Der gleitende Durchschnitt kann mittelfristige bis langfristige Preistrends erfassen. Die Intraday-Candlesticks spiegeln den Leistungsvergleich von kurzfristigen Marktteilnehmern wider.
Zu den wichtigsten Risiken dieser Strategie gehören:
Das Risiko eines falschen Ausbruchs. Während der Marktkonsolidierung können gleitende Durchschnitte mehrere Kreuzungen haben, von denen die meisten falsche Signale sind. Wenn Sie hier geschlagen werden, würden Sie Verluste erleiden. Die Kerzenmuster und Winkelbedingungen können dieses Risiko mindern.
Parameteroptimierungsrisiko. Verschiedene Märkte passen sich unterschiedlich an Parameter-Einstellungen an. Die direkte Anwendung eines Parameter-Satzes ohne Anpassung kann zu Verlusten führen. Richtige Parameter müssen durch Backtesting und Papierhandel gefunden werden.
Im Allgemeinen kann diese Strategie einige falsche Signale erzeugen und ohne Berücksichtigung der Marktbedingungen hohe/niedrige Risiken verfolgen.
Die folgenden Aspekte dieser Strategie können weiter verbessert werden:
Hinzufügen einer Analyse der wichtigsten Trends, z. B. Bestätigen von mittelfristigen/langfristigen Kanälen, um Trends nicht zu ignorieren.
Die Analyse der Fundamentaldaten kombinieren und Aktien mit besseren Aussichten und Erträgen auswählen, um die Gewinnrate zu verbessern.
Test-Stop-Loss-/Take-Profit-Parameter. Setzen Sie die Rabattquoten des Auftragsbuchs basierend auf den Rücktestresultaten, um ein optimales Risiko-Rendite-Verhältnis zu erzielen.
Die oben genannten Optimierungsrichtungen sollten sowohl die Rentabilität als auch die Stabilität dieser Strategie erheblich verbessern.
Der nächste Schritt besteht darin, die Gewinnrate und die Rentabilität durch Parameteroptimierung weiter zu verbessern. Das Hinzufügen von mehr Indikatoren kann auch die Robustheit stärken.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true) // Define input parameters fast_length = input(9, "Fast MA Length") slow_length = input(15, "Slow MA Length") stop_loss_percent = input(0.25, "Stop Loss (%)") target_percent = input(0.25, "Target (%)") angle_threshold = input(30, "Angle Threshold (degrees)") // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Define candlestick patterns is_pin_bar() => pin_bar = abs(open - close) > 2 * abs(open[1] - close[1]) high_tail = max(open, close) - high > abs(open - close) * 1.5 low_tail = low - min(open, close) > abs(open - close) * 1.5 pin_bar and high_tail and low_tail is_marubozu() => marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75 no_upper_shadow = high == max(open, close) no_lower_shadow = low == min(open, close) marubozu and no_upper_shadow and no_lower_shadow is_full_body() => full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95 full_body // Plot moving averages plot(fast_ma, color=color.blue, title="Fast MA") plot(slow_ma, color=color.red, title="Slow MA") // Calculate angle of slow moving average ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159)) // Generate buy/sell signals based on angle condition and candlestick patterns buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body()) sell_signal = crossunder(fast_ma, slow_ma) // Calculate stop-loss and target levels stop_loss_level = close * (1 - stop_loss_percent / 100) target_level = close * (1 + target_percent / 100) // Execute trades based on signals with stop-loss and target strategy.entry("Buy", strategy.long, when=buy_signal) strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level) // Plot buy/sell signals on chart (optional) plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Plot angle line hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)