Diese Strategie kauft den Abstieg und macht Gewinn für eine hohe Gewinnrate, indem sie die Preistiefststände dynamisch verfolgt, lange nach dem Preisverfall weitergeht und Gewinne erzielt und Risiken durch adaptive Gewinn- und Stop-Loss-Kontrolle kontrolliert.
Die Kernlogik dieser Strategie besteht darin, den ATR-Indikator zu verwenden, um dynamische Take-Profit- und Stop-Loss-Positionen zu berechnen. Insbesondere wird ein Long-Signal ausgelöst, wenn der Schlusskurs unter dem niedrigsten Tief der letzten n Tage liegt (im Code auf 7 Tage festgelegt); während der Long-Positionen werden die Take-Profit- und Stop-Loss-Preise dynamisch auf der Grundlage des ATR-Indikators (durch ATR-Multiplikate festgelegt) berechnet und in Echtzeit auf dem Diagramm angezeigt. Profittaking oder Risikokontrolle kann erreicht werden, wenn der Preis die Take-Profit- oder Stop-Loss-Punkte erreicht.
Die Strategie kombiniert den einfachsten Kauf-Dip-Ansatz mit der Idee eines dynamischen Stop-Loss/Take-Profit, um Chancen rechtzeitig zu nutzen und gleichzeitig Risiken zu kontrollieren.
Die wichtigsten Vorteile dieser Strategie sind:
Die Verwendung dynamischer ATR-Indikatoren zur Einstellung von Stop Loss und Take Profit kann die Gewinn/Verlust-Level basierend auf der Marktvolatilität anpassen, unnötige Verluste vermeiden oder größere Gewinnchancen aufgrund von übermäßig festgelegten Stop Loss/Profit Taking verpassen. Dies ist das größte Highlight der Strategie.
Bei Kauf-Dip-Strategien sind die Gewinnraten während der Marktkonsolidierung tendenziell höher, wenn die Preise abnormal unter die Unterstützungsniveaus sinken und sich wahrscheinlich wieder erholen.
Die Schätzung der Gewinn-/Stopp-Verlustquoten anhand der ATR-Werte ist angemessen und kann flexibel anhand der Marktbedingungen und der persönlichen Risikobereitschaft festgelegt werden.
Die Code-Logik ist einfach und klar, leicht verständlich. Die Parameter-Einstellungen sind auch intuitiv. Sie eignet sich als beispielhafte Lernstrategie.
Die wichtigsten Risiken dieser Strategie sind:
Es besteht die Gefahr, dass die Gewinnerwartungen nicht erfüllt werden. Dies kann durch Anpassung der ATR-Parameter, um verschiedene Gewinnbereiche zu setzen, behoben werden.
Das Risiko, in Verluste zu geraten, wenn die Preise die Unterstützungen durchbrechen und weiter fallen, was zu einem größeren Verlust führt.
Die ATR-Multiplikatoren sollten locker eingestellt werden, um unnötige Stop-Outs zu vermeiden.
Rücktest Risiken für eine Überanpassung: Die Prüfung unter verschiedenen Marktbedingungen ist notwendig, wobei die richtigen Schlupf-/Ausgangseinstellungen vorhanden sind.
Die Strategie kann in folgenden Aspekten verbessert werden:
Optimierung des Unterstützungsniveaus und der Signalbestimmung.
Optimierung der Positionsgrößenregeln. Dynamische Anpassung der Positionsgrößen basierend auf der Marktvolatilität usw.
Implementieren Sie ein Stop-Loss-Modul, um einen Teilgewinn zu erzielen.
Hinzufügen von Zusammenflussfiltern: Lange Eingabe nur, wenn der entsprechende Sektor/der breite Markt ebenfalls Unterstützung erreicht, um die Signalzuverlässigkeit zu überprüfen.
Diese Strategie erfasst durch den Kauf von Dips Chancen für die Umkehrung der Mittelwerte, mit Take Profit/Stop Loss zur Risikokontrolle.
/*backtest start: 2022-11-16 00:00:00 end: 2023-11-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © racer8 //@version=4 strategy("Buy-The-Dip", overlay=true) atn = input(15, "ATR Period") atr = sma(tr,atn)[1] bought = strategy.position_size[0] > strategy.position_size[1] slm = input(2.0,"ATR SL Multiple",minval=0) StopPrice = strategy.position_avg_price - slm*atr // determines stop loss's price FixedStopPrice = valuewhen(bought,StopPrice,0) // stores original StopPrice plot(FixedStopPrice,"Stop Loss",color=color.red,linewidth=2,style=plot.style_cross) tpm = input(1.0,"ATR TP Multiple",minval=0) TakePrice = strategy.position_avg_price + tpm*atr // determines Take Profit's price FixedTakePrice = valuewhen(bought,TakePrice,0) // stores original TakePrice plot(FixedTakePrice,"Take Profit",color=color.green,linewidth=2,style=plot.style_cross) nn = input(7,"Channel Length") ll = lowest(low,nn) if close<ll[1] strategy.entry("Buy",strategy.long) if strategy.position_size > 0 strategy.exit(id="XL SL", stop=FixedStopPrice, limit=FixedTakePrice) // commands stop loss order to exit! plot(ll,color=color.orange)