Стратегия регрессии на основе прорыва


Дата создания: 2024-03-01 11:58:56 Последнее изменение: 2024-03-01 11:58:56
Копировать: 2 Количество просмотров: 651
1
Подписаться
1617
Подписчики

Стратегия регрессии на основе прорыва

Обзор

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

Согласно этому принципу, идентифицируются потенциальные точки длинного входа и точки короткого входа. Позиция сохраняет только определенное количество баров, этот параметр контролируется вводом баров Exit after bars.

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

  1. Вычисление максимальных цен на закрытие последних 9 K-линий в качестве критерия прорыва
  2. Расчет минимальных цен закрытия на последние 50 K-линий в качестве критерия для прорыва
  3. Для определения того, увеличивается или уменьшается форма K-линий, рассчитывается соотношение средних частот 5 и 20 последних K-линий.
  4. Определите сигналы прорыва длинной и короткой линий: сделайте больше, когда цена закрытия равна самой высокой цене закрытия, а линия K постепенно уменьшается; сделайте пробел, когда цена закрытия равна самой низкой цене закрытия, а линия K постепенно уменьшается
  5. Выход из равновесия фиксированного корня K после прорыва: параметры могут быть изменены для изменения интервала равновесия

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

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

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

  1. Исторические максимумы изменяются с изменением структуры рынка и могут привести к сбоям сигналов
  2. Фальшивые взломы привели к задержанию
  3. Неправильные параметры отрыва от игры могут привести к потере большей прибыли или увеличению убытков

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

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

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

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

Исходный код стратегии
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Celestial_Logic

//@version=5
strategy("Crudeoil Breakout strategy", overlay = true, initial_capital = 20000, default_qty_type = strategy.fixed, default_qty_value = 1)


highestCloseLookback = input(9 , title = 'Highest Close lookback')
lowestCloseLookback  = input(50, title = 'Lowest Close lookback'  ) 

exitAfter = input(10, title = 'Exit after bars')

hc = ta.highest(close,highestCloseLookback)
lc = ta.lowest(close,lowestCloseLookback)

rangeFilter = (ta.sma( (high - low), 5 ) > ta.sma((high-low), 20) ) // Candles getting bigger.

longCondition  = (close == hc ) and not rangeFilter
shortCondition = (close == lc ) and not rangeFilter
if  longCondition
    strategy.entry(id = 'long', direction = strategy.long) 
if shortCondition
    strategy.entry(id = 'short', direction = strategy.short)



var int longsince = 0 
var int shortsince = 0 

if strategy.position_size > 0 
    longsince += 1
else
    longsince := 0

if strategy.position_size < 0 
    shortsince += 1 
else 
    shortsince := 0

if longsince >= exitAfter 
    strategy.close(id = 'long', comment = 'long close')
if shortsince >= exitAfter
    strategy.close(id = 'short', comment = 'short close')