Stratégie Stop Loss et Take Profit basée sur le modèle Doji

Auteur:ChaoZhang est là., Date: 2024-02-02 17:17:38 Le projet de loi est en cours d'adoption.
Les étiquettes:

img

Résumé

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.

La logique de la stratégie

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:

  1. Stop-loss fixe et prise de bénéfices
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
  1. Utilisez le prix le plus élevé et le plus bas de Doji comme stop loss et profit
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow) 

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Facile à mettre en œuvre.
  2. Profitez des signaux d'inversion de prix efficaces du modèle Doji.
  3. Paramètres de stop loss et de profit personnalisables pour contrôler le risque.
  4. Fonctionne bien sur des délais plus longs pour filtrer le bruit.

Analyse des risques

Cette stratégie comporte certains risques:

  1. La solution consiste à régler raisonnablement la distance de stop loss pour limiter la perte par transaction.
  2. Trop de bruit dans les signaux Doji sur les périodes plus courtes.
  3. Le risque de pertes illimitées sans stop loss et profit.

Directions d'optimisation

Quelques façons d'optimiser la stratégie:

  1. Optimiser le paramètre Doji pour différents instruments de négociation.
  2. Testez différentes combinaisons de stop loss et de profit.
  3. Perte dynamique basée sur l'ATR.
  4. Combinez avec d'autres indicateurs pour déterminer l'entrée optimale.

Conclusion

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)
    
    



Plus de