Estratégia simples de comprar baixo e vender alto

Autora:ChaoZhang, Data: 2023-12-26 10:49:19
Tags:

img

Resumo

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.

Princípio da estratégia

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.

Análise da força

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.

Análise de riscos

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.

Orientações de otimização

Ainda há espaço para uma maior otimização desta estratégia, principalmente nos seguintes aspectos:

  1. 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.

  2. 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.

  3. 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.

Conclusã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())


Mais.