Estratégia de empilhamento de impulso de diferentes prazos

Autora:ChaoZhang, Data: 2023-10-26 17:39:26
Tags:

img

Resumo

A Estratégia de Empilhamento de Momento calcula principalmente a Taxa de Mudança (ROC) em diferentes períodos, pesa e empilha-os para formar um indicador de momento abrangente para julgar a direção da tendência.

Estratégia lógica

A estratégia primeiro calcula os indicadores ROC em períodos de 10, 15 ou 20 dias, etc. Em seguida, suaviza o ROC e os empilha em uma proporção ponderada de 1 a 4 para obter a fórmula:

roc1 = (sma(roc(close,10),10)*1)
roc2 = (sma(roc(close,15),10)*2)  
...
osc = roc1+roc2+roc3+roc4+...

O valor da posição em risco ponderado em função do valor da posição em risco ponderado em função da posição em risco.

Em seguida, suaviza osc por uma SMA de um (default 10) dias para obter oscsmt.

Compara osc com oscsmt, quando osc cruza oscsmt como o sinal de alta e entra em longo.

Por último, pode optar por reverter a direcção da negociação.

Vantagens

  1. O empilhamento de indicadores de ímpeto a curto e a longo prazo pode capturar tendências a curto e a longo prazo, evitando falsos sinais.

  2. A comparação entre osc e oscsmt pode reduzir as negociações desnecessárias nos mercados laterais.

  3. Parâmetros personalizáveis para ajustar os períodos de ROC e a suavidade da SMA.

  4. A direcção de negociação reversível atende a diferentes estilos de negociação.

  5. Os indicadores visuais tornam os pontos de compra e venda intuitivos.

Riscos e optimizações

  1. O ROC é muito sensível a anormalidades repentinas de preços, que podem gerar sinais errados.

  2. Os parâmetros padrão podem não se adequar a todos os instrumentos de negociação.

  3. As transacções baseadas apenas no cruzamento OSC e OSCSMT.

  4. Mais adequado para negociações de médio e longo prazo.

Conclusão

A estratégia de acumulação de impulso calcula vários períodos de ROC para obter um indicador de impulso abrangente, capturando tendências de curto e longo prazo, evitando falsos sinais. Em comparação com um único ROC, melhora muito a qualidade e a confiabilidade do sinal.


/*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")

Mais.