
Эта стратегия реализует многофакторную модель, использующую в сочетании динамический индикатор CMO и инверсионный индикатор Stochastic, для выявления торговых возможностей в различных рыночных условиях.
Эта стратегия состоит из двух подстратегий:
123 Стратегия переворота
Стратегия абсолютных ценностей CMO
Наконец, если два подсигнала стратегии совпадают, то подается сигнал сделки.
Эта стратегия использует преимущества динамического индикатора CMO и инверсионного индикатора Stochastic. CMO может лучше идентифицировать тенденции, а Stochastic может обнаружить краткосрочные возможности для реверсий.
Эта стратегия имеет следующие преимущества:
Мультифакторная модель, объединяющая мощность и реверсию, адаптирующаяся к различным рыночным условиям
CMO хорошо распознает тенденции, Stochastic точно оценивает переломы
Торгуйте только при совпадении двух сигналов, избегайте ошибочных сигналов и увеличьте вероятность получения прибыли
Большое пространство для оптимизации параметров, которые могут быть скорректированы для разных сортов и циклов
При использовании долгосрочных и краткосрочных индикаторов можно найти больше возможностей для торговли.
Правила простые, понятные, легко понятные, подходящие для алгоритмической торговли
Также существуют риски:
Существует вероятность того, что подстратегия выдаст ошибочный сигнал, требующий оптимизации параметров
Неожиданные события приводят к обратному тренду, что приводит к большим потерям.
Частота транзакций может быть слишком высокой, и расходы на транзакции должны быть учтены.
Все подстратегии являются показателями задержки, есть проблемы с временной задержкой
Необходимость корректировки параметров для разных сортов, более высокие требования к оптимизации параметров
Ответ:
Параметры подстратегии оптимизатора, снижающие вероятность ошибочного сигнала
Установка стоп-лосса, контроль одиночных убытков
Изменение условий открытия позиций, снижение частоты торгов
Использование данных о тиках в реальном времени для уменьшения задержек
Автоматическая оптимизация параметров с использованием методов машинного обучения
Эта стратегия может быть оптимизирована в следующих областях:
Введение дополнительных факторов, таких как волатильность, величина и т. д., в систему многофакторной модели
Построение механизма оптимизации динамических параметров, адаптация параметров к рыночным условиям
Оптимизация логики открытия позиций, введение методов, таких как вероятность и индексная плавность
Скрытие долгосрочных позиций в краткосрочной перспективе для достижения двойной цели
Использование глубокого обучения для извлечения дополнительных характеристик и создания нелинейных правил торговли
Исследование моделей без параметров, чтобы избежать отклонений в параметрах искусственного выбора
Вместе с высокочастотными данными и новостными событиями уменьшается задержка сигналов
Эта стратегия использует динамический показатель 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 )