Эта стратегия сочетает в себе стратегию 123 Reversal и стратегию CMO moving average для генерации комбинированных торговых сигналов. Стратегия 123 Reversal генерирует торговые сигналы путем формирования новых максимумов или минимумов от цен закрытия в течение двух дней подряд в сочетании с суждениями о рыночной динамике со стороны стохастического осциллятора. Стратегия CMO moving average использует индикатор CMO для определения динамики цен и генерации торговых сигналов. Комбинация сигналов от обеих стратегий может сформировать более надежные комбинированные сигналы.
Стратегия 123 Reversal генерирует торговые сигналы на основе следующей логики:
Когда цена закрытия повышается в течение двух дней подряд, а 9-дневный стохастический осциллятор ниже 50, делайте длинный.
Когда цена закрытия падает в течение двух дней подряд и 9-дневный стохастический осциллятор превышает 50, перейдите на короткий.
При оценке того, сформировали ли цены новые максимумы или минимумы в краткосрочной перспективе в сочетании с индикацией импульса стохастическим осциллятором, генерируются торговые сигналы.
Стратегия скользящей средней ОРК генерирует торговые сигналы на основе следующей логики:
Вычислить значения ООК за 5, 10 и 20 дней.
Возьми средний.
Когда средний CMO превышает 70, уходи.
Когда средний показатель CMO опустится ниже -70, перейдите на короткий.
Проведение операций в совокупности по значениям ОКР в разные временные рамки определяет направление динамики цен и генерирует торговые сигналы.
Комбо-стратегия выполняет операцию AND по сигналам обеих стратегий, что означает, что фактические торговые сигналы запускаются только тогда, когда обе стратегии дают сигналы покупки или продажи одновременно.
Преимущества этой стратегии включают:
Комбинированные сигналы более надежны при меньшем количестве ложных сигналов.
123 Стратегия реверсии отражает тенденции после краткосрочных коррекций.
Стратегия скользящей средней ОКР оценивает динамику в течение более длительных временных рамок.
Может адаптироваться к различным рыночным условиям.
Риски этой стратегии включают:
Стратегия 123 Reversal в значительной степени зависит от ценовых закономерностей и иногда может потерпеть неудачу.
Показатель ОРС чувствителен к колебаниям рынка, которые могут генерировать ложные сигналы.
Сигналы комбинированной стратегии могут быть слишком консервативными, упуская торговые возможности.
Для адаптации к различным циклам и рыночным условиям необходима надлежащая настройка параметров.
Контрмеры:
Оптимизируйте правила распознавания шаблонов стратегии обратного движения.
Добавить другие вспомогательные показатели в стратегию скользящей средней ОПО.
Динамически оценивать недавнюю производительность и соответственно корректировать параметры.
Эта стратегия может быть улучшена в следующих аспектах:
Используйте алгоритмы машинного обучения для автоматической оптимизации весов комбинации.
Добавьте адаптивные модули настройки для динамической оптимизации параметров.
Добавить модули стоп-лосса для эффективного контроля рисков.
Оценить надежность стратегии и улучшить алгоритмы распознавания моделей.
Включить выбор отрасли, основные факторы и другие факторы.
Эта стратегия образует эффективную комбинированную торговую систему из двух сильно дополняющих друг друга стратегий - 123 Reversal и CMO Moving Average. При надлежащем контроле риска она может генерировать стабильную альфа-доходность. По мере того как алгоритмы и модели продолжают обновляться, ожидается дальнейшее улучшение прибыльности и стабильности этой стратегии.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 19/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 average of three different length CMO's. This indicator // 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 CMOav(Length1,Length2,Length3, TopBand, LowBand) => pos = 0 xMom = close - close[1] xMomabs = abs(close - close[1]) nSum1 = sum(xMom, Length1) nSumAbs1 = sum(xMomabs, Length1) nSum2 = sum(xMom, Length2) nSumAbs2 = sum(xMomabs, Length2) nSum3 = sum(xMom, Length3) nSumAbs3 = sum(xMomabs, Length3) nRes = 100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3 pos := iff(nRes > TopBand, 1, iff(nRes < LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & CMOav", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Length1 = input(5, minval=1) Length2 = input(10, minval=1) Length3 = input(20, minval=1) TopBand = input(70, minval=1) LowBand = input(-70, maxval=-1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posCMOav = CMOav(Length1,Length2,Length3, TopBand, LowBand) pos = iff(posReversal123 == 1 and posCMOav == 1 , 1, iff(posReversal123 == -1 and posCMOav == -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 )