
Стратегия весенне-осеннего наложения динамики состоит в том, чтобы рассчитать изменение уровня ROC в разных циклах и пропорционально уполномочить наложение, чтобы сформировать комплексный динамический показатель для определения направления тенденции. Эта стратегия накладывает на себя краткосрочные, среднесрочные и долгосрочные динамические показатели, чтобы сбалансировать краткосрочные и долгосрочные тенденции и избежать создания ложных сигналов.
Сначала стратегия рассчитывает показатели РОК на различные периоды, такие как 10, 15 и 20 дней, а затем производит плавную обработку РОК и накладывает на них полномочия в соотношении 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, 15 до 530 дней. Computes the Rate of Change (ROC) over the specified period.
Затем проводят гладкую обработку SMA osc в течение a дней (по умолчанию 10 дней) и получают oscsmt。
Затем сравниваем величины osc и oscsmt, когда osc на oscsmt проходит как положительный сигнал, входящий в направление; когда osc под oscsmt проходит как отрицательный сигнал, входящий в направление.
Наконец, есть возможность поменять направление торговли.
Наложение краткосрочных и долгосрочных динамических индикаторов позволяет одновременно улавливать краткосрочные и долгосрочные тенденции и избегать создания ложных сигналов.
Сравнивая разницу в цене между osc и oscsmt, можно уменьшить бесполезную торговлю в плоской зоне.
Настраиваемые параметры, циклические параметры для корректировки расчета ROC, а также гладкие параметры для SMA.
Вы можете выбрать обратное направление торговли, чтобы удовлетворить различные стили торговли.
Визуализация показателей, интуитивное определение точек продаж.
ROC-индикатор очень чувствителен к внезапным аномальным ценам, что может привести к ошибочным сигналам. Можно соответствующим образом увеличить параметр сглаживания SMA a, чтобы снизить чувствительность показателя 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")