Торговая стратегия Momentum Reversal сочетает в себе преимущества стратегий обратного и импульсного движения, используя сигналы от обоих типов индикаторов для осуществления противоположных сделок в переломные моменты для получения прибыли.
Стратегия состоит из двух частей:
Первая часть - стратегия 123 обратного движения.
Пройти длинный период, когда цена закрытия выше, чем предыдущая цена закрытия в течение 2 дней подряд, а 9-дневный медленный стохастический осциллятор ниже 50.
Пройти короткий период, когда цена закрытия ниже, чем цена предыдущего закрытия в течение 2 дней подряд, а 9-дневный быстрый стохастический осциллятор выше 50.
Вторая часть - фильтрованный индикатор импульса.
Вычислить изменение цены xMom = закрытие - закрытие[1]
Вычислить изменение абсолютной цены xMomAbs = abs ((close - close[1])
Фильтр xMom, если меньше порога Фильтр до 0
Фильтр xMomAbs, если меньше порога Фильтр до 0
Расчет суммы фильтрованных xMom за n дней nSum
Расчет суммы фильтрованных xMomAbs за n дней nAbsSum
Вычислить значение импульса: nRes = 100 * nSum / nAbsSum
Генерация сигнала на основе nRes и полос TopBand, LowBand
Этот индикатор отфильтровывает небольшие колебания и извлекает информацию о динамике из основных тенденций.
Наконец, торговые сигналы генерируются, когда сигналы обоих индикаторов выстраиваются на длинный или короткий.
Стратегия объединяет преимущества двух различных типов показателей для улучшения качества сигналов:
Стратегия 123 отмены ловит тенденции отмены в переломные моменты, избегая ловушки.
Фильтрованный индикатор импульса фокусируется только на больших движениях, отфильтровывая шум и улавливая основные тенденции.
Объединение их проверяет сигналы и уменьшает неправильные сделки, улучшая процент выигрыша.
К основным рискам этой стратегии относятся:
Анализ одного временного рамок может пропустить более широкую тенденцию.
Настройки статических параметров не могут адаптироваться к изменениям рынка.
Двойная проверка может упустить некоторые возможности, уменьшая потенциал прибыли.
Сигналы низкого качества также могут быть проверены, что приводит к потерям.
Стратегия может быть оптимизирована в нескольких аспектах:
Добавьте многочасовую проверку, чтобы избежать задержания.
Использование адаптивных параметров для корректировки показателей на основе рыночных условий.
Оптимизируйте порог фильтра для уменьшения ложных сигналов.
Добавление стоп-лосса к контрольной сумме потерь от одной сделки.
Корректировать размер позиций для оптимизации эффективности использования капитала.
В заключение можно сказать, что стратегия Momentum Reversal сочетает в себе преимущества стратегий обратного движения и фильтрованного импульса, чтобы в некоторой степени улучшить качество и прибыльность сигнала. Однако у нее также есть некоторые недостатки, такие как игнорирование более крупных тенденций, статических параметров, ложных сигналов и т. Д. Методы, такие как проверка многочасовых рамок, адаптивные параметры, стоп-лосс, могут оптимизировать стратегию за счет снижения рисков и повышения устойчивой прибыльности.
/*backtest start: 2023-09-08 00:00:00 end: 2023-10-08 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/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 a CMO which ignores price changes which are less // than a threshold value. 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 fFilter(xSeriesSum, xSeriesV, Filter) => iff(xSeriesV > Filter, xSeriesSum, 0) CMOfilt(Length,Filter, TopBand, LowBand) => pos = 0 xMom = close - close[1] xMomAbs = abs(close - close[1]) xMomFilter = fFilter(xMom, xMomAbs, Filter) xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter) nSum = sum(xMomFilter, Length) nAbsSum = sum(xMomAbsFilter, Length) nRes = 100 * nSum / nAbsSum pos := iff(nRes > TopBand, 1, iff(nRes < LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & CMOfilt", 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) Filter = input(3, minval=1) TopBand = input(70, minval=1) LowBand = input(-70, maxval=-1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posCMOfilt = CMOfilt(LengthCMO,Filter, TopBand, LowBand) pos = iff(posReversal123 == 1 and posCMOfilt == 1 , 1, iff(posReversal123 == -1 and posCMOfilt == -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 )