Stop-Loss- und Take-Profit-Strategie basierend auf dem Doji-Muster

Schriftsteller:ChaoZhang, Datum: 2024-02-02 17:17:38
Tags:

img

Übersicht

Diese Strategie basiert auf dem Doji-Muster. Wenn ein Doji-Muster erscheint, wird eine Buy-Stop-Order zwischen dem Höchststand des Doji und dem Höchststand der vorherigen Kerze platziert, und eine Sell-Stop-Order wird zwischen dem Tiefstand des Doji und dem Tiefstand der vorherigen Kerze platziert. Wenn der Preis die Stop-Orders auslöst, können Sie wählen, ob Sie mit einem festen Stop-Loss aussteigen und Gewinn machen oder den höchsten und niedrigsten Preis des Doji-Musters als Stop-Loss und Gewinn machen. Diese Strategie funktioniert gut in höheren Zeitrahmen wie täglich und wöchentlich, um Lärm zu filtern.

Strategie Logik

Wenn ein Doji-Muster erscheint, deutet es auf eine Veränderung des Angebots- und Nachfrageverhältnisses hin, wobei die Kräfte ausgewogen werden, was zu einer Preisumkehr führen kann.

body=close-open 
range=high-low
abody=abs(body)
ratio=abody/range  
data=(abs(open - close) <= (high - low) * Doji)

Wenn abs ((open-close) <= (high-low) * Doji-Parameter, es gilt als ein Doji-Muster, und Stop-Orders werden platziert.

longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1]) 

Wenn der Körper der vorherigen Kerze groß ist, wird die Buy-Stop-Order zwischen dem Höchststand der Doji und dem Höchststand der vorherigen Kerze platziert.

Es gibt zwei Ausgänge:

  1. Festgesetzte Stop-Loss- und Take-Profit-Verbindungen
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
  1. Verwenden Sie höchsten und niedrigsten Preis von Doji als Stop-Loss und Gewinn nehmen
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow) 

Analyse der Vorteile

Die Vorteile dieser Strategie sind:

  1. Einfach umzusetzen.
  2. Nutzt effiziente Preisumkehrsignale aus dem Doji-Muster.
  3. Anpassbare Stop-Loss- und Take-Profit-Parameter zur Risikokontrolle.
  4. Funktioniert gut bei höheren Zeitrahmen, um Lärm zu filtern.

Risikoanalyse

Diese Strategie birgt einige Risiken:

  1. Das Doji-Muster führt nicht immer zu einer Preisumkehrung, kann mit einem Stop-Loss konfrontiert sein.
  2. Zu viel Lärm in Doji-Signalen sollte nur in höheren Zeitrahmen wie täglich und wöchentlich laufen.
  3. Das Risiko unbegrenzter Verluste ohne Stop-Loss und Take-Profit muss richtig genutzt werden.

Optimierungsrichtlinien

Einige Möglichkeiten zur Optimierung der Strategie:

  1. Optimieren Sie den Doji-Parameter für verschiedene Handelsinstrumente.
  2. Testen Sie verschiedene Kombinationen von Stop Loss und Take Profit.
  3. Dynamischer Stoppverlust basierend auf ATR.
  4. Kombination mit anderen Indikatoren zur Bestimmung des optimalen Einstiegs.

Schlussfolgerung

Die Gesamtleistung dieser Strategie ist gut. Durch die Erfassung von Doji-Preisumkehrmöglichkeiten kann es anständige Handelssignale generieren. Auch einfach zu implementieren und über mehrere Instrumente hinweg anwendbar. Mit kontinuierlichen Tests und Optimierungen können bessere Ergebnisse erwartet werden.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//This is a simple strategy based on Doji star candlestick
//It places two orders: buy stop at doji star high or previous candle high and sell stop at doji star low or previous candle low.
//This strategy works very well with high time frames like Weekly TF because it eliminates the noise in doji formation.
//

strategy("Doji strategy W", overlay=true, calc_on_every_tick=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

//INPUTS
//MinDistance=input(100,'Minimum distance in ticks')
Use_SL_TP=input(true,'Use stop loss and take profit?')
TP=input(200,'Take Profit in ticks')
SL=input(200,'Stop Loss in tiks')
Doji = input(0.05, minval=0.01, title="Doji size", step=0.01)

//VARIABILI
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
longcandle= (ratio>0.6)

//Doji
data=(abs(open - close) <= (high - low) * Doji)
plotchar(data, title="Doji", text='Doji', color=black)
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
dojilow=data==1?low:na
dojihigh=data==1?high:na

goStar=data==1?true:false
//////////////////////////////////////////////////////////////////

//STRATEGY

strategy.order("buy stop",true,stop=longDist,  oca_name="Dojy Entry",when=goStar)
strategy.order("sell stop",false,stop=shortDist, oca_name="Dojy Entry",when=goStar)

strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.exit("exit sell","sell stop",loss=SL,profit=TP, when=Use_SL_TP)

strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
strategy.exit("exit buy","buy stop",profit=TP, when=not Use_SL_TP)
strategy.close("sell stop",when=not Use_SL_TP and close>dojihigh)
strategy.exit("exit sell","sell stop",profit=TP, when=not Use_SL_TP)
    
    



Mehr