Cette stratégie est basée sur le schéma Doji. Lorsqu'un schéma Doji apparaît, un ordre d'arrêt d'achat est placé entre le haut du Doji et le haut de la bougie précédente, et un ordre d'arrêt de vente est placé entre le bas du Doji et le bas de la bougie précédente. Lorsque le prix déclenche les ordres d'arrêt, vous pouvez choisir de sortir avec un stop loss fixe et prendre profit, ou utiliser le prix le plus élevé et le plus bas du schéma Doji comme stop loss et prendre profit. Cette stratégie fonctionne bien sur des délais plus longs comme quotidien et hebdomadaire pour filtrer le bruit.
Quand un modèle Doji apparaît, il indique un changement dans la relation d'offre et de demande, avec des forces devenant plus équilibrées, ce qui peut conduire à un renversement de prix.
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)
Si abs ((open-close) <= (high-low) * paramètre Doji, il est considéré comme un modèle Doji, et les ordres d'arrêt seront placés.
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
Si le corps de la bougie précédente est grand, l'ordre d'arrêt d'achat est placé entre le haut du Doji et le haut de la bougie précédente.
Il y a deux sorties:
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)
Les avantages de cette stratégie sont les suivants:
Cette stratégie comporte certains risques:
Quelques façons d'optimiser la stratégie:
La performance globale de cette stratégie est bonne. En saisissant les opportunités d'inversion de prix Doji, il peut générer des signaux de trading décents. Aussi simple à mettre en œuvre et applicable sur plusieurs instruments. Avec des tests et des optimisations continus, de meilleurs résultats peuvent être attendus.
/*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)