Estratégia de reversão bidirecional


Data de criação: 2023-11-02 16:47:08 última modificação: 2023-11-02 16:47:08
cópia: 0 Cliques: 680
1
focar em
1617
Seguidores

Estratégia de reversão bidirecional

Visão geral

A estratégia de reversão bidirecional é uma estratégia simples de negociação de Bitcoin que define um pedido de compra e perda de stop-loss para o dia, com base no escopo do dia anterior. A idéia central da estratégia é colocar um stop-loss perto do ponto alto se o preço de abertura do dia for superior ao preço de fechamento do dia anterior; e um stop-loss perto do ponto baixo se o preço de abertura do dia for inferior ao preço de fechamento do dia anterior.

Princípio da estratégia

A estratégia primeiro calcula a faixa de negociação do dia anterior, ou seja, o preço mais alto menos o preço mais baixo. Em seguida, após a abertura do dia, julgue se o preço aumentou em relação ao preço de fechamento do dia anterior, se ele for maior, o preço de compra de stop loss é de 0,6 vezes o preço de abertura mais a faixa de negociação do dia anterior; se for menor, o preço de compra de stop loss é de 1,8 vezes o preço de abertura mais a faixa de negociação do dia anterior.

A estratégia, especificamente, inclui duas regras de entrada:

  1. Se o preço de abertura do dia for superior ao preço de fechamento do dia anterior (longCond1 for satisfeito) e dentro da janela de tempo de retracção (window) for satisfeito, o stop loss é comprado (strategy.long1) no preço de abertura mais 0,6 vezes o intervalo do dia anterior.

  2. Se o preço de abertura do dia for inferior ao preço de fechamento do dia anterior (longCond2 for satisfeito) e dentro da janela de tempo de retrospecção, a compra de stop loss (strategy.long2) será feita no preço de abertura mais 1,8 vezes o intervalo do dia anterior.

A estratégia vai abrir mais posições depois de acionar os dois pára-perdas acima, e depois fechar as posições com a estratégia close_all antes do fechamento do dia.

Análise de vantagens

A estratégia de inversão bidirecional tem as seguintes vantagens:

  1. Capturar reversões sem preconceitos de direção. Esta estratégia leva em consideração as subidas e descidas de preços ao mesmo tempo, podendo capturar reversões de ruptura em diferentes direções.

  2. Risco controlado e proteção de stop loss. A estratégia de pré-configurar o preço de stop loss permite controlar efetivamente a perda máxima de uma única transação.

  3. Cancele todos os dias, evitando o risco durante a noite. A estratégia de liquidar a posição antes do fechamento do dia, não mantendo a posição durante a noite, pode reduzir o risco de forte volatilidade durante a noite.

  4. A frequência de negociação é alta, adequada para operações de linha curta.

  5. A estratégia é simples, clara, fácil de entender e de implementar.

Análise de Riscos

Ao mesmo tempo, há alguns riscos a serem considerados em uma estratégia de inversão bidirecional:

  1. A escolha incorreta da distância de travagem pode causar a ruptura da travagem. Se a distância de travagem for definida de forma muito pequena, em casos extremos, a ruptura pode ocorrer diretamente e causar danos.

  2. A frequência excessiva de negociação pode causar pressão sobre as taxas de negociação. As transações de alta frequência com posições abertas e fechadas por dia podem acumular mais taxas de comissão.

  3. É mais fácil de parar com a tendência de grandes tremores. A suspensão de tremores é mais fácil de ser desencadeada, causando prejuízos.

  4. A estratégia é mais adequada para mercados reversíveis, onde os lucros da tendência não podem ser capturados após a ruptura da tendência.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar a distância de parada. Você pode testar diferentes posições de parada para encontrar o ponto de parada ideal. Você também pode ajustar a distância de parada de acordo com a volatilidade do mercado.

  2. Aumentar o filtro de tendência. Pode-se determinar a direção da tendência em um nível maior antes de entrar, evitando a negociação de contrapartida.

  3. Optimizar as regras de abertura de posição. Pode-se considerar a adição de um julgamento de forma gráfica por minuto antes da ruptura, ou aumentar o julgamento lógico de capacidade quantitativa para melhorar a precisão de abertura de posição.

  4. Aumentar a otimização de posição. Pode testar a adição de stop loss móvel ou o EXIT de acompanhamento de tendências para obter lucros contínuos.

  5. Teste diferentes variedades de negociação. A estratégia pode ser mais adequada para variedades com maior flutuação, e os dados de diferentes variedades podem ser testados para encontrar a melhor variedade.

  6. Combinação de tecnologia de aprendizagem de máquina. Pode-se considerar o uso de aprendizagem de máquina para otimizar parâmetros como distância de parada, regras de abertura de posição.

Resumir

A estratégia de reversão bidirecional é, em geral, uma estratégia de linha curta muito simples e prática. Ela é adequada para situações de aumento e queda de preços reversíveis ao mesmo tempo, e pode capturar efetivamente oportunidades de reversão.

Código-fonte da estratégia
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Simple strat", shorttitle="Simple Strat", overlay=true)

// X001TK R1 strategy
//
// 
// This strategy combines the special approach in previous daily range trading
//
// This strategy goes long on stop buy order which is calculated as previous day range
// multiplied by special number.
//
// This pure strategy does not have any
// stop loss or take profit money management logic.
//
// Exit rule is simple. We close the position on market close or next day open
//
// 
// 
//
// Input
length = input(10, minval=1)
stopLossPercent=input(1.1,"Stop Loss Percent")
profitPercent=input(9,"Profit Percent")


// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)
ses_cls = input(defval=true, title="End of Session Close Out?")


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


// === STRATEGY ===
// conditions
longCond1 = close>close[1]
longCond2 = close<close[1]


strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6)
strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8)
strategy.close_all(when=ses_cls)

// === /STRATEGY ===