L'idée de base de cette stratégie est d'utiliser le croisement de l'EMA et de l'WMA comme signaux d'entrée, et d'incorporer le profit et le stop loss basés sur le calcul des points pour le trading.
Lorsque l'EMA traverse la WMA vers le haut, un signal long est généré. Lorsque l'EMA traverse la WMA vers le bas, un signal court est généré. Après avoir entré des positions, le prix d'entrée sera calculé en temps réel, et le stop loss et le take profit seront définis en fonction de cela. Par exemple, définissez un stop loss à 20 points et un take profit à 100 points, puis le prix spécifique du stop loss sera le prix d'entrée moins 20 points * valeur du contrat, et le prix du take profit sera le prix d'entrée plus 100 points * valeur du contrat. C'est ainsi que le risque et le profit sont contrôlés.
Dans le même temps, la stratégie combinera également les prix actuels du marché avec le stop loss historique pour ajuster la position de stop loss mobile et réaliser un stop loss de trailing.
Comparé aux points fixes ou au pourcentage de stop loss, le plus grand avantage de cette stratégie est qu'elle peut contrôler les risques de manière très flexible et précise. En ajustant le nombre de points, l'amplitude du stop loss peut être directement affectée. Cela s'applique très bien à différentes variétés et les paramètres peuvent être ajustés en fonction de la fréquence et de l'amplitude des fluctuations du marché.
En outre, le trailing stop loss est également une fonction très pratique. Il peut suivre et ajuster la position stop loss en fonction des changements du marché en temps réel, tout en assurant le contrôle des risques et en maximisant les bénéfices possibles.
Les principaux risques de cette stratégie proviennent des indicateurs EMA et WMA eux-mêmes. Lorsqu'il y a des mouvements violents du marché, ils donnent souvent de mauvais signaux, conduisant facilement à un stop loss. Dans ce cas, il est recommandé d'assouplir de manière appropriée le nombre de points de stop loss ou d'envisager de remplacer d'autres combinaisons d'indicateurs.
Un autre point de risque est qu'il est difficile d'équilibrer le stop loss et le take profit. Poursuivre un profit plus élevé nécessite souvent de prendre des risques plus importants, ce qui peut facilement conduire à un stop loss lorsque le marché tourne. Par conséquent, la configuration du stop loss et du take profit nécessite un test et une évaluation minutieux.
Cette stratégie peut être optimisée dans les aspects suivants:
L'idée de base de cette stratégie est simple et claire, en utilisant l'EMA et la WMA comme base, et en utilisant un mécanisme de stop loss et de prise de profit basé sur des points pour le contrôle des risques. L'avantage de la stratégie réside dans un contrôle des risques précis et flexible, qui peut être ajusté en conséquence pour différents marchés. Des optimisations de suivi peuvent être effectuées dans les signaux d'entrée, la sélection des paramètres, le mécanisme de stop loss, etc., pour que la stratégie s'adapte mieux aux environnements de marché complexes et en constante évolution.
/*backtest start: 2024-01-03 00:00:00 end: 2024-01-10 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // inspiration script from: @ahmad_naquib // inspiration script link: https://www.tradingview.com/script/tGTV8MkY-Two-Take-Profits-and-Two-Stop-Loss/ // inspiration strategy script name: Two Take Profits and Two Stop Loss //////////// // Do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS //////////// //@version=5 strategy('SL & TP based on Pips', "PIP SL & TP", overlay=true, initial_capital=1000) // MA ema_period = input(title='EMA period', defval=10) wma_period = input(title='WMA period', defval=20) ema = ta.ema(close, ema_period) wma = ta.wma(close, wma_period) // Entry Conditions long = ta.crossover(ema, wma) and nz(strategy.position_size) == 0 short = ta.crossunder(ema, wma) and nz(strategy.position_size) == 0 // Pips Calculation pip1 = input(20, title = "TP PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick pip2 = input(20, title = "SL PIP", group = "PIP CALCULATION") * 10 * syminfo.mintick // Trading parameters var bool LS = na var bool SS = na var float EP = na // Entry Position var float TVL = na var float TVS = na var float TSL = na var float TSS = na var float TP1 = na //var float TP2 = na var float SL1 = na ///var float SL2 = na // SL & TP Values // there's also SL2 and TP2 in case you want to add them to your script, //also you can add a break event in the strategy.entry section. if short or long and strategy.position_size == 0 EP := close SL1 := EP - pip2 * (short ? -1 : 1) //SL2 := EP - pip2 * (short ? -1 : 1) TP1 := EP + pip1 * (short ? -1 : 1) //TP2 := EP + pip1 * 2 * (short ? -1 : 1) // current trade direction LS := long or strategy.position_size > 0 SS := short or strategy.position_size < 0 // adjust trade parameters and trailing stop calculations TVL := math.max(TP1, open) - pip1[1] TVS := math.min(TP1, open) + pip1[1] TSL := open[1] > TSL[1] ? math.max(TVL, TSL[1]) : TVL TSS := open[1] < TSS[1] ? math.min(TVS, TSS[1]) : TVS //if LS and high > TP1 //if open <= TP1 //SL2 := math.min(EP, TSL) //if SS and low < TP1 //if open >= TP1 //SL2 := math.max(EP, TSS) // Closing conditions // and those are a closing conditions in case you want to add them. //close_long = LS and open < SL2 //close_short = SS and open > SL2 // Buy if (long and not SS) strategy.entry('buy', strategy.long) strategy.exit('exit1', from_entry='buy', stop=SL1, limit=TP1, qty_percent=100) //strategy.exit('exit2', from_entry='buy', stop=SL2, limit=TP2) // Sell if (short and not LS) strategy.entry('sell', strategy.short) strategy.exit('exit3', from_entry='sell', stop=SL1, limit=TP1, qty_percent=100) //strategy.exit('exit4', from_entry='sell', stop=SL2, limit=TP2) // Plots // those are plots for the lines of The tp and sl. they are really useful, and in the next update I will use a filling option. a = plot(strategy.position_size > 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr) b = plot(strategy.position_size < 0 ? SL1 : na, color=color.new(#af0829, 30), linewidth = 2, style=plot.style_linebr) c = plot(strategy.position_size > 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr) d = plot(strategy.position_size < 0 ? TP1 : na, color=color.new(#2e7e00, 30), linewidth = 2, style=plot.style_linebr) g = plot(strategy.position_size >= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr) h = plot(strategy.position_size <= 0 ? na : EP, color=color.new(#ffffff, 50), style=plot.style_linebr) // those are plot for the TP2 and SL2, they are optional if you want to add them. //e = plot(strategy.position_size > 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr) //f = plot(strategy.position_size < 0 ? TP2 : na, color=color.new(#00ced1, 0), style=plot.style_linebr) //those are the plot for the ema and wma strategy for short and long signal. they are not really a good strategy, I just used them as an example //but you have the option to plot them or not. // do not use this strategy, it's just an exmaple !! The goal from this script is to show you TP and SL based on PIPS //plot(ema, title='ema', color=color.new(#fff176, 0)) //plot(wma, title='wma', color=color.new(#00ced1, 0))