В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2024-01-17 15:37:33
Тэги:

img

Обзор

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

Логика стратегии

Основная логика этой стратегии заключается в вычислении пивовых высоких и низких точек.

Пивовый максимум = сумма максимального максимума за прошлые N1 бар / N1

Пивовое низкое значение = сумма самого низкого низкого значения за прошлые N2 bars / N2

где N1 и N2 являются параметрами, определяющими количество строк, используемых для расчета точек поворота.

После получения пивовых высоких/низких уровней правила торговли следуют:

  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)


Больше