Estratégia de negociação de backtesting baseada em canal longo-curto


Data de criação: 2023-09-20 17:02:40 última modificação: 2023-09-20 17:02:40
cópia: 0 Cliques: 688
1
focar em
1617
Seguidores

Visão geral

A estratégia utiliza a criação de um canal multi-espaço para realizar uma verificação de retroalimentação de sistema de tipo de canal de ruptura, pertencendo a uma estratégia de negociação de tipo de ruptura de tendência.

Princípio da estratégia

  1. Calcule o preço máximo para a construção de um canal com várias cabeças e o preço mínimo para a construção de um canal sem cabeças em um determinado período.

  2. Quando o preço ultrapassa a linha do canal superior, a compra é feita.

  3. Quando o preço ultrapassa a linha do canal, a venda é feita.

  4. Pode-se definir um intervalo de tempo de retrospectiva para a verificação da estratégia.

  5. A estratégia é simples e clara.

Análise de vantagens

  1. O canal multi-espaço pode ser comparado com o canal delimitado de forma intuitiva.

  2. A tendência de alta é mais provável após a ruptura da linha do canal.

  3. A retrospectiva é uma forma de verificar a eficácia da estratégia em contextos históricos.

  4. A abordagem de transação do canal é simples e fácil.

  5. O código é mais simples, fácil de modificar e otimizar.

Análise de Riscos

  1. A existência de uma falsa brecha após a ruptura do Bring corre o risco de um recall.

  2. Não é possível definir efetivamente o stop loss e o stop stop.

  3. A configuração incorreta dos parâmetros de canal pode afetar a eficácia da estratégia.

  4. Os resultados podem ter um desvio de otimização.

  5. A implementação em disco rígido pode ter efeitos muito diferentes.

Direção de otimização

  1. Teste os diferentes parâmetros para encontrar a combinação ideal.

  2. Adicionar outros fatores combinados ao filtro de falsidade.

  3. Estabelecer mecanismos de suspensão e desbloqueio.

  4. A partir da análise dos dados de retrospecção, os dados foram tratados de forma adequada, eliminando os desvios.

  5. A análise de retrospectiva é realizada em vários contextos de mercado.

  6. Verificação do disco simulado para configurar os parâmetros do disco real.

Resumir

A estratégia usa regras simples de breakout para verificação de retorno, é fácil de operar, mas ainda precisa ser otimizada para aumentar a estabilidade. Aperfeiçoamento adicional, como ajuste de parâmetros e controle de risco, pode torná-lo um sistema de negociação de breakout confiável.

Código-fonte da estratégia
/*backtest
start: 2023-08-20 00:00:00
end: 2023-08-30 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title = "Backtest Donchian Teixeira", default_qty_type = strategy.fixed, default_qty_value = 100, overlay = true, commission_type = strategy.commission.cash_per_order, commission_value = 2.50, precision = 2, calc_on_every_tick = true, pyramiding = 0, initial_capital = 10000)

testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00)

testEndYear = input(2018, "Backtest End Year")
testEndMonth = input(12, "Backtest End Month")
testEndDay = input(1, "Backtest End Day")
testPeriodEnd = timestamp(testStartYear, testStartMonth, testStartDay, 23, 59)

window()  => true //nao funciona

length1 = input(20, minval=1, title="Upper Channel")
length2 = input(20, minval=1, title="Lower Channel")

dcUpper = highest(length1)
dcLower = lowest(length2)

plot(dcLower, style=line, linewidth=1, color=red, offset=1)
plot(dcUpper, style=line, linewidth=1, color=lime, offset=1)
plot(dcLower, style=line, linewidth=1, color=gray)

if (strategy.position_size == 0)
    strategy.entry("COMPRA", true, stop = dcUpper)
    
if (strategy.position_size > 0)
    strategy.exit("VENDA", stop = dcLower)