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

Индекс двойного импульса и гибридная стратегия реверсии

Автор:Чао Чжан, Дата: 2024-02-06 12:22:32
Тэги:

img

Обзор

Индекс двойного импульса и гибридная стратегия обратного движения - это композитная стратегия, сочетающая стратегии обратного движения и импульса.

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

Стратегия состоит из двух подстратегий:

  1. 123 Стратегия обратного движения. Она идет длинным, когда цена закрытия растет в течение двух дней подряд, а Stoch ниже 50; она идет коротким, когда цена закрытия падает в течение двух дней подряд, а Stoch выше 50.

  2. Стратегия индекса выбора товара (CSI). Он сочетает в себе средний истинный диапазон (ATR) и средний индекс направленного движения (ADX). ATR отражает волатильность рынка, а ADX отражает силу тренда. Чем выше значение CSI, тем сильнее тенденция и волатильность рынка. Это стратегия отслеживания импульса.

Вся стратегия использует 123 Reversal как основное тело, а CSI как вспомогательное подтверждение. Торговые сигналы генерируются только тогда, когда сигналы обеих стратегий последовательны. Он длинный, когда цена закрытия растет в течение двух дней подряд, и Stoch ниже 50, и в то же время, когда CSI пересекает его скользящую среднюю; он короткий, когда цена закрытия падает в течение двух дней подряд, и Stoch выше 50, и в то же время, когда CSI пересекает ниже своей скользящей средней.

Это обеспечивает обратный атрибут торговых сигналов, в то время как добавление CSI к фильтру может уменьшить ложные сигналы.

Преимущества

Стратегия имеет следующие преимущества:

  1. Комбинируя обратную передачу и импульс повышает точность сигнала. 123 Reversal как основной сигнал может улавливать внезапные и жестокие обратные действия. CSI как подтверждение может фильтровать некоторый шум.

  2. Даже если сами подстратегии имеют некоторые ложные сигналы, окончательный сигнал должен быть дважды подтвержден, что может отфильтровать большинство ложных сигналов и минимизировать ненужное открытие и закрытие позиций.

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

  4. Подстратегии могут быть включены отдельно. Стратегия поддерживает использование только 123 Reversal или CSI только для торговли. Это обеспечивает гибкость.

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

Несмотря на то, что стратегия значительно снижает ложные сигналы с помощью композитной фильтрации, все еще существуют следующие основные риски:

  1. Частота генерации сигналов стратегии относительно низкая. Принятие двойного подтверждения неизбежно отфильтровывает определенную долю торговых возможностей. Это неизбежная стоимость достижения высокого уровня выигрыша.

  2. Если параметры двух подстратегий неправильны, это может привести к редким или даже отсутствию сигналов.

  3. 123 В случае последовательных и сильных односторонних ценовых прорывов стратегия будет подвергаться более серьезным рискам.

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

Основные возможности оптимизации этой стратегии заключаются в следующих областях:

  1. Оптимизировать внутренние параметры каждой подстратегии, чтобы найти оптимальные комбинации параметров, включая параметры Stoch, CSI и т. д.

  2. Проверка добавления в различных фильтрах рыночных условий, например, использование CSI только при преобладающем тренде, использование 123 Reversal только на рынках с диапазоном, и т. Д. Это может в некоторой степени преодолеть недостатки подстратегий.

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

  4. Проверьте различные механизмы стоп-лосса. Правильный стоп-лосс может эффективно контролировать риски и уменьшать ненужное открытие и закрытие позиций.

Резюме

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


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/10/2019
// 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 Commodity Selection Index ("CSI") is a momentum indicator. It was 
// developed by Welles Wilder and is presented in his book New Concepts in 
// Technical Trading Systems. The name of the index reflects its primary purpose. 
// That is, to help select commodities suitable for short-term trading.
// A high CSI rating indicates that the commodity has strong trending and volatility 
// characteristics. The trending characteristics are brought out by the Directional 
// Movement factor in the calculation--the volatility characteristic by the Average 
// True Range factor.
// Wilder's approach is to trade commodities with high CSI values (relative to other 
// commodities). Because these commodities are highly volatile, they have the potential 
// to make the "most money in the shortest period of time." High CSI values imply 
// trending characteristics which make it easier to trade the security.
// The Commodity Selection Index is designed for short-term traders who can handle 
// the risks associated with highly volatile markets.
//
// 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

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

CSI(Length, Commission, Margin, PointValue) =>
    pos = 0.0
    K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission)))
    xATR = atr(Length)
    xADX = fADX(Length)
    nADXR = (xADX + xADX[Length]) * 0.5
    xCSI = K * xATR * nADXR
    xMACSI = sma(xCSI, Length)
    pos := iff(xCSI < xMACSI, 1,
    	     iff(xCSI > xMACSI, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategy 123 Reversal & Commodity Selection Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PointValue = input(50)
Margin = input(3000)
Commission = input(10)
LengthCSI = input(14)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCSI = CSI(LengthCSI, Commission, Margin, PointValue)
pos = iff(posReversal123 == 1 and posCSI == 1 , 1,
	   iff(posReversal123 == -1 and posCSI == -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 )

Больше