
Это количественная торговая стратегия с несколькими головами, которая сочетает в себе преимущества стратегии реверса центральной точки и стратегии наименьшей двойной движущейся средней. Эта стратегия вступает в игру в бычьем рынке, следуя за основной тенденцией, и делает больше реверсивных сигналов, наблюдая за формированием рельсов в центральной точке; в то же время она требует, чтобы цена закрытия была выше минимальной двойной движущейся средней, чтобы открыть позицию, что делает стратегию более стабильной.
Эта стратегия сочетает в себе стратегию обратного обращения в центральной точке и стратегию минимального двукратного движущегося среднего значения. Стратегия обратного обращения в центральной точке рассчитывает максимальные и минимальные цены за прошедшие торговые дни, получая верхние и нижние колебания.
В частности, эта стратегия сначала рассчитывает максимальные цены на последние 3 K-линии и минимальные цены на последние 16 K-линий, получая опорные точки верхней и нижней полос. При формировании верхней полосы открывайте позиции больше; при следующем формировании нижней полосы - ниже. В то же время, она требует, чтобы цена закрытия была выше минимального двукратного движущегося среднего за 20 дней.
Комбинация преимуществ обеих стратегий для более стабильного и надежного принятия торговых решений
Стратегия осей позволяет определить переломные моменты, фильтровать фальшивые прорывы с помощью минимальной двойной скользящей средней и снижать риск торговли
В этом случае мы не можем быть в полной безопасности, и мы не можем быть в безопасности.
Стратегии простые, понятные, легко понятные и оптимизируемые
Средняя частота транзакций, подходящая для средних и длинных операций
Нельзя воспользоваться возможностью быстрого падения рынка
Есть определенные задержки, возможно, мы упустили часть возможности заработать.
Если бы мы перешли на говяжьи медведи, мы бы потеряли больше денег.
Решение проблемы:
Сокращение циклов вычислений, чтобы уменьшить задержки
Настройка параметров скользящих средних для оптимизации участия
Увеличение стратегии по удержанию убытков и снижение убытков в отдельности
Включение в портфель различных трендовых индикаторов для повышения точности оценки
Повышение прогнозируемых результатов моделей машинного обучения для принятия решений
Контроль за размером позиции в сочетании с показателями волатильности
Оптимизация параметров, повышение шансов на успех стратегии
Тестирование более длительных циклов данных для подтверждения стабильности
Эта стратегия объединяет преимущества стратегии обратного обращения опорных точек и стратегии наименьшей двойной движущейся средней, контролирует риск при определении обратного обращения тенденции и является стабильной стратегией. Ее структура проста, легко понять и протестировать, она очень подходит для обучения и практики новичков в количественной торговле.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author exlux99
strategy(title = "Pivot Reversal Upgraded long only", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)
/////////////
//time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//
length = input(title="Length MA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, length, offset)
//LSMA
leftBars = input(3)
rightBars = input(16)
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1])
//leverage
multiplier=input(1.0, step=0.5)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)
//entry
strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier)
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
strategy.close("long", when=se)