Простая количественная торговая стратегия с разворотом пивота


Дата создания: 2024-01-17 15:37:33 Последнее изменение: 2024-01-17 15:37:33
Копировать: 0 Количество просмотров: 659
1
Подписаться
1617
Подписчики

Простая количественная торговая стратегия с разворотом пивота

Обзор

Эта стратегия основана на прорывах в центральных точках для проведения обратной торговли. Она рассчитывает максимальные и минимальные цены за указанный период, чтобы определить центральные высоты и центральные низкие. Когда цена превышает центральную высоту, делайте пробел; когда цена ниже центральной низкой, делайте больше.

Стратегический принцип

Центральная логика этой стратегии заключается в вычислении высоких и низких точек на оси. Формула вычисления высоких и низких точек на оси выглядит следующим образом:

Высота оси = сумма наивысших цен на последнюю N1 корень K / N1

Минимальная точка оси = сумма наименьших цен на последнюю N2 корень K / N2

N1 и N2 - два параметра, которые могут быть установлены, и представляют собой количество K-линий, необходимых для вычисления опорных точек.

После вычисления высоких и низких точек оси стратегии можно торговать. Конкретные правила торговли:

  1. Позиции, открытые в то время, когда цены находятся на пике.
  2. Положите больше, когда цена пересекает низкие точки.
  3. Установка стоп-лосса после удержания позиции

Таким образом, она реализовала стратегию короткого переворота, основанную на прорыве центральной оси.

Анализ преимуществ

Это очень простая обратная стратегия, которая имеет следующие преимущества:

  1. Принципы просты, легко понять и реализовать
  2. Подходит для коротких и частых сделок
  3. В этом видео мы можем увидеть, как происходит обратный ход событий после прорыва.
  4. Можно оптимизировать, изменяя параметры

Анализ рисков

Однако эта стратегия также несет в себе некоторые риски:

  1. Риск неудачи поворота. Необходимость успешного поворота после прорыва в центре, существует вероятность продолжения движения первоначальной тенденции.
  2. Риск, что предел будет преодолен. Установленная цена предела может быть преодолена, что приведет к большим потерям.
  3. Риск, связанный с неправильными параметрами. Если параметры установлены неправильно, это может серьезно повлиять на эффективность стратегии.

Эти риски можно контролировать, например, путем корректировки параметров, установки стратегии выхода из игры.

Направление оптимизации

В этой стратегии есть много возможностей для оптимизации:

  1. В сочетании с другими техническими показателями для более точного определения времени поступления
  2. Добавление условий выхода из игры, таких как перемещение стоп, постприбыльный стоп и т. д.
  3. Динамическая корректировка параметров, чтобы сделать стратегию более адаптивной
  4. Оптимизируйте параметры, чтобы найти оптимальную комбинацию параметров

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Pivot Reversal Strategy - FIGS & DATES 2.0", overlay=true, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, commission_value=0.075)

leftBars = input(4)
rightBars = input(2)

// backtesting date range
from_day = input(defval=1, title="From Day", minval=1, maxval=31)
from_month = input(defval=1, title="From Month", minval=1, maxval=12)
from_year = input(defval=2018, title="From Year", minval=1900)

to_day = input(defval=1, title="To Day", minval=1, maxval=31)
to_month = input(defval=1, title="To Month", minval=1, maxval=12)
to_year = input(defval=9999, title="To Year", minval=1900)

time_cond = true

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

middle = (swh+swl)/2

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("LONG", strategy.long, comment="LONG", 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("SHORT", strategy.short, comment="SHORT", stop=lprice - syminfo.mintick)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)