
Эта стратегия является системой торговли, которая отслеживает тенденции, основанные на индикаторе динамических колебаний в Чаде (CMO). Эта стратегия использует расчеты и анализ динамики цен для поиска возможностей покупки в зонах перепродажи, поиска возможностей продажи в зонах перепродажи, а также для управления рисками в сочетании с ограничениями по времени удержания позиций. Этот метод позволяет как улавливать возможности поворота цены, так и избегать частых торгов на колебательных рынках.
В основе стратегии лежит использование показателя CMO для измерения динамики рынка. CMO, рассчитывая разницу между ростом и падением и соотношением их к сумме, создает показатель, колеблющийся от 100 до 100. Когда CMO ниже 50, что указывает на то, что рынок находится в состоянии перепродажи, система посылает несколько сигналов.
Это стратегия отслеживания тенденций, основанная на мотивации, чтобы захватить возможности перекупа и перепродажи на рынке с помощью показателей CMO. Стратегия разработана разумно, с четкими правилами торговли и механизмами контроля риска. Хотя существуют некоторые присущие риски, оптимизация может дополнительно повысить стабильность и прибыльность стратегии.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Chande Momentum Oscillator Strategy", overlay=false)
// Input for the CMO period
cmoPeriod = input.int(9, minval=1, title="CMO Period")
// Calculate price changes
priceChange = ta.change(close)
// Separate positive and negative changes
up = priceChange > 0 ? priceChange : 0
down = priceChange < 0 ? -priceChange : 0
// Calculate the sum of ups and downs using a rolling window
sumUp = ta.sma(up, cmoPeriod) * cmoPeriod
sumDown = ta.sma(down, cmoPeriod) * cmoPeriod
// Calculate the Chande Momentum Oscillator (CMO)
cmo = 100 * (sumUp - sumDown) / (sumUp + sumDown)
// Define the entry and exit conditions
buyCondition = cmo < -50
sellCondition1 = cmo > 50
sellCondition2 = ta.barssince(buyCondition) >= 5
// Track if we are in a long position
var bool inTrade = false
if (buyCondition and not inTrade)
strategy.entry("Long", strategy.long)
inTrade := true
if (sellCondition1 or sellCondition2)
strategy.close("Long")
inTrade := false
// Plot the Chande Momentum Oscillator
plot(cmo, title="Chande Momentum Oscillator", color=color.blue)
hline(-50, "Buy Threshold", color=color.green)
hline(50, "Sell Threshold", color=color.red)