
Überblick
Die Strategie verwendet eine doppelte EMA-Gleichlautkreuzung als Handelssignal, mit einer Schnelllinie-Periode von 65 und einer Schnelllinie-Periode von 240. Die Strategie verwendet den Umsatz als Filterbedingung und handelt nur dann, wenn der aktuelle Umsatz größer als der angegebene Tiefstand ist. Die Strategie setzt für jeden Handel einen festen Risikobetrag von 10 US-Dollar fest und berechnet die Positionsgröße dynamisch nach dem Risikobetrag.
Strategieprinzip
- Berechnen Sie die beiden EMA-Mittellinien mit einer Schnelllinie (fast) von 65 und einer langsamen Linie (slow) von 240.
- Beurteilen Sie, ob ein bullisher oder ein bearisher Crossover stattfindet.
- Setzen Sie einen Volume-Threshold, um nur dann zu handeln, wenn der aktuelle Volumen größer ist als dieser Threshold.
- Setzen Sie den festen Risikobetrag pro Handel auf $10 .
- Positionsgröße berechnet anhand von Risikobetrag und Stop-Loss-Distanz.
- Wenn ein Mehrkopfkreuzung auftritt und der Umsatz die Bedingungen erfüllt, wird eine Überposition eröffnet, wobei die Stop-Loss-Bewertung \( 100 unter dem Eröffnungspreis und die Stop-Loss-Bewertung \) 1500 über dem Eröffnungspreis festgelegt ist.
- Wenn ein Leerlaufkreuzung auftritt und die Umsätze die Bedingungen erfüllen, wird die Position freigegeben, der Stop-Loss wird auf \( 100 über dem Eröffnungspreis und der Stop-Loss auf \) 1500 unter dem Eröffnungspreis gesetzt.
Strategische Vorteile
- Die Doppel-Even-Linien-Kreuzung kann die Markttrends besser erfassen, die 65⁄240-Perioden-Kombination kann den Großteil des Rausches filtern und nur die wichtigsten Trends berücksichtigen.
- Die Einführung von Volumenfilterbedingungen verhindert den Handel bei niedrigem Volumen und verringert das Risiko von Marktschwankungen.
- Positionsmanagement mit festen Risikobeträgen ermöglicht eine effektive Kontrolle der Risikoplätze für jeden Handel und verhindert, dass ein einzelner Handel zu viel verliert.
- Die dynamischen Stop-Loss- und Stop-Stopp-Einstellungen basierend auf der Preisentfernung können den Gewinnraum größer als den Verlustraum machen und so die langfristige Performance der Strategie verbessern.
- Es ist geeignet für hochflüchtige Varianten wie BTC/USD, um die Investitionsmöglichkeiten, die durch ihre Volatilität entstehen, vollständig zu erfassen.
Strategisches Risiko
- Die EMA ist ein Trend-Tracking-Indikator, der bei einer Trendwende mit Verzögerungen konfrontiert ist, was zu einem verzögerten Eintritt oder einem verzögerten Ausstieg führen kann.
- Die Risikobeträge können sich nicht dynamisch an Marktschwankungen anpassen und in Extremsituationen (z. B. bei Sturm und Sturz) schlecht abschneiden.
- Die Einstellung der Lieferungsmenge ist subjektiv, und die falsche Einstellung der Mengen kann die Strategie beeinträchtigen.
- Die festen Einstellungen für Stop-Loss- und Stop-Off-Bereiche können nicht mit den tatsächlichen Marktbewegungen übereinstimmen, was zu häufigen Stop-Loss- oder Stop-Off-Bereichen führt.
- Die Strategie kann in einem wackligen Umfeld schlecht abschneiden, und häufige Kreuzungen können zu einer Reihe von Verlustgeschäften führen.
Richtung der Strategieoptimierung
- Erwägen Sie die Einführung von mehr Gleichschaltgruppen als Filterbedingungen, wie z. B. die Einbeziehung von mittleren Gleichschaltungen und die Einrichtung von Mehrfachgleichschaltungen, um die Signalzuverlässigkeit zu verbessern.
- Optimierte Positionsmanagement-Methoden, wie die dynamische Anpassung von Positionen an verschiedene Marktsituationen, z. B. die Anwendung der Prozentrisikometrie oder der Kelly-Formel.
- Parameteroptimierung der Transaktionsmengen-Thresholds, um die optimale Threshold-Einstellung zu finden, um die Strategie-Stabilität zu verbessern.
- Optimierung der Stop-Loss-Position-Einstellungen, die in Echtzeit an die neuesten Marktschwankungen angepasst werden können, um die Flexibilität zu erhöhen, die dem Markt entspricht.
- In der Trendmethode werden bestimmte Sicherungselemente hinzugefügt, wie z. B. die Unterstützung von Gegen-Trend-Indikatoren wie PSAR, um die Reaktionsfähigkeit von Marktschocks zu verbessern.
Zusammenfassen
Die Strategie nutzt 65⁄240-Doppel-Gleichgewichts-Kreuzung als Grundlage für die Trend-Ermittlung, während die Kombination von Umsatz-Filterbedingungen zur Verbesserung der Signalsicherheit. Die feste Risikopositionsverwaltung und die Festpreis-Stop-Loss-Stillstellung können das Risiko bis zu einem gewissen Grad kontrollieren und die Verlustquote in die günstige Richtung lenken. Die Strategie hat jedoch auch Probleme mit der Trend-Griff-Relativität, der unzureichenden Flexibilität der Positionsverwaltung, der fehlenden dynamischen Anpassung der Stop-Loss-Stillungen.
Strategiequellcode
/*backtest
start: 2024-05-06 00:00:00
end: 2024-05-13 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 1:3 RR, Volume Filter, and Custom Stop Loss/Take Profit (BTC)", overlay=true, currency="USD", initial_capital=100)
// Define EMA lengths
ema_length_fast = 65
ema_length_slow = 240
// Calculate EMAs
ema_fast = ta.ema(close, ema_length_fast)
ema_slow = ta.ema(close, ema_length_slow)
// Define crossover conditions
bullish_crossover = ta.crossover(ema_fast, ema_slow)
bearish_crossover = ta.crossunder(ema_fast, ema_slow)
// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")
// Define volume filter
volume_threshold = 1000 // Adjust as needed
// Define risk amount per trade
risk_per_trade = 0.5 // $10 USD
// Calculate position size based on risk amount
stop_loss_distance = 100
take_profit_distance = 1500
position_size = risk_per_trade / syminfo.mintick / stop_loss_distance
// Execute trades based on crossovers and volume filter
if (bullish_crossover and volume > volume_threshold)
strategy.entry("Buy", strategy.long, qty=position_size)
strategy.exit("Exit", "Buy", stop=close - stop_loss_distance, limit=close + take_profit_distance)
if (bearish_crossover and volume > volume_threshold)
strategy.entry("Sell", strategy.short, qty=position_size)
strategy.exit("Exit", "Sell", stop=close + stop_loss_distance, limit=close - take_profit_distance)