Стратегия комбинированного изменения импульса

Автор:Чао Чжан, Дата: 2023-10-23 15:11:20
Тэги:

img

Обзор

Эта стратегия объединяет индикатор импульса CMO и индикатор реверсии Stochastic для создания многофакторной модели для обнаружения торговых возможностей в различных рыночных условиях.

Логический анализ

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

  1. 123 Стратегия отмены

    • Используйте 9-дневный стохастический показатель для определения уровня перекупленности и перепродажи

    • Если цена закрытия повышается в течение 2 дней подряд, а стохастический показатель ниже 50, то выбирайте длинный.

    • Если цена закрытия падает в течение 2 дней подряд, а стохастический показатель превышает 50

  2. Стратегия абсолютной стоимости ООП

    • Расчет абсолютной стоимости ООП

    • СОК свыше 70 указывает на перекупку, короткий

    • СОП ниже 20 - это перепродажа, длинная торговля

Наконец, торговый сигнал генерируется, когда две подстратегии согласуются.

Стратегия в полной мере использует сильные стороны индикатора импульса CMO и индикатора реверсии Stochastic. CMO хорошо распознает тенденции, в то время как Stochastic полезен для обнаружения краткосрочных реверсий. Комбинация позволяет модели раскрывать возможности на разных этапах рынка.

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

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

  1. Многофакторная модель адаптируется к различным рыночным условиям

  2. CMO обладает сильной способностью обнаружения тенденций, Stochastic точно определяет точки переворота

  3. Торговать только тогда, когда два сигнала соглашаются избежать ложных сигналов и повысить рентабельность

  4. Большое пространство настройки параметров позволяет оптимизировать для различных продуктов и временных рамок

  5. Объединение долгосрочных и краткосрочных показателей открывает больше возможностей

  6. Простые и понятные правила, легко понятные и автоматизированные, подходящие для торговли алгоритмами

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

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

  1. Существует вероятность ложных сигналов от подстратегий, параметры нуждаются в оптимизации

  2. Внезапное изменение тренда может привести к большим потерям

  3. Высокая частота торговли, затраты на транзакции требуют рассмотрения

  4. Отставание показателей приводит к задержке

  5. Настройка параметров является сложной задачей для различных продуктов

Решения:

  1. Оптимизировать параметры подстратегии для уменьшения ложных сигналов

  2. Использование стоп-лосса для ограничения потерь на одну сделку

  3. Настройка правил входа на более низкую частоту торговли

  4. Использовать данные кнопки для минимизации задержки

  5. Применение машинного обучения для автоматической настройки параметров

Руководство по оптимизации

Стратегия может быть улучшена в следующих аспектах:

  1. Ввести больше факторов, таких как волатильность и объем для систематической многофакторной модели

  2. Создать механизм оптимизации динамических параметров, адаптирующийся к рыночным режимам

  3. Оптимизировать логику входа с использованием вероятности и экспоненциального сглаживания и т.д.

  4. Хеджировать долгосрочные позиции с помощью краткосрочных сделок для достижения двойных целей

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

  6. Исследуйте модели без параметров, чтобы избежать человеческих предрассудков

  7. Включить высокочастотные данные и новостные события для уменьшения задержки

Заключение

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


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/09/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
//    This indicator plots the absolute value of CMO. CMO was developed by Tushar 
//    Chande. A scientist, an inventor, and a respected trading system developer, 
//    Mr. Chande developed the CMO to capture what he calls "pure momentum". For 
//    more definitive information on the CMO and other indicators we recommend the 
//    book The New Technical Trader by Tushar Chande and Stanley Kroll.
//    The CMO is closely related to, yet unique from, other momentum oriented indicators 
//    such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely 
//    related to Welles Wilder`s RSI, yet it differs in several ways:
//        - It uses data for both up days and down days in the numerator, thereby directly 
//          measuring momentum;
//        - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
//          movements in price are not hidden. Once calculated, smoothing can be applied to 
//          the CMO, if desired;
//        - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
//          changes in net momentum using the 0 level. The bounded scale also allows you to 
//          conveniently compare values across different securities.
//
// 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

CMOabs(Length, TopBand, LowBand) =>
    pos = 0
    xMom = abs(close - close[1])
    xSMA_mom = sma(xMom, Length)
    xMomLength = close - close[Length]
    nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
    pos := iff(nRes > TopBand, -1,
    	     iff(nRes < LowBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMOabs", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, maxval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOabs = CMOabs(LengthCMO, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1,
	   iff(posReversal123 == -1 and posCMOabs == -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 )

Больше