
Esta estratégia é conhecida como estratégia de negociação de criptomoedas baseada no canal de Donchian. A estratégia baseia-se no famoso método de negociação de criptomoedas, que utiliza o canal de Donchian para avaliar a tendência do mercado e, combinando filtragem com médias móveis, permite uma estratégia de acompanhamento de tendências mais simples.
O principal indicador de julgamento da estratégia é o canal Donchian. O canal Donchian é composto por uma faixa de variação de N dias de preços mais altos e mais baixos, sendo um sinal longo se o preço quebrar o canal para cima e um sinal curto se o preço quebrar o canal para baixo. A estratégia usa o canal Donchian rápido (10 dias) para sinalizar e o canal Donchian lento (20 dias) para parar.
Além disso, a estratégia também introduziu duas médias móveis (linha de 50 dias e linha de 125 dias) para filtrar os sinais. A negociação multi-cabeça só é realizada quando a média móvel rápida atravessa a média móvel lenta; a negociação em branco é realizada quando a média móvel rápida atravessa a média móvel lenta abaixo da média móvel rápida. Isso pode filtrar efetivamente alguns sinais falsos.
As condições de abertura desta estratégia são: o preço atravessa o canal de Donchian para cima e atravessa a média móvel rápida para a média móvel lenta, satisfazendo as duas condições, e o preço atravessa o canal de Donchian para baixo e atravessa a média móvel lenta para baixo e abre uma posição vazia. A condição de posição baixa é para o preço tocar na fronteira do canal de Donchian lenta na direção oposta.
A estratégia tem as seguintes vantagens:
O uso do canal Donchian para determinar a direção da tendência, com melhor retomada e maior sucesso na captura de grandes tendências;
Aumentar a filtragem das médias móveis, que podem filtrar alguns sinais falsos e evitar perdas;
A combinação de canais Donchian lentos e médias móveis lentos permite equilibrar a frequência de negociação e a precisão de stop loss;
O risco é controlado e há um mecanismo de stop loss para controlar a perda individual.
A estratégia também apresenta alguns riscos:
Em situações de turbulência, pode ocorrer um número menor de unidades com perdas;
Quando a tendência se inverte, a filtragem das médias móveis aumenta o custo de construção;
Em situações de falência, pode ocorrer a recuperação de perdas.
A resposta e solução:
Pode-se ajustar os parâmetros apropriadamente para reduzir o ciclo Donchian e reduzir o ciclo da média móvel para adaptar-se a diferentes mercados.
Aumentar o julgamento de tendências em grande escala, evitando posicionamentos contra grandes tendências.
A estratégia pode ser melhorada em vários aspectos:
Aumentar o julgamento sobre a intensidade da ruptura. Por exemplo, introduzir volume de transação e abrir uma posição somente se o volume de transação for maior;
Aumentar o julgamento de áreas de foco. Combinando com o nível de pressão de suporte, bandas e padrões para julgar pontos de foco de preços, evitando a construção de depósitos em áreas de foco;
Otimização da estratégia de stop loss. Pode-se introduzir tracking stop loss, amplitude stop loss, tempo stop loss, etc., para tornar o stop loss mais inteligente.
Em geral, esta estratégia é uma estratégia de acompanhamento de tendências muito típica e simples. Com a determinação da direção do canal Donchian, os sinais de filtragem de médias móveis têm um bom efeito de retrocesso. A estratégia é adequada para investidores que seguem grandes tendências, o risco está controlado e é fácil de operar em campo.
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// Coded by Vladkos
strategy("Donchian strategy with filter", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 4,pyramiding=5)
fromyear = input(2017, defval = 2018, minval = 1800, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(21, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
ATR=input(20,minval=1)
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstoploss= input(true,defval=true,title="Stop LOSS")
///////////ATR
tra=atr(ATR)
////////////Переменные
Donchian_slow=input(20,minval=1)
Donchian_fast=input(10,minval=1)
Slow_EMA=input(125,minval=1)
Fast_EMA=input(50,minval=1)
/////////// Медленный Дончан
lower = lowest(Donchian_slow)
upper = highest(Donchian_slow)
basis = avg(upper, lower)
plot(lower,color=blue)
plot(upper,color=blue)
/////////// быстрый Дончан
lowerF = lowest(Donchian_fast)
upperF = highest(Donchian_fast)
basisF = avg(upperF, lowerF)
plot(lowerF,color=red)
plot(upperF,color=red)
////////// Скользящие средние
ema_S=ema(close,Slow_EMA)
ema_F=ema(close,Fast_EMA)
plot(ema_S,color=red)
plot(ema_F,color=green)
///////// Условия сделок
long_condition= close>=upper[1] and ema_F>ema_S
long_exit= close<lowerF[1]
short_condition=close<=lower[1] and ema_F<ema_S
short_exit=close>upperF[1]
////////// Отправка ордеров
strategy.entry("Long",strategy.long,when=long_condition and term and needlong==true)
strategy.exit("stop loss","Long",stop=strategy.position_avg_price-(tra*2),when= (needstoploss==true))
strategy.close("Long",when=long_exit and (time < timestamp(toyear, tomonth, today, 23, 59)))
strategy.entry("Short",strategy.short,when=short_condition and term and (needshort==true))
strategy.exit("stoploss","Short",stop=strategy.position_avg_price+(tra*2),when= (needstoploss==true))
strategy.close("Short",when=short_exit and (time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()