Esta estratégia utiliza o indicador do canal de Donchian para negociar breakouts das faixas superior e inferior, permitindo a tendência de seguir operações em ações/futuros/cripto/forex, etc., pertencentes a estratégias de breakout de tendência de médio a longo prazo.
Calcular o máximo máximo e o mínimo mínimo durante um determinado período (por exemplo, 20 dias) para obter as faixas superior e inferior.
A linha média é a média das faixas superior e inferior.
Quando o preço fechar acima da faixa superior, determine que a tendência de alta começou, vá longo para entrar.
Quando o preço for abaixo da linha média, tire lucro para sair.
Pode fazer referência ao período de tempo do backtest para gerar sinais comerciais reais.
Opcionalmente, a quebra da banda inferior também pode atuar como sinal de curto-circuito.
A estratégia determina o início da tendência por rupturas do canal, usa a linha média como saída de lucro, capturando tendências de médio a longo prazo.
O canal de Donchian é simples de calcular e implementar.
A ruptura do canal de preços sinaliza mudança de tendência.
A linha média como nível de lucro é razoavelmente definida.
Regras claras, fáceis de executar.
Pode ajustar de forma flexível os parâmetros do canal para diferentes produtos e prazos.
Pode avaliar o desempenho comercial a longo prazo ou a curto prazo.
Grande espaço de expansão, pode introduzir outros indicadores técnicos.
A fuga do canal pode atrasar-se, arriscando perder oportunidades iniciais.
Não considera a divergência antes da ruptura, pode gerar sinais falsos.
O valor da posição em risco deve ser calculado de acordo com o método de classificação da posição em risco.
Um período de backtest inadequado corre o risco de sobreajuste.
Falta de stop loss, precisa de ter cuidado com perdas aumentadas.
Teste e otimize os parâmetros do período do canal.
A classificação dos instrumentos de dívida deve ser efetuada de acordo com o método de classificação do instrumento de dívida.
Adicione filtros como indicadores de volume.
Adicionar mecanismos de stop loss em movimento ou em atraso.
Introduzir aprendizagem de máquina para prever a ruptura dos preços.
Otimizar a gestão do dinheiro, definir o rácio de lucro, etc.
Considerar a combinação de operações a longo/curto prazo ou de vários produtos.
Esta estratégia usa o canal Donchian para determinar a direção da tendência, breakouts de negociação, uma tendência típica de médio a longo prazo seguindo a abordagem.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-15 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2) //stock strategy strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=10000) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2018, "Backtest Start Year") testEndMonth = input(12, "Backtest Start Month") testEndDay = input(1, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = 20 dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=yellow, style=line, linewidth=1, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=close >= dcUpper) strategy.close("simpleBuy",when=close < dcAverage) //strategy.entry("simpleSell", strategy.short,when=close <= dcLower) //strategy.close("simpleSell",when=close > dcAverage)