Стратегия сочетает в себе метод обратной торговли (покупка низких точек) с логикой отслеживания тенденций (только когда цена выше MA200). Стратегия направлена на то, чтобы найти наиболее вероятное время для получения прибыли при покупке низких точек актива. Цены, находящиеся выше долгосрочной скользящей средней, показывают повышенную вероятность получения прибыли от покупки активов с слабыми краткосрочными ценами.
Стратегия рассчитывает процент общего изменения цены в течение периода отсчета, чтобы определить, находится ли цена в относительно низкой точке. Цена считается низкой, когда процент общего изменения составляет менее 3%. Кроме того, стратегия также устанавливает 200-дневную простую подвижную среднюю в качестве индикатора для определения тенденции.
Эта стратегия сочетает в себе преимущества торговли трендом и реверсивной торговли. С одной стороны, использование долгосрочных движущихся средних определяет тенденцию, избегая слепого покупки во время падения тенденции. С другой стороны, реверсивное покупка низких точек позволяет получить лучший момент входа в рынок при краткосрочной корректировке.
Самый большой риск в этой стратегии заключается в том, что цена может продолжать падать после того, как будет выпущен сигнал о покупке, что приводит к расширению убытков. Кроме того, если рынок долгое время горизонтально, а цена не может преодолеть движущуюся среднюю, это также может привести к неэффективности стратегии. Чтобы уменьшить эти риски, можно соответственно сократить цикл движущихся средних и оптимизировать условия покупки, чтобы обеспечить достаточный безопасный маржиналь.
Эта стратегия может быть оптимизирована в следующих аспектах: 1) оптимизация цикла движущихся средних, адаптированных к различным рынкам; 2) оптимизация условий покупки, обеспечивающая достаточную маржу; 3) увеличение стратегии остановки убытков, контролирующей потери; 4) повышение точности в сочетании с другими показателями для определения тенденций и низких точек.
Эта стратегия в целом является типичной стратегией, которая сочетает в себе идею отслеживания тенденций и реверсивной торговли. Она гарантирует безопасность торговли и повышает вероятность получения прибыли.
/*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)