
В данной статье подробно рассматривается стратегия обратной торговли, основанная на центральных точках. Эта стратегия определяет возможные опорные и резистентные точки, рассчитывая максимальные и минимальные цены определенного цикла.
Стратегия основывается на двух показателях: Pivot High и Pivot Low. Pivot High и Low - это максимальные и минимальные цены в течение одного периода, которые могут быть определены путемpivothigh()иpivotlow()Для вычисления точек центральной оси необходимо установить число циклов на левой и левой сторонах. В этой стратегии число циклов на левой стороне 4 и число циклов на правой стороне 2 [2].
Когда наивысшая точка последнего цикла ниже центральной высоты предыдущего цикла, это говорит о появлении обратного сигнала. В этом случае, если раньше это были короткие операции, теперь следует рассмотреть возможность создания многоголового поиска поворота. Точно так же, когда наименьшая точка последнего цикла выше центральной низкой точки предыдущего цикла, следует рассмотреть возможность создания обратного поворота.
В частности, основная логика этой стратегии заключается в следующем:
Наибольшее преимущество этой стратегии заключается в том, что она позволяет идентифицировать потенциальные точки обратного тренда, что особенно важно для трейдеров-переменщиков. По сравнению с другими показателями, центральные точки позволяют более четко определять сопротивление поддержки, без частого появления ложных сигналов.
Кроме того, эта стратегия создает одновременно условия оптового и дискортового торговли, максимально охватывает различные рыночные ситуации, чтобы избежать упущенных торговых возможностей.
В целом, это очень практичная стратегия для того, чтобы изменить ситуацию.
Несмотря на то, что эта стратегия стремится снизить вероятность ложных сигналов, любая стратегия, основанная на прорыве, неизбежно приводит к появлению сигналов опережения или опоздания. Это может привести к тому, что планируется создать многоочередные позиции, но рынок уже начал медвежий, или планируется создать пустые позиции, но рынок неожиданно взрывается.
Кроме того, точкой оси не может быть определена на 100% ключевая стойкость к поддержке, только для справки. Если вам не повезет, точкой оси может просто не попасть на истинную стойкость к поддержке.
Оптимизация циклов. Существующие настройки на число циклов слева и справа - 4 и 2, которые могут быть использованы в качестве начальной настройки. Однако в разных рынках может быть более эффективным использование разных циклов для разных осевых циклов. Можно попробовать оптимизировать и найти оптимальную комбинацию параметров.
В сочетании с другими показателями фильтрации. Например, можно добавить показатель объема сделок, только в случае увеличения объема сделок считать прорыв эффективным, что позволяет уменьшить ложные прорывы.
Динамический стоп. Существующий стоп представляет собой пространство, оставленное на одной минимальной торговой единице ниже по оси. Это может быть использовано для попытки оптимального стоп-позиции в зависимости от степени волатильности рынка.
Действовать только в направлении тренда. Сейчас условия для лишнего дисконтирования параллельны, фактически можно искать возможности для лишнего дисконтирования только на многоосновном рынке, а возможности для дисконтирования на пустом рынке.
Стратегия в целом является простой и практической стратегией обратного хода. Основная идея заключается в том, чтобы оценить потенциальные перемены тренда, рассчитывая опорные точки и наблюдая за их прорывами.
В целом, идея стратегии ясна и проста в реализации. Установка параметров также является более прямой и дружественной для новичков.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Pivot Reversal Strategy", overlay=true)
leftBars = input(4)
rightBars = input(2)
// backtesting date range
from_day = input(defval = 1, title = "From Day", minval = 1)
from_month = input(defval = 3, title = "From Month", minval = 1)
from_year = input(defval = 2018, title = "From Year", minval = 1970)
to_day = input(defval = 1, title = "To Day", minval = 1)
to_month = input(defval = 1, title = "To Month", minval = 1)
to_year = input(defval = 2100, title = "To Year", minval = 1970)
time_cond = (time > timestamp(from_year, from_month, from_day, 00, 00)) and (time < timestamp(to_year, to_month, to_day, 23, 59))
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 ? true : (le[1] and high > hprice ? false : le[1])
if (le and time_cond)
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 and time_cond)
strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)