Купить дешево - стратегия оптимизации MA200


Дата создания: 2024-01-08 16:54:21 Последнее изменение: 2024-01-08 16:54:21
Копировать: 0 Количество просмотров: 413
1
Подписаться
1218
Подписчики

Купить дешево - стратегия оптимизации MA200

Обзор

Стратегия сочетает в себе метод обратной торговли (покупка низких точек) с логикой отслеживания тенденций (только когда цена выше 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)