Esta estratégia utiliza o princípio de cruzamento de linhas de média móvel de vários níveis para capturar tendências de médio e longo prazo e alcançar lucros constantes. Emprega três conjuntos de médias móveis rápidas, médias e lentas com diferentes parâmetros e toma decisões de negociação com base em seus cruzamentos. Em comparação com estratégias tradicionais com apenas dois conjuntos de médias móveis, esta estratégia de cruzamento de média móvel de vários níveis pode filtrar mais sinais falsos e melhorar a taxa de vitória da estratégia.
A estratégia usa três conjuntos de médias móveis: a média móvel rápida MAshort, a média móvel de velocidade média MAmid e a média móvel lenta MAlong. MAshort tem um parâmetro de 9, responde o mais rápido e é usado para capturar sinais de curto prazo; MAmid tem um parâmetro de 50, tem uma velocidade média e é usado para confirmar a tendência; MAlong tem um parâmetro de 100, responde o mais lento e é usado para determinar a direção da tendência de longo prazo.
A lógica de negociação específica da estratégia é: quando a linha de média móvel de velocidade média MAmid cruza acima da linha de média móvel lenta MAlong, isso indica que o ímpeto ascendente do preço da ação está se formando. Neste momento, a estratégia é longa; quando a média móvel rápida MAshort cruza abaixo da média móvel de velocidade média MAmid, isso indica que ocorreu uma inversão de tendência de curto prazo e a estratégia sai de sua posição neste momento.
A maior vantagem desta estratégia é que, ao combinar múltiplas médias móveis, ela pode efetivamente filtrar sinais falsos e escolher apenas breakouts relativamente fortes durante uma tendência de alta de médio e longo prazo para abrir posições longas.
As vantagens desta estratégia são as seguintes:
Esta estratégia apresenta igualmente os seguintes riscos:
Para fazer face a estes riscos, iremos ampliar ainda mais a aplicabilidade da estratégia, controlando simultaneamente o drawdown máximo com técnicas de stop loss.
Esta estratégia pode também ser otimizada das seguintes formas:
Esta estratégia pertence a uma estratégia quantitativa típica de médio e longo prazo que, com a premissa de controlar os riscos de negociação, obtém lucros contínuos combinando médias móveis de vários níveis com tendências de médio e longo prazo. Em comparação com um único indicador, esta estratégia incorpora vários parâmetros e pode identificar efetivamente fortes sinais de tendência de médio e longo prazo. Através de otimização adicional, esta estratégia pode ser aplicada a mais variedades e desempenha um papel importante na negociação quantitativa.
/*backtest start: 2023-12-12 00:00:00 end: 2024-01-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule //@version=4 strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations inlong=input(100, title='MAlong') inmid=input(50, title='MAmid') inshort=input(9, title='MAfast') MAlong = sma(close, inlong) MAshort= sma(close, inshort) MAmid= sma(close, inmid) //Entry bullish = crossover(MAmid, MAlong) strategy.entry(id="long", long = true, when = bullish and window()) //Exit bearish = crossunder(MAshort, MAmid) strategy.close("long", when = bearish and window()) plot(MAshort, color=color.orange, linewidth=2) plot(MAmid, color=color.red, linewidth=2) plot(MAlong, color=color.blue, linewidth=2)