Стратегия отслеживания отмены с двойными механизмами

Автор:Чао Чжан, Дата: 2024-01-05 15:09:19
Тэги:

img

Обзор

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

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

  1. 123 схема для сигналов обратного движения

    • Построен с 9-дневной быстрой и медленной линией Стоха

    • Когда цена закрытия падает в течение 2 дней подряд и повышается на 3-й день, а быстрая линия Stoch ниже 50, генерируется сигнал покупки

    • Когда цена закрытия повышается в течение 2 дней подряд и падает на 3-й день, а быстрая линия Stoch выше 50, генерируется сигнал продажи

  2. Индекс объема цены на сигнал импульса

    • PVI оценивает импульс путем сравнения изменения объема между предыдущим и текущим днем

    • Когда PVI пересекает пересечение передвижной средней за N дней, импульс усиливается и генерируется сигнал покупки.

    • Когда PVI переходит ниже скользящей средней за N дней, импульс снижается и генерируется сигнал продажи.

  3. Сочетание двух сигналов

    • Торговые сигналы генерируются только тогда, когда 123 сигналы реверсии и импульса PVI согласуются.

В целом, данная стратегия использует преимущества показателей двойного механизма для эффективного выявления краткосрочных возможностей для изменения ценовых показателей.

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

  1. 123 модели ловит ключевые краткосрочные точки переворота

  2. PVI оценивает скоординированные действия между ценой и объемом для предотвращения ложных прорывов

  3. Оптимизированный параметр Stoch фильтрует большинство сигналов шума в турбулентных зонах

  4. Достоверность двойного сигнала выше, чем односигнала

  5. Внутреннедневный дизайн позволяет избежать рисков на сутки, подходящих для краткосрочной торговли

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

  1. Риск неудачной реверсии

    • 123 сигналы отмены паттерна не всегда работают с рисками отказа паттерна
  2. Риски сбоя показателей

    • На некоторых аномальных рынках могут провалиться акции, PVI и другие показатели
  3. Риск пропуска двойного сигнала

    • Относительно строгие критерии двойного сигнала могут упустить некоторые возможности для одного сигнала
  4. Риски высокой частоты торговли

    • Для стратегии высокой частоты необходимо тщательное наблюдение за размером позиций и контролем рисков

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

  1. Большое пространство оптимизации параметров

    • Окна, циклы Stoch, PVI и т.д. имеют пространство для оптимизации
  2. Может включать стратегии стоп-лосса

    • Мобильная стоп-лосс может обеспечить уровень выигрыша
  3. Подумайте о добавлении условий фильтра

    • Тесты могут добавлять скользящие средние, фильтры волатильности и т.д.
  4. Оптимизация портфеля двойного сигнала

    • Испытание комбинаций более двойных стратегий показателей

Резюме

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/04/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The theory behind the indexes is as follows: On days of increasing volume, 
// you can expect prices to increase, and on days of decreasing volume, you can 
// expect prices to decrease. This goes with the idea of the market being in-gear 
// and out-of-gear. Both PVI and NVI work in similar fashions: Both are a running 
// cumulative of values, which means you either keep adding or subtracting price 
// rate of change each day to the previous day`s sum. In the case of PVI, if today`s 
// volume is less than yesterday`s, don`t add anything; if today`s volume is greater, 
// then add today`s price rate of change. For NVI, add today`s price rate of change 
// only if today`s volume is less than yesterday`s.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


PVI(EMA_Len) =>
    pos = 0.0
    xROC = roc(close, 1)
    nRes = 0.0
    nResEMA = 0.0
    nRes := iff(volume > volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
    nResEMA := ema(nRes, EMA_Len)
    pos := iff(nRes > nResEMA, 1,
        	 iff(nRes < nResEMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Positive Volume Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Positive Volume Index ----")
EMA_Len = input(255, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPVI = PVI(EMA_Len)
pos = iff(posReversal123 == 1 and posPVI == 1 , 1,
	   iff(posReversal123 == -1 and posPVI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Больше