
Diese Strategie verwendet eine Kombination aus Moving Averages, Preisformeln und Handelsvolumen, um die Wendepunkte des Marktes zu identifizieren. Wenn ein schneller Moving Average einen schnelleren Moving Average durchbricht und mehrere Absorptionsformen auftreten, die Widerstandslage durchbrechen und die Handelsmenge erhöhen, wird die Strategie ausgeführt. Im Gegensatz dazu wird die Strategie leer, wenn ein schneller Moving Average unter dem schnellen Moving Average durchbricht und eine leere Absorptionsform auftritt, die die Unterstützung überschreitet und die Handelsmenge erhöht.
Die Kernidee dieser Strategie besteht darin, eine Kombination aus einem Gleichgewichtssystem, einer Preisform und einer Quantitativkraft zu verwenden, um potenzielle Wendepunkte zu identifizieren. Insbesondere kann ein Goldkreuz und ein Todkreuz in einer Gleichgewichtstrend eine Trendwende bestimmen. Die beiden Preisformaten Mehrkopf- und Leerkopf-Schlucken deuten normalerweise auf eine kurzfristige Umkehr hin.
Aus Sicht der Code-Logik wird zunächst der schnelle Moving Average und der langsame Moving Average berechnet. Danach werden die Kriterien für den Mehrkopf-Sopplung und den Leerkopf-Sopplung festgelegt. Gleichzeitig werden die Kriterien für die Unterstützung der Resistenz und der Erhöhung des Handelsvolumens festgelegt.
Der größte Vorteil dieser Strategie besteht darin, dass eine Kombination von mehreren Signalen zur Identifizierung von Umkehrungen verwendet werden kann, was eine effektive Reduzierung von Falschsignalen ermöglicht. Insbesondere kann es leicht sein, falsche Handelssignale zu erzeugen, wenn man sich nur auf eine einzelne Durchschnittslinie, Preisform oder Quantität verlässt.
Außerdem nutzt die Strategie sowohl Trend als auch Umkehrfaktoren. Der Trend muss vorhanden sein, bevor ein Umkehrsignal auftritt. Das heißt, die Strategie sucht nur nach Umkehrmöglichkeiten im Trendkontext.
Die größte Gefahr dieser Strategie besteht darin, dass die Umkehrung fehlschlägt, d.h. der Preis geht weiter nach unten, nachdem mehrere Signale ausgegeben wurden; oder der Preis steigt weiter nach oben, nachdem ein Fehlsignal ausgegeben wurde. Dies ist in der Regel aufgrund von Fehleinschätzungen, die darauf hindeuten, dass die Umkehrung nur ein Falschbild oder nur eine kurzfristige Anpassung ist, die den ursprünglichen Trend fortsetzt.
Die Lösung besteht darin, die Parameter der Durchschnittslinie anzupassen, um Trends in längeren Zyklen zu identifizieren. Die Stop-Loss-Grenze sollte entsprechend erhöht werden, um den Verlust nach dem Scheitern der Umkehrung rechtzeitig zu stoppen. Darüber hinaus können weitere Faktoren kombiniert werden, um die Umkehrung zu bestätigen, z. B. die Preisform der großen Zyklen.
Diese Strategie kann durch folgende Aspekte optimiert werden:
Anpassung der Mittellinieparameter zur Identifizierung geeigneter Lang- und Kurzperioden.
Verschiedene Algorithmen für die Unterstützung von Widerstandsbits, wie z. B. die Pareto-Unterstützung von Widerstandsbits, werden getestet.
Versuchen Sie mit verschiedenen Handelsvolumenindikatoren, wie z. B. Energiemarge-Indikatoren, Handelsvolumen-Schwankungsindikatoren usw.
Es wurden weitere Hinweise auf die Bestätigung der Umkehrung hinzugefügt, wie z. B. die langfristige Preisentwicklung, die starke Zunahme der Transaktionsmengen usw.
In Kombination mit Aktienindex-Futures zur Markterkennung und mit Aktienindex-Futures zur Bestätigung der Umkehrung einzelner Aktien.
Durch das Testen verschiedener Kombinationen von Parametern kann diese Strategie weiter optimiert werden, was zu höheren Gewinnraten und Gewinnraten führt.
Diese Strategie integriert drei Faktoren zur Identifizierung von Reverses: die Gleichgewichtung, die Preisform und die Handelsmenge. Sie ermöglicht eine effektive Kombination von mehreren Signalen. Sie sucht nur nach Reverses im Kontext von Trends und vermeidet zufällige Geschäfte. Durch die weitere Optimierung der Parameter und die Erhöhung der Bestätigungsfaktoren kann diese Strategie zu einer sehr praktischen Kurzrevers-Strategie werden.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Profit Table Strategy", overlay=true)
// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
takeProfitPercent = input(1, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100
trailingStopPercent = input(1, title="Trailing Stop (%)") / 100
// Price action conditions
bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1]
bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1]
// Support and resistance levels
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")
// Volume conditions
volumeCondition = volume > ta.sma(volume, 20)
// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// Buy condition
buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition
// Sell condition
sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition
// Strategy logic
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=sellCondition)
// Calculate take profit, stop loss, and trailing stop levels
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent)
trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent)
// Plotting levels on the chart
plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level")
plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level")
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level")
plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level")
// Plotting buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)