
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.
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:
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.
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.
A estratégia de inversão bidirecional tem as seguintes vantagens:
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.
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.
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.
A frequência de negociação é alta, adequada para operações de linha curta.
A estratégia é simples, clara, fácil de entender e de implementar.
Ao mesmo tempo, há alguns riscos a serem considerados em uma estratégia de inversão bidirecional:
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.
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.
É 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.
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.
A estratégia pode ser melhorada em vários aspectos:
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.
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.
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.
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.
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.
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.
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.
/*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 ===