Покупать капсы - MA200 Оптимизированная стратегия

Автор:Чао Чжан, Дата: 2024-01-08 16:54:21
Тэги:

img

Обзор

Эта стратегия сочетает в себе противоположный подход (покупка падений) с логикой, следующей за трендом (только когда цена выше MA200). Стратегия направлена на поиск лучшего времени для покупки падений, которые, скорее всего, будут прибыльными. Цена выше долгосрочной скользящей средней указывает на импульс, который увеличивает возможность получения прибыли от покупки активов во время краткосрочной слабости.

Принцип стратегии

Эта стратегия рассчитывает общее процентное изменение цены за прошедший период, чтобы определить, находится ли цена в относительном падении. Когда общее процентное изменение ниже -3%, цена рассматривается в падении. Кроме того, стратегия также устанавливает 200-дневную простую скользящую среднюю как индикатор для оценки тренда. Сигналы покупки запускаются только тогда, когда цена выше 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)

Больше