Стратегия экспоненциальной движущейся средней сочетает в себе обратную торговлю и динамические уровни сопротивления поддержки. Она использует стохастический осциллятор для выявления точек переворота рынка и рассчитывает ежедневную поддержку / сопротивление на основе предыдущих высоких, низких и закрытых цен. Она идет на длинный или короткий курс, когда как стратегии переворота, так и стратегии поворотных точек генерируют сигналы покупки или продажи. Стратегия подходит для среднесрочной торговли.
Стратегия реверсии основана на логике, что когда рынки перекуплены или перепроданы, цены, как правило, возвращаются к диапазону стоимости.
Пройти длинный, когда закрытие было выше предыдущего закрытия в течение 2 дней подряд и 9-дневная линия Slow K ниже 50; Пройти короткий, когда закрытие было ниже предыдущего закрытия в течение 2 дней подряд и 9-дневная линия Fast K выше 50.
Динамическая стратегия переменных точек рассчитывает уровни поддержки и сопротивления текущего дня на основе предыдущих высоких, низких и закрытых цен.
Ключевая точка = (высокий + низкий + близкий) / 3
Поддержка 1 = Ключевая точка - (высокая - Ключевая точка)
Сопротивление 1 = Ключевая точка + (Ключевая точка - низкая)
Он длинный, когда закрытие больше, чем сопротивление 1, и короткий, когда закрытие ниже, чем поддержка 1.
Эта стратегия сочетает в себе стратегию обратного движения и стратегию динамических поворотных точек. Она входит в позиции только тогда, когда сигналы обеих стратегий выравниваются. Это помогает отфильтровать некоторые ложные сигналы и улучшает стабильность.
Самое большое преимущество этой стратегии заключается в том, что она сочетает в себе сильные стороны как реверсионной, так и динамической стратегии S/R - она может извлекать выгоду из крупных реверсий тренда, а также определять ключевые уровни поддержки и сопротивления.
Кроме того, стратегия имеет мало параметров и легко внедряется и оптимизируется.
Стратегия также имеет следующие риски:
Неудачное изменение - цены могут переувеличиваться и продолжать развиваться, несмотря на сигнал об изменении.
Нарушение уровней поддержки/сопротивления - цены могут пробиться через рассчитанные уровни S/R, что приводит к ошибочным сигналам.
Двойные сигналы слишком консервативны, отсутствуют пробеги.
Контрмеры:
Подстраивайте параметры, объединяйте другие факторы, чтобы подтвердить обратные действия.
Используйте стоп-потерю для контроля потери.
Изменить правила, чтобы позволить больше возможностей для торговли.
Стратегия может быть расширена в следующих областях:
Испытывать различные комбинации стохастических параметров для повышения чувствительности при выявлении перемен.
Проверьте различные скользящие средние или долгосрочные индикаторы, чтобы лучше оценить общую тенденцию.
Добавьте другие факторы для определения структуры рынка, например, показатели объема.
Оптимизируйте правила двойного сигнала, чтобы получить больше сделок.
Включить стоп-лосс для управления рисками.
Стратегия экспоненциальной движущейся средней сочетает в себе сильные стороны обратной торговли и динамического анализа сопротивления поддержки. Она может извлекать выгоду из основных поворотных точек тренда и также измерять направленность внутридневного движения против ключевых уровней. Используя механизм двойного сигнала, она имеет хорошую стабильность при фильтрации ложных сделок. Стратегию можно дополнительно оптимизировать путем настройки параметров, тестирования дополнительных фильтров и т.д. для повышения производительности.
/*backtest start: 2023-11-07 00:00:00 end: 2023-12-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/03/2020 // 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 Pivot points is calculated on the current day. // Pivot points simply took the high, low, and closing price from the previous period and // divided by 3 to find the pivot. From this pivot, traders would then base their // calculations for three support, and three resistance levels. The calculation for the most // basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and // resistance levels. // // 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 DPP() => pos = 0 xHigh = security(syminfo.tickerid,"D", high[1]) xLow = security(syminfo.tickerid,"D", low[1]) xClose = security(syminfo.tickerid,"D", close[1]) vPP = (xHigh+xLow+xClose) / 3 vR1 = vPP+(vPP-xLow) vS1 = vPP-(xHigh - vPP) pos := iff(close > vR1, 1, iff(close < vS1, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Dynamic Pivot Point", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posDPP = DPP() pos = iff(posReversal123 == 1 and posDPP == 1 , 1, iff(posReversal123 == -1 and posDPP == -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 )