Esta estratégia combina as médias móveis T3, T3 Fibonacci e MavilimW para gerar sinais de negociação a partir das relações preço-MA.
Calcule as médias móveis T3, T3 Fibonacci e MavilimW separadamente.
A ruptura dos preços e o recuo dos MAs produzem sinais de compra e venda.
A combinação de múltiplos MA pode filtrar os sinais para uma maior qualidade.
O valor da taxa de prejuízo é o valor da taxa de prejuízo.
Flexibilidade na utilização de sistemas individuais ou combinados de MA.
A combinação MA melhora a precisão do sinal através da confirmação mútua.
Cada MA responde de forma diferente às alterações de tendência para a margem combinada.
Sinais intuitivos formados por relações MA.
Auxílios para a prevenção de perdas no controlo de riscos.
Código claro para fácil compreensão e personalização.
As combinações MA ainda podem gerar sinais falsos causando perdas.
Difícil determinar pontos-chave de inversão das tendências.
Os parâmetros MA inadequados afetam negativamente o desempenho.
As mudanças frequentes de posição aumentam os custos de transação.
Riscos de otimização excessiva durante a otimização.
Teste diferentes parâmetros MA para encontrar combinações ideais.
Avaliar indicadores de tendência adicionais para a filtragem de sinais.
Otimizar os parâmetros de stop loss para reduzir o risco de perda por negociação.
Estudar os padrões do ciclo de preços para identificar pontos de reversão da tendência.
Adicionar métrica de tendência para evitar transações reversas desnecessárias.
Empregar dimensionamento dinâmico das posições para uma melhor eficiência do capital.
Esta estratégia combina múltiplos sistemas de MA para verificação mútua de sinais. Mas os combos de MA ainda têm riscos de sinal falso.
/*backtest start: 2022-09-13 00:00:00 end: 2023-09-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //creator&compiler: Bartu Altan //inspired by: KIVANÇ ÖZBİLGİÇ @fr3792 and @mavilim0732 on twitter //With courtesy of Kıvanç Özbilgiç, Permission Pending strategy("Tilson T3, Tilson T3 Fibo and MavilimW Combined Strategy Strategy",shorttitle="T3 and MavilimW Strategy", initial_capital=100,currency=currency.USD,default_qty_type=strategy.percent_of_equity,default_qty_value =75,overlay=true) stop_loss=input(defval=3.0,title="Stop Loss %",type=input.float)*0.01 strategyt3 = input(true,"T3") strategyt3Fibo = input(true,"T3 Fibo Cross") strategyMav = input(true,"MavilimW") fmal=input(3,"First Moving Average length") smal=input(5,"Second Moving Average length") barsSinceCloseUnderMavw = input(5,"Bars Since Close Under MAVW") T3FiboLine = input(false, title="Show T3 Fibonacci Ratio Line?") length1 = input(8, "T3 Length") a1 = input(0.7, "Volume Factor") // BEGINNING OF T3 e1 = ema((high + low + 2 * close) / 4, length1) e2 = ema(e1, length1) e3 = ema(e2, length1) e4 = ema(e3, length1) e5 = ema(e4, length1) e6 = ema(e5, length1) c1 = -a1 * a1 * a1 c2 = 3 * a1 * a1 + 3 * a1 * a1 * a1 c3 = -6 * a1 * a1 - 3 * a1 - 3 * a1 * a1 * a1 c4 = 1 + 3 * a1 + a1 * a1 * a1 + 3 * a1 * a1 T3 = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3 col1t3 = T3 > T3[1] col3t3 = T3 < T3[1] color_1 = col1t3 ? color.green : col3t3 ? color.red : color.yellow plot(strategyt3 or strategyt3Fibo ? T3:na, color=color_1, linewidth=3, title="T3") //T3 Fibo length12 = input(5, "T3 Length fibo") a12 = input(0.618, "Volume Factor fibo") e12 = ema((high + low + 2 * close) / 4, length12) e22 = ema(e12, length12) e32 = ema(e22, length12) e42 = ema(e32, length12) e52 = ema(e42, length12) e62 = ema(e52, length12) c12 = -a12 * a12 * a12 c22 = 3 * a12 * a12 + 3 * a12 * a12 * a12 c32 = -6 * a12 * a12 - 3 * a12 - 3 * a12 * a12 * a12 c42 = 1 + 3 * a12 + a12 * a12 * a12 + 3 * a12 * a12 T32 = c12 * e62 + c22 * e52 + c32 * e42 + c42 * e32 col12 = T32 > T32[1] col32 = T32 < T32[1] color2 = col12 ? color.blue : col32 ? color.purple : color.yellow plot(strategyt3Fibo and T3FiboLine and T32 ? T32 : na, color=color2, linewidth=2, title="T3fibo") //End of T3 Fibo // END OF T3 // MAVİLİMW // tmal=fmal+smal Fmal=smal+tmal Ftmal=tmal+Fmal Smal=Fmal+Ftmal M1= wma(close, fmal) M2= wma(M1, smal) M3= wma(M2, tmal) M4= wma(M3, Fmal) M5= wma(M4, Ftmal) MAVW= wma(M5, Smal) col1= MAVW>MAVW[1] col3= MAVW<MAVW[1] colorM = col1 ? color.blue : col3 ? color.red : color.yellow plot(strategyMav ?MAVW:na,title="MAVW",color=colorM,linewidth=2) // END OF MAVILIMW // Long Conditions // longT3single = strategyt3 and not(strategyt3Fibo) and not(strategyMav) ? crossover(close,T3) and barssince(crossunder(close,T3)) > barsSinceCloseUnderMavw : na longT3Fibo = not(strategyt3) and strategyt3Fibo and not(strategyMav) ? crossover(T32,T3):na longMav = not(strategyt3) and not(strategyt3Fibo) and strategyMav ? crossover(close,MAVW) and barssince(crossunder(close,MAVW)) > barsSinceCloseUnderMavw : na longT3WFiboandMav = strategyt3 and strategyt3Fibo and strategyMav ? close > T3 and close > MAVW and T32 > T3 : na longT3WFibo = strategyt3 and strategyt3Fibo and not(strategyMav) ? (crossover(T32,T3) and close > T3) or (T32>T3 and crossover(close,T3) and barssince(crossunder(close,T3)) > barsSinceCloseUnderMavw):na longMavT3Fibo = not(strategyt3) and strategyt3Fibo and strategyMav ? (crossover(T32,T3) and close > MAVW) or (T32>T3 and crossover(close,MAVW) and barssince(crossunder(close,MAVW)) > barsSinceCloseUnderMavw) : na longMavT3 = (strategyt3) and not(strategyt3Fibo) and strategyMav ? (crossover(close,T3) and barssince(crossunder(close,T3)) > barsSinceCloseUnderMavw and close>MAVW) or (crossover(close,MAVW) and barssince(crossunder(close,MAVW)) > barsSinceCloseUnderMavw and close>T3) : na longchosen = longT3single or longT3Fibo or longMav or longT3WFiboandMav or longT3WFibo or longMavT3Fibo or longMavT3 // Long Close Conditions // longcT3single = strategyt3 and not(strategyt3Fibo) and not(strategyMav) ? crossunder(close,T3) : na longcT3Fibo = not(strategyt3) and strategyt3Fibo and not(strategyMav) ? crossunder(T32,T3):na longcMav = not(strategyt3) and not(strategyt3Fibo) and strategyMav ? crossunder(close,MAVW): na longcT3WFiboandMav = strategyt3 and strategyt3Fibo and strategyMav ? close < T3 and close < MAVW and T32 < T3 : na longcT3WFibo = strategyt3 and strategyt3Fibo and not(strategyMav) ? (crossunder(T32,T3) and close < T3) or (T32<T3 and crossunder(close,T3)):na longcMavT3Fibo = not(strategyt3) and strategyt3Fibo and strategyMav ? (crossunder(T32,T3) and close < MAVW) or (T32<T3 and crossunder(close,MAVW)): na longcMavT3 = (strategyt3) and not(strategyt3Fibo) and strategyMav ? (crossunder(close,T3) and close<MAVW) or (crossunder(close,MAVW) and close<T3) : na longclosechosen = longcT3single or longcT3Fibo or longcMav or longcT3WFiboandMav or longcT3WFibo or longcMavT3Fibo or longcMavT3 // t3 fibo // long = longchosen longclose = longclosechosen long_plot = barssince(long[1])>barssince(longclose[1])?long:na longclose_plot = barssince(longclose[1])>barssince(long[1])?longclose:na plotshape(long_plot,title="Long",style=shape.labelup,color=color.green,text="Long",textcolor=color.white, location=location.abovebar) plotshape(longclose_plot,title="Long Close",style=shape.labeldown,color=#B1E141,text="Long Close",textcolor=color.white,location=location.belowbar) // Short Conditions // shortT3single = strategyt3 and not(strategyt3Fibo) and not(strategyMav) ? crossunder(close,T3) and barssince(crossover(close,T3)) > barsSinceCloseUnderMavw : na shortT3Fibo = not(strategyt3) and strategyt3Fibo and not(strategyMav) ? crossunder(T32,T3):na shortMav = not(strategyt3) and not(strategyt3Fibo) and strategyMav ? crossunder(close,MAVW) and barssince(crossover(close,MAVW)) > barsSinceCloseUnderMavw : na shortT3WFiboandMav = strategyt3 and strategyt3Fibo and strategyMav ? close < T3 and close < MAVW and T32 < T3 : na shortT3WFibo = strategyt3 and strategyt3Fibo and not(strategyMav) ? (crossunder(T32,T3) and close < T3) or (T32<T3 and crossunder(close,T3) and barssince(crossover(close,T3)) > barsSinceCloseUnderMavw):na shortMavT3Fibo = not(strategyt3) and strategyt3Fibo and strategyMav ? (crossunder(T32,T3) and close < MAVW) or (T32<T3 and crossunder(close,MAVW) and barssince(crossover(close,MAVW)) > barsSinceCloseUnderMavw) : na shortMavT3 = (strategyt3) and not(strategyt3Fibo) and strategyMav ? (crossunder(close,T3) and barssince(crossover(close,T3)) > barsSinceCloseUnderMavw and close<MAVW) or (crossunder(close,MAVW) and barssince(crossover(close,MAVW)) > barsSinceCloseUnderMavw and close<T3) : na shortchosen = shortT3single or shortT3Fibo or shortMav or shortT3WFiboandMav or shortT3WFibo or shortMavT3Fibo or shortMavT3 // Long Close Conditions // shortcT3single = strategyt3 and not(strategyt3Fibo) and not(strategyMav) ? crossover(close,T3) : na shortcT3Fibo = not(strategyt3) and strategyt3Fibo and not(strategyMav) ? crossover(T32,T3):na shortcMav = not(strategyt3) and not(strategyt3Fibo) and strategyMav ? crossover(close,MAVW): na shortcT3WFiboandMav = strategyt3 and strategyt3Fibo and strategyMav ? close > T3 and close > MAVW and T32 > T3 : na shortcT3WFibo = strategyt3 and strategyt3Fibo and not(strategyMav) ? (crossover(T32,T3) and close > T3) or (T32>T3 and crossover(close,T3)):na shortcMavT3Fibo = not(strategyt3) and strategyt3Fibo and strategyMav ? (crossover(T32,T3) and close > MAVW) or (T32>T3 and crossover(close,MAVW)): na shortcMavT3 = (strategyt3) and not(strategyt3Fibo) and strategyMav ? (crossover(close,T3) and close>MAVW) or (crossover(close,MAVW) and close>T3) : na shortclosechosen = shortcT3single or shortcT3Fibo or shortcMav or shortcT3WFiboandMav or shortcT3WFibo or shortcMavT3Fibo or shortcMavT3 short = shortchosen shortclose = shortclosechosen short_plot = barssince(short[1])>barssince(shortclose[1])?short:na shortclose_plot = barssince(shortclose[1])>barssince(short[1])?shortclose:na plotshape(short_plot,title="Short",style=shape.labeldown,color=color.red,text="Short",textcolor=color.white,location=location.abovebar) plotshape(shortclose_plot,title="Short Close",style=shape.labeldown,color=#E19B89,text="Short Close",textcolor=color.white,location=location.belowbar) strategy.entry("Long", true, when=long_plot) strategy.close("Long",when=longclose_plot) strategy.exit("Long Stop Loss","Long",stop=strategy.position_avg_price*(1-stop_loss)) strategy.entry("Short", false, when=short_plot) strategy.close("Short",when=shortclose_plot) strategy.exit("Short Stop Loss","Short",stop=strategy.position_avg_price*(1+stop_loss))