Стратегия торговли на основе кривой OBV, CMO и Coppock

Автор:Чао Чжан, Дата: 2024-02-20 11:26:46
Тэги:

img

Обзор

Стратегия RB Quant Trading Combo представляет собой композитную стратегию, которая сочетает в себе индикатор OBV на основе объема, динамический осциллятор CMO и долгосрочный индикатор импульса кривую Коппока. Эта стратегия учитывает настроение рынка, среднесрочную тенденцию и долгосрочную тенденцию из трех измерений и генерирует торговые сигналы для более надежного выхода на рынок.

Логика стратегии

Торговые сигналы этой стратегии исходят из комбинации следующих трех показателей:

  1. OBV: отражает настроение рынка и силу быков против медведей.

  2. CMO: показывает среднесрочную тенденцию изменения цены.

  3. Кривая Коппока: отслеживает долгосрочную тенденцию изменения цены.

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

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

Преимущества

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

Еще одно преимущество заключается в двухнаправленных сигналах покупки и продажи, позволяющих эффективно использовать капитал.

Риски

Основные риски этой стратегии возникают из-за отставания кривой Коппока и CMO из-за их длинных периодов расчета ROC. Внезапные волатильные рыночные события могут не вызывать своевременные сигналы от этих двух долгосрочных показателей. Быстрое определение должно рассчитывать на OBV в таких сценариях. Однако OBV как индикатор накопленного объема также страдает от нескольких бар задержки перед внезапными поворотными точками.

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

Возможности для расширения

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

  1. Принять адаптивные периоды ROC для кривой Коппока и ООП для автоматической калибровки параметров, реагирующих на изменения режима рынка.

  2. Внедрить систему взвешивания, подчеркивающую сигналы от более точных показателей, улучшая общее качество и стабильность сигнала.

  3. Включить стоп-лосс, основанный на измерениях волатильности, таких как ATR, эффективно ограничивая максимальную потерю на сделку.

  4. Используйте быстрое изменение OBV для измерения сигналов остановки потерь, избегая больших потерь.

Заключение

Стратегия RB Quant Combo синтезирует широту рынка, среднесрочный и долгосрочный импульс для генерации сигналов покупки / продажи, объединяя сильные стороны нескольких индикаторов. Торговые возможности возникают только после выравнивания рыночных настроений и среднесрочных тенденций.


/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RB - OBV Coppock CMO Strategy", overlay=true)

// Input for CMO period
cmo_period = input(14, title="Chande Momentum Oscillator Period")
// Input for Coppock Curve periods
coppock_long = input(14, title="Coppock Curve Long ROC Period")
coppock_short = input(11, title="Coppock Curve Short ROC Period")
coppock_wma = input(10, title="Coppock Curve WMA Period")
// Thresholds for CMO
cmo_buy_threshold = input(50, title="CMO Buy Threshold")
cmo_sell_threshold = input(-50, title="CMO Sell Threshold")

// Calculating OBV
obv = cum(close > close[1] ? volume : close < close[1] ? -volume : 0)

// Calculating Coppock Curve
roc_long = roc(close, coppock_long)
roc_short = roc(close, coppock_short)
coppock_curve = wma(roc_long + roc_short, coppock_wma)

// Calculating Chande Momentum Oscillator
cmo = cmo(close, cmo_period)

// Generate buy and sell signals
buy_signal = obv > obv[1] and coppock_curve > 0 and coppock_curve > coppock_curve[1] and cmo > cmo_buy_threshold
sell_signal = obv < obv[1] and coppock_curve < 0 and coppock_curve < coppock_curve[1] and cmo < cmo_sell_threshold

// Plotting signals on the chart
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Setting up the strategy entry and exit points
if (buy_signal)
    strategy.entry("Buy", strategy.long)

if (sell_signal)
    strategy.close("Buy")

// Plot OBV and Coppock Curve for reference
plot(obv, title="On Balance Volume", color=color.blue)
hline(0, "Zero Line", color=color.gray)
plot(coppock_curve, title="Coppock Curve", color=color.purple)
plot(series=cmo, title="Chande Momentum Oscillator", color=color.orange)



Больше