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.
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:
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
Die Vorteile dieser Strategie sind:
Diese Strategie birgt einige Risiken:
Einige Möglichkeiten zur Optimierung der Strategie:
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)