Стратегия набора импульса в основном рассчитывает скорость изменения (ROC) в разные периоды, взвешивает и складывает их, чтобы сформировать комплексный индикатор импульса для оценки направления тренда.
Стратегия сначала рассчитывает показатели ROC за 10-дневный, 15-дневный, 20-дневный периоды и т. д. Затем сглаживает ROC и складывает их в соотношение 1-4 для получения формулы:
roc1 = (sma(roc(close,10),10)*1)
roc2 = (sma(roc(close,15),10)*2)
...
osc = roc1+roc2+roc3+roc4+...
При этом roc1-roc12 представляет собой расчеты ROC за разные периоды от 10 до 530 дней.
Затем он сглаживает osc на SMA (по умолчанию 10) дней, чтобы получить oscsmt.
Сравняет OSC с OSCSMT, когда OSC пересекает OSCSMT как быстрый сигнал и входит в длинный.
Наконец, он может выбрать обратное направление торговли.
Накопление краткосрочных и долгосрочных индикаторов импульса позволяет отслеживать как краткосрочные, так и долгосрочные тенденции, избегая ложных сигналов.
Сравнение osc и oscsmt может уменьшить ненужную торговлю на боковых рынках.
Настраиваемые параметры для регулирования периодов ROC и плавности SMA.
Обратное направление торговли удовлетворяет различным стилям торговли.
Визуальные индикаторы делают точки покупки и продажи интуитивными.
ROC очень чувствителен к внезапным аномалиям цен, которые могут генерировать неправильные сигналы.
Параметры по умолчанию могут не соответствовать всем торговым инструментам. Необходима оптимизация для поиска наилучшей комбинации параметров на основе различных характеристик.
Торговля только на основе OSC и OSCSMT кроссворда.
Более подходит для среднесрочной и долгосрочной торговли. Возможно, потребуется скорректировать периоды ROC для оптимизации сценария использования.
Стратегия набора импульса рассчитывает несколько периодов ROC для получения всеобъемлющего индикатора импульса, фиксируя как краткосрочные, так и долгосрочные тенденции, избегая ложных сигналов. По сравнению с одним ROC, она значительно улучшает качество и надежность сигнала.
/*backtest start: 2023-09-25 00:00:00 end: 2023-10-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter 08/08/2017 // Pring's Special K is a cyclical indicator created by Martin Pring. // His method combines short-term, intermediate and long-term velocity // into one complete series. Useful tool for Long Term Investors // Modified for any source. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Martin Pring's Special K Backtest", shorttitle="UCS_Pring_sK") a = input(10, title = "Smooth" ) sources = input(title="Source", defval=close) reverse = input(false, title="Trade reverse") roc1 = (sma(roc(sources,10),10)*1) roc2 = (sma(roc(sources,15),10)*2) roc3 = (sma(roc(sources,20),10)*3) roc4 = (sma(roc(sources,30),15)*4) roc5 = (sma(roc(sources,40),50)*1) roc6 = (sma(roc(sources,65),65)*2) roc7 = (sma(roc(sources,75),75)*3) roc8 = (sma(roc(sources,100),100)*4) roc9 = (sma(roc(sources,195),130)*1) roc10 = (sma(roc(sources,265),130)*2) roc11 = (sma(roc(sources,390),130)*3) roc12 = (sma(roc(sources,530),195)*4) osc = roc1+roc2+roc3+roc4+roc5+roc6+roc7+roc8+roc9+roc10+roc11+roc12 oscsmt = sma(osc,a) pos = iff(osc > oscsmt, 1, iff(osc < oscsmt, -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(osc, color=blue, title="Martin Pring's Special K") plot(oscsmt, color = red, title = "Smooth") hline(0, title="Zero Line")