Estratégia de fuga de canal de curto prazo


Data de criação: 2023-10-25 14:40:21 última modificação: 2023-10-25 14:40:21
cópia: 0 Cliques: 674
1
focar em
1617
Seguidores

Estratégia de fuga de canal de curto prazo

Visão geral

A estratégia é uma estratégia de negociação de curto prazo baseada em indicadores de corredores. Utiliza a ruptura de um corredor para determinar o início e o fim da tendência e, em seguida, toma decisões de compra e venda. Em mercados de tendência forte, essa estratégia de ruptura pode obter melhores resultados.

Princípio da estratégia

  1. A estratégia começa por calcular os preços mais altos e mais baixos de um determinado período, construindo um canal de subida e descida.

  2. Se o preço sobe e entra em alta, faça mais entrada. Se o preço baixa e entra em baixa, faça entrada em branco.

  3. O risco é controlado com o uso de stop loss móvel. A linha de stop loss é definida como a linha média do canal.

  4. Existem duas regras de saida opcionais: Regressão à linha média e Stop Loss móvel. A primeira permite uma saida de lucro rápida, enquanto a segunda controla o risco.

  5. Pode-se escolher o ciclo de passagem de acordo com a situação do mercado, ajustar a amplitude de stop loss e outros parâmetros para otimizar a estratégia.

Análise de vantagens

  1. A operação é simples e fácil de implementar. Basta monitorar a relação entre o preço e o canal e abrir posições de acordo com as regras.

  2. A tendência é de que os investidores não tenham a menor probabilidade de contrabalançar os preços.

  3. O corredor é claro e intuitivo, formando um sinal de entrada claro.

  4. Com uma boa margem de lucro, geralmente obtém um retorno mais satisfatório.

  5. Os parâmetros podem ser ajustados e otimizados para diferentes mercados.

Análise de Riscos

  1. A invasão não é necessariamente bem sucedida, existe o risco de ser atacada.

  2. Os corredores necessitam de um certo ciclo de formação, não se aplicam em situações de tremores.

  3. A perda da linha média do canal pode ser demasiado conservadora para manter uma tendência.

  4. A otimização de parâmetros requer suporte de dados históricos, e pode ter ocorrido otimização no disco rígido.

  5. Os pontos de ruptura de compra e venda mecânicos podem aumentar o número de transações e os custos de deslizamento.

Direção de otimização

  1. Avaliar a eficácia dos diferentes parâmetros de ciclo e selecionar o melhor ciclo de passagem.

  2. Teste a perda de regresso na linha média e a perda de movimento, escolha o mecanismo de saída mais adequado.

  3. Optimizar a amplitude de stop loss e reduzir a probabilidade de que o stop loss seja acionado.

  4. Adicionar filtros de tendência para evitar rupturas inapropriadas.

  5. Considere aumentar a posição, mas controle o risco.

Resumir

A estratégia é, em geral, uma estratégia de breakout de curto prazo mais madura. Tem regras de entrada claras, medidas de controle de risco em vigor e é bem executada. A otimização de parâmetros pode melhorar ainda mais o desempenho da estratégia.

Código-fonte da estratégia
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
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/
// Strategy testing and optimisation for free Bitmex trading bot 
// © algotradingcc 

//@version=4
strategy("Channel Break [for free bot]", overlay=true, default_qty_type= strategy.percent_of_equity, initial_capital = 1000, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.075)

//Options
buyPeriod = input(13, "Channel Period for Long position")
sellPeriod = input(18, "Channel Period for Short position")
isMiddleExit = input(true, "Is exit on Base Line?")
takeProfit = input(46, "Take Profit (%) for position")
stopLoss = input(9, "Stop Loss (%) for position")

// Test Start
startYear = input(2005, "Test Start Year")
startMonth = input(1, "Test Start Month")
startDay = input(1, "Test Start Day")
startTest = timestamp(startYear,startMonth,startDay,0,0)

//Test End
endYear = input(2050, "Test End Year")
endMonth = input(12, "Test End Month")
endDay = input(30, "Test End Day")
endTest = timestamp(endYear,endMonth,endDay,23,59)

timeRange = time > startTest and time < endTest ? true : false

// Long&Short Levels
BuyEnter = highest(buyPeriod)
BuyExit = isMiddleExit ? (highest(buyPeriod) + lowest(buyPeriod)) / 2: lowest(buyPeriod)

SellEnter = lowest(sellPeriod)
SellExit = isMiddleExit ? (highest(sellPeriod) + lowest(sellPeriod)) / 2: highest(sellPeriod)

// Plot Data
plot(BuyEnter, style=plot.style_line, linewidth=2, color=color.blue, title="Buy Enter")
plot(BuyExit, style=plot.style_line, linewidth=1, color=color.blue, title="Buy Exit", transp=50)
plot(SellEnter, style=plot.style_line, linewidth=2, color=color.red, title="Sell Enter")
plot(SellExit, style=plot.style_line, linewidth=1, color=color.red, title="Sell Exit", transp=50)

// Calc Take Profits & Stop Loss
TP = 0.0
SL = 0.0
if strategy.position_size > 0
    TP := strategy.position_avg_price*(1 + takeProfit/100)
    SL := strategy.position_avg_price*(1 - stopLoss/100)

if strategy.position_size > 0 and SL > BuyExit
    BuyExit := SL
    
if strategy.position_size < 0
    TP := strategy.position_avg_price*(1 - takeProfit/100)
    SL := strategy.position_avg_price*(1 + stopLoss/100)

if strategy.position_size < 0 and SL < SellExit
    SellExit := SL
    
    
// Long Position    
if timeRange and strategy.position_size <= 0
    strategy.entry("Long", strategy.long, stop = BuyEnter)
strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TP, when = strategy.position_size > 0)


// Short Position
if timeRange and strategy.position_size >= 0
    strategy.entry("Short", strategy.short, stop = SellEnter)
    
strategy.exit("Short Exit", "Short", stop=SellExit, limit = TP, when = strategy.position_size < 0)

// Close & Cancel when over End of the Test
if time > endTest
    strategy.close_all()
    strategy.cancel_all()