
A estratégia combina o método de negociação inversa (comprar o ponto baixo) com a lógica de acompanhamento de tendências (apenas quando o preço está acima do MA200). A estratégia visa encontrar o melhor momento para obter lucro ao comprar o ponto baixo do ativo. Preços acima da média móvel de longo prazo indicam uma maior probabilidade de lucrar com a compra de ativos com preços fracos de curto prazo.
A estratégia calcula a porcentagem de variação geral do preço durante o período de revisão para determinar se o preço está em um ponto baixo relativo. Quando a porcentagem de variação geral é menor que 3%, o preço é considerado baixo. Além disso, a estratégia também define uma média móvel simples de 200 dias como um indicador para julgar a tendência.
Esta estratégia combina os benefícios de negociação de tendência e negociação de reversão. Por um lado, o uso de médias móveis de longo prazo para determinar a tendência e evitar a compra cega durante a queda da tendência. Por outro lado, a compra de baixa de reversão permite um melhor momento de entrada em um ajuste de curto prazo.
O maior risco da estratégia é que os preços podem continuar a cair depois que o sinal de compra é emitido, resultando na expansão dos prejuízos. Além disso, se o mercado estiver horizontal por um longo período e os preços não conseguirem quebrar a média móvel, a estratégia também pode falhar. Para reduzir esses riscos, o ciclo da média móvel pode ser apropriadamente reduzido e as condições de compra podem ser otimizadas para garantir uma margem de segurança suficiente.
A estratégia pode ser otimizada de várias maneiras: 1) otimizar o ciclo da média móvel, adaptando-se a diferentes mercados; 2) otimizar as condições de compra, garantindo uma margem suficiente; 3) aumentar a estratégia de stop loss, controlando os prejuízos; 4) aumentar a precisão, combinando tendências e baixos com outros indicadores.
A estratégia em geral é uma estratégia típica de combinação de seguimento de tendências e ideias de negociação de reversão. Ela garante segurança de negociação e aumenta a probabilidade de lucro.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)
//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)
//Percent change
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)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA)
strategy.close(id="long", when = window() and overall>1)
bgcolor(color = showDate and window() ? color.gray : na, transp = 90)
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)