
В соответствии с основными особенностями этой стратегии я назову ее “стратегией рыночного арбитража”.
Эта стратегия используется для создания пустого сигнала, создания возможности для арбитража и получения прибыли путем вычисления динамического колебания индикатора Chande и установки верхнего и нижнего порога.
Код сначала устанавливает параметры Length, TopBand, LowBand, Length - числовой цикл вычислительной мощности, TopBand и LowBand - установленные верхние и нижние пороги.
Затем вычислить абсолютную динамику последних дней Ленгт-День xMom, а затем вычислить Ленгт-День простой подвижной средней xSMA_mom.
Затем рассчитывается суммарная длительность движения за сутки xMomLength.
Затем рассчитывается показатель динамического колебания nRes, равный xMomLength, разделенному на xSMA_mom и умноженному на Length, увеличенному в 100 раз.
Полномерное направление определяется по отношению nRes к величине верхнего и нижнего отрезков.
Наконец, в зависимости от того, включена ли обратная торговля, исправление pos, генерирование торговых сигналов possig, создание многополых записей.
Риск можно контролировать путем определения надежности динамического сигнала в сочетании с другими техническими показателями, такими как тенденция и волатильность, регулирования параметров, снижения частоты торговли и соответствующего смягчения стоп-стоп.
Можно определить, находится ли цена на закрытии над равномерной системой или колебания в пределах нормы до того, как будет задействован динамический сигнал, чтобы избежать заблуждения.
Для сортов с высокой волатильностью можно уместно расширить диапазон нормального порога волатильности, снизив частоту торгов.
В течение дня можно использовать меньший цикл Length, чтобы совершать сверхкороткую линию; скорректировать параметры в соответствии с круглой или лунной линией, сосредоточив внимание на тенденциях средней и долгой линии.
При появлении положительного сигнала, необходимо добавить условия, при которых цена будет выше предыдущей долины, чтобы избежать ложного сигнала об обратном тренде.
Эта стратегия использует динамические показатели для выявления возможностей для краткосрочного изменения тренда, в сочетании с фильтрацией параметров генерирует торговые сигналы, одновременно отслеживает тренд и ловит обратный ход, риски контролируемы. Благодаря многократной оптимизации временных рамок и комбинации с другими техническими показателями можно повысить эффективность стратегии торговли, что заслуживает дальнейшего изучения и применения.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 07/02/2017
// This indicator plots Chande Momentum Oscillator. 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.
////////////////////////////////////////////////////////////
strategy(title="CMO (Chande Momentum Oscillator)", shorttitle="CMO")
Length = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
pos = iff(nRes > TopBand, 1,
iff(nRes <= LowBand, -1, nz(pos[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)
barcolor(possig == -1 ? red: possig == 1 ? green : blue)
plot(nRes, color=blue, title="CMO")