Esta é uma estratégia de swing projetada para mercados de tendências como criptomoedas e ações, usando grandes prazos como 8 horas.
Vai longo quando o close está acima da linha média aplicada ao high. Vai curto quando o close está abaixo da linha média aplicada ao low.
A estratégia usa 7 tipos diferentes de médias móveis, incluindo SMA, EMA, VWMA, ALMA, SMMA, LSMA e VWMA. Esses MAs são aplicados separadamente aos preços mais altos e mais baixos dos candelabros para gerar duas linhas médias.
A linha média aplicada a preços altos é chamada avg_high. A aplicada a preços baixos é chamada avg_low. Estas duas linhas formam um canal.
Vá longo quando o fechamento estiver acima de avg_high. Vá curto quando o fechamento estiver abaixo de avg_low.
O stop loss para longo é avg_low. Take profit é o preço de entrada *(1 + tp_long). Em resumo, stop loss é avg_high, take profit é o preço de entrada *(1 - tp_short).
A maior vantagem desta estratégia é a utilização de múltiplas médias móveis para melhorar a lucratividade.
Outra vantagem é a abordagem do canal, que limita o intervalo de stop loss e reduz o risco adequado para o swing trading.
A estratégia apresenta dois riscos principais:
A combinação de MAs múltiplos torna o ajuste de parâmetros complexo, exigindo muitos testes e otimização para encontrar o melhor.
Em mercados laterais ou sem tendência, a estratégia tende a gerar perdas e desacelerações.
Para mitigar os riscos, escolha produtos com tendências claras e faça extensos backtests e otimização para encontrar parâmetros adequados às condições atuais do mercado.
Áreas de otimização adicional:
Teste mais tipos de MAs para encontrar melhores combinações, como SMA, EMA, KAMA, TEMA, etc.
Otimizar os comprimentos dos MAs e a largura do canal para determinar os parâmetros ideais.
Teste diferentes mecanismos de take profit e stop loss como trailing stops ou dynamic stops.
Incorpore métricas de tendência como ADX, ATR para evitar problemas durante os mercados agitados.
Otimizar as lógicas de entrada e saída com filtros adicionais para reduzir as transações inválidas.
Esta estratégia de tendência de balanço melhora a lucratividade usando vários MA e reduz o risco através de canais. Funciona bem para produtos de tendência após otimização de parâmetros. Mas pode sofrer grandes perdas em inversões de tendência.
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 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/ // © exlux99 //@version=4 strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true ////// length_ma= input(defval=12, title="Length Moving averages", minval=1) ////////////////////////////////SETUP/////////////////////////////////////////// sma_high = sma(high, length_ma) ema_high = ema(high, length_ma) wma_high = wma(high, length_ma) alma_high = alma(high,length_ma, 0.85, 6) smma_high = rma(high,length_ma) lsma_high = linreg(high, length_ma, 0) vwma_high = vwma(high,length_ma) avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7 /////////////////////////////////////////// sma_low = sma(low, length_ma) ema_low = ema(low, length_ma) wma_low = wma(low, length_ma) alma_low = alma(low,length_ma, 0.85, 6) smma_low = rma(low,length_ma) lsma_low = linreg(low, length_ma, 0) vwma_low = vwma(low,length_ma) avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7 ////////////////////////////PLOTTING//////////////////////////////////////////// plot(avg_high , title="avg", color=color.green, linewidth = 4) plot(avg_low , title="avg", color=color.red, linewidth = 4) long= close > avg_high short = close < avg_low tplong=input(0.06, title="TP Long", step=0.01) sllong=input(0.05, title="SL Long", step=0.01) tpshort=input(0.045, title="TP Short", step=0.01) slshort=input(0.05, title="SL Short", step=0.01) if(time_cond) strategy.entry("long",1,when=long) strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong") strategy.close("long", when=crossunder(low,avg_low)) strategy.entry("short",0,when=short) strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort") strategy.close("short",when=crossover(high,avg_high))