A estratégia buy low sell high é uma estratégia de negociação de longo prazo muito simples, mas eficaz. Esta estratégia compra automaticamente criptomoedas após um grande declínio e vende quando o aumento atinge a meta definida, obtendo assim lucro durante grandes flutuações do mercado.
O núcleo desta estratégia é julgar se o mercado experimentou um grande declínio, calculando os altos e baixos dos preços das criptomoedas durante um determinado período de retrospectiva. Quando os preços das criptomoedas caíram acentuadamente além do limiar definido no período mais recente, isso indica que o mercado pode estar extremamente em pânico. A estratégia então comprará automaticamente. Além disso, esta estratégia também define pontos de stop loss e take profit que acionam automaticamente a stop loss ou take profit quando os preços atingem esses dois pontos.
Especificamente, esta estratégia usa a função trailing_change para calcular os altos e baixos globais dos preços das criptomoedas durante um determinado período de retrospectiva. Quando os altos e baixos dos preços das criptomoedas dentro das últimas velas inp_lkb forem inferiores ao valor negativo do parâmetro definido, é o declínio maior que atende à condição de compra. Neste momento, dentro da janela de tempo do backtest, a ordem de compra da estratégia será acionada.
Após a compra, esta estratégia rastreará as mudanças de preço em tempo real e estabelecerá duas condições de saída: (1) Quando o preço cair abaixo de (1 - porcentagem de stop loss) % do preço de abertura, a ordem stop loss será acionada; (2) Quando o preço subir acima de (1 + porcentagem de take profit) % do preço de abertura, a ordem take profit será acionada.
A maior vantagem desta estratégia de compra baixa e venda alta é que é muito simples e fácil de executar. Não requer indicadores técnicos complexos, contando apenas com os altos e baixos dos preços em um período recente para julgar as condições do mercado, tornando-se muito adequado para comerciantes novatos. Ao mesmo tempo, comprar baixo e vender alto também é uma estratégia eficaz a longo prazo, especialmente no mercado de criptomoedas altamente volátil. Tais estratégias de negociação contrárias podem gerar retornos consideráveis a longo prazo.
Além disso, essa estratégia suporta configurações de stop loss e take profit, que podem controlar efetivamente a perda de negócios individuais e bloquear alguns lucros.
O principal risco desta estratégia é que é impossível determinar o momento das reversões do mercado. Se o mercado continuar a diminuir sem se recuperar, as posições longas abertas podem sofrer maiores perdas flutuantes. Portanto, a definição de pontos de stop loss é crucial. Se os pontos de stop loss forem definidos de forma muito ampla, as perdas individuais podem ser devastadoras.
Outro risco a notar é que, se houver uma violenta flutuação do mercado, os preços podem desencadear stop loss ou take profit em um curto período de tempo. Isso pode levar a custos adicionais de negociação.
Para abordar os riscos acima, podemos definir um período de retrospectiva mais longo para garantir sinais de compra mais estáveis e confiáveis que filtrem alguns sinais falsos nas flutuações do mercado. Além disso, um certo período de resfriamento de negociação pode ser introduzido. Não abrir novas posições por um período de tempo após o fechamento de posições também pode reduzir efetivamente o problema da frequência excessivamente alta de negociação causada por flutuações de preços.
Ainda há espaço para uma maior otimização desta estratégia, principalmente nos seguintes aspectos:
Ajuste dinâmico dos parâmetros de stop loss e take profit. A faixa de stop loss e take profit pode ser ajustada dinâmicamente com base na volatilidade do mercado. Ter uma faixa de stop loss mais ampla durante o pânico do mercado e estreitar adequadamente a faixa de take profit quando o mercado sobe.
Combine vários fatores para determinar o momento da entrada. Além dos altos e baixos recentes, outros fatores, como mudanças no volume de negociação, podem ser introduzidos para determinar sinais de reversão mais confiáveis.
Adicionar mecanismo de reentrada. Após o stop loss ou take profit, certas estratégias de reentrada podem ser definidas para comprar novas oportunidades de reversão.
Em geral, essa estratégia de compra baixa venda alta é bem adequada para mercados de criptomoedas altamente voláteis. Captura oportunidades de reversão do mercado e define stop loss e take profit para controlar riscos. Esta estratégia é muito simples, fácil de entender e implementar, tornando-a ideal para traders novatos. Com otimização adicional, um desempenho de estratégia mais estável pode ser obtido.
/*backtest start: 2023-11-25 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m 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/ // © Coinrule //@version=3 strategy(shorttitle='Buy the Dips',title='Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month") fromDay = input(defval = 10, title = "From Day") fromYear = input(defval = 2020, title = "From Year") thruMonth = input(defval = 1, title = "Thru Month") thruDay = input(defval = 1, title = "Thru Day") thruYear = input(defval = 2112, title = "Thru Year") showDate = input(defval = true, title = "Show Date Range") start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" inp_lkb = input(1, title='Lookback Period') perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 // Call the function overall = perc_change(inp_lkb) //Entry dip= -(input(2)) strategy.entry(id="long", long = true, when = overall< dip and window()) //Exit Stop_loss= ((input (2))/100) Take_profit= ((input (2))/100) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())