A ideia central desta estratégia é usar o cruzamento de EMA e WMA como sinais de entrada e incorporar take profit e stop loss com base no cálculo de pontos para negociação.
Quando a EMA cruza a WMA para cima, um sinal longo é gerado. Quando a EMA cruza a WMA para baixo, um sinal curto é gerado. Após a entrada de posições, o preço de entrada será calculado em tempo real, e o stop loss e o take profit serão definidos com base nisso. Por exemplo, defina o stop loss para 20 pontos e o take profit para 100 pontos, em seguida, o preço de stop loss específico será o preço de entrada menos 20 pontos * valor do contrato, e o take profit será o preço de entrada mais 100 pontos * valor do contrato.
Paralelamente, a estratégia também combinará os preços de mercado atuais com o stop loss histórico para ajustar a posição de stop loss em movimento e realizar o stop loss de trailing.
Em comparação com pontos fixos ou percentual de stop loss, a maior vantagem desta estratégia é que pode controlar os riscos de forma muito flexível e precisa. Ajustando o número de pontos, a amplitude de stop loss pode ser impactada diretamente.
Além disso, o trailing stop loss também é uma função muito prática. Ele pode rastrear e ajustar a posição de stop loss com base em mudanças de mercado em tempo real, garantindo o controle de riscos e maximizando os possíveis lucros.
Os principais riscos desta estratégia vêm dos próprios indicadores EMA e WMA. Quando há um movimento violento do mercado, eles geralmente dão sinais errados, levando facilmente ao stop loss. Neste caso, recomenda-se afrouxar adequadamente o número de pontos de stop loss ou considerar a substituição de outras combinações de indicadores.
Outro ponto de risco é que é difícil equilibrar o stop loss e o take profit. Buscar um lucro mais alto geralmente requer assumir riscos maiores, o que pode facilmente levar ao stop loss quando o mercado gira. Portanto, a configuração do stop loss e do take profit precisa de testes e avaliação cuidadosos.
Esta estratégia pode ser otimizada nos seguintes aspectos:
A ideia central desta estratégia é simples e clara, usando a EMA e a WMA como base, e empregando um mecanismo de stop loss baseado em pontos e take profit para controle de risco. A vantagem da estratégia reside no controle de risco preciso e flexível, que pode ser ajustado de acordo para diferentes mercados. As otimizações de acompanhamento podem ser feitas em sinais de entrada, seleção de parâmetros, mecanismo de stop loss, etc., para tornar a estratégia melhor adaptada aos ambientes de mercado complexos e em constante mudança.
/*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))