
Эта стратегия оптимизирована на основе традиционной стратегии обратного обращения, основанной на вычислении ATR и настройке ATR-фильтрационного фактора, чтобы отфильтровать бессмысленные опорные точки и торговать только теми, которые действительно важны.
Центральная логика этой стратегии заключается в вычислении важных высоких и низких точек поддержки. Основные шаги по вычислению высоких точек поддержки:
Логика вычисления нижней точки опор похожа на эту.
Получив важную опорную точку, делайте пробел, когда цена пробивает эту важную опорную точку; делайте больше, когда цена пробивает эту важную опорную точку.
Основные преимущества этой стратегии:
Основные риски этой стратегии:
Для того, чтобы контролировать вышеуказанные риски, можно оптимизировать в следующих аспектах:
Эта стратегия может быть оптимизирована в следующих направлениях:
В сочетании с другими показателями, чтобы оценить состояние тенденции рынка, избежать обратной торговли в трендовых ситуациях. Можно рассмотреть включение таких показателей, как MACD, KDJ.
Добавление алгоритмов машинного обучения, автоматическая оптимизация параметров. Можно использовать методы генетического алгоритма, случайного леса и других методов для поиска оптимальной комбинации параметров.
Добавление количественных данных для тренировки, чтобы найти оптимальный диапазон ATR. Добавление исторических данных может повысить точность выбора параметров.
Можно рассмотреть возможность использования в сочетании с другими стратегиями, в сочетании с преимуществами различных типов стратегий. Например, сочетание с стратегиями отслеживания тенденций, обратный ход в сборе, движение в тренде.
Эта важная стратегия реверсирования базисных точек может эффективно повысить уровень прибыльности стратегии путем вычисления ATR и установки фильтрующего фактора, который фильтрует бессмысленные небольшие колебания. При этом повышается сложность оптимизации определенных параметров, требующих комплексного рассмотрения нескольких аспектов, таких как диапазон ATR, стоп-стоп и другие. Если параметры оптимизированы, эта стратегия может стать эффективной и стабильной стратегией торговли на короткой линии.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("QuantNomad - Significant Pivot Reversal Strategy", shorttitle = "SPPS", overlay=true)
// Inputs
leftBars = input(4, title = 'PP Left Bars')
rightBars = input(2, title = 'PP Right Bars')
atr_length = input(14, title = 'ATR Length')
atr_mult = input(0.1, title = 'ATR Mult')
// Pivot High Significant Function
pivotHighSig(left, right) =>
pp_ok = true
atr = atr(atr_length)
for i = 1 to left
if (high[right] < high[right+i] + atr * atr_mult)
pp_ok := false
for i = 0 to right-1
if (high[right] < high[i] + atr * atr_mult)
pp_ok := false
pp_ok ? high[right] : na
// Pivot Low Significant Function
pivotLowSig(left, right) =>
pp_ok = true
atr = atr(atr_length)
for i = 1 to left
if (low[right] > low[right+i] - atr * atr_mult)
pp_ok := false
for i = 0 to right-1
if (low[right] > low[i] - atr * atr_mult)
pp_ok := false
pp_ok ? low[right] : na
swh = pivotHighSig(leftBars, rightBars)
swl = pivotLowSig (leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])
if (le)
strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick)
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])
if (se)
strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)