A estratégia de reversão bidirecional é uma estratégia de negociação Bitcoin simples que define ordens de compra stop-loss com base no intervalo de negociação do dia anterior. A ideia central desta estratégia é que, se o preço de abertura no dia atual for maior que o preço de fechamento do dia anterior, defina uma compra stop-loss perto do máximo; se o preço de abertura for menor que o preço de fechamento do dia anterior, defina uma compra stop-loss perto do mínimo.
A estratégia primeiro calcula o intervalo de negociação do dia anterior, que é o preço mais alto menos o preço mais baixo. Após a abertura do dia atual, ele julga se o preço é maior ou menor do que o preço de fechamento do dia anterior. Se maior, o preço de compra stop-loss é definido no preço de abertura mais 0,6 vezes o intervalo do dia anterior. Se menor, o preço de compra stop-loss é definido no preço de abertura mais 1,8 vezes o intervalo do dia anterior. A estratégia abrirá uma posição longa quando o stop loss for ativado e fechará a posição antes do final do dia atual.
Em especial, a estratégia contém duas regras de entrada:
Se o preço de abertura do dia em curso for superior ao preço de fechamento do dia anterior (longCond1 satisfeito), e dentro da janela de tempo do backtest (janela() satisfeita, defina uma compra stop-loss ao preço de abertura mais 0,6 vezes o intervalo do dia anterior (stratégia.long1).
Se o preço de abertura do dia em curso for inferior ao preço de encerramento do dia anterior (longCond2 satisfeito), e dentro da janela de backtest, defina uma compra stop-loss ao preço de abertura mais 1,8 vezes o intervalo do dia anterior (stratégia.long2).
A estratégia abrirá uma posição longa quando qualquer uma das perdas de parada acima for acionada e fechará a posição antes do final do dia usando a estratégia.close_all (().
A estratégia de inversão bidirecional tem as seguintes vantagens:
Captura movimentos de reversão sem viés direcional.
Risco controlado com stop loss. O stop loss predeterminado limita efetivamente a perda máxima por negociação.
Evitar o risco overnight fechando todas as posições diariamente.
A maior frequência de negociação para a negociação a curto prazo.
Lógica simples e clara, fácil de entender e implementar.
No entanto, há também alguns riscos a ter em conta para a estratégia:
A distância de stop loss incorreta pode resultar em um stop loss atingido. Se o stop loss for muito apertado, ele pode ser parado prematuramente em condições de mercado extremas.
A alta frequência de negociação pode implicar custos de transacção significativos.
São propensos a serem interrompidos em mercados agitados, tendo tendência a ser desencadeados com mais frequência em condições de "whipsaw".
A estratégia é mais adequada para reversões, incapaz de capturar lucros de continuações de tendências.
Algumas formas de melhorar a estratégia:
Otimize a distância de stop loss. Teste diferentes níveis de stop para encontrar pontos de stop loss ideais. Também considere paradas dinâmicas baseadas na volatilidade do mercado.
Adicione filtros de tendência. Verifique tendências de prazos maiores antes de entrar para evitar negociações contra-tendência.
Melhorar as regras de entrada e considerar a adição de indicadores de volume ou de momento para aumentar a precisão de entrada.
Introduzir gestão de posições, testar paradas ou tendências que se seguem a saídas para conduzir tendências lucrativas.
A estratégia pode funcionar melhor com produtos de maior volatilidade.
Utilize técnicas de aprendizagem de máquina. Optimize parâmetros como paradas e entradas usando algoritmos ML.
Em geral, a estratégia de reversão bidirecional é um conceito de estratégia de curto prazo muito simples e prático. Ela pode efetivamente capturar oportunidades de reversão em movimentos ascendentes e descendentes. No entanto, riscos como a distância de stop loss e as regras de entrada precisam ser otimizados para reduzir riscos e melhorar a robustez. Com refinamentos importantes, a estratégia pode se tornar uma ferramenta de negociação de curto prazo muito útil.
/*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 ===