Estratégias de rastreamento de tendências baseadas em indicadores KST

Autora:ChaoZhang, Data: 15 de Setembro de 2023 12:05:21
Tags:

Tendência de seguir a estratégia utilizando o indicador KST

Este artigo explica detalhadamente uma tendência quantitativa após a estratégia usando o indicador KST. Ele gera sinais de negociação calculadamente o cruzamento entre a linha KST e a linha de sinal.

I. Lógica da estratégia

Os principais passos para a geração de sinal são:

  1. Calcular os valores de múltiplos indicadores ROC com períodos diferentes.

  2. Aplicar as médias móveis aos valores ROC separadamente e tirar a soma para derivar a linha KST.

  3. Suavizar ainda mais a linha KST usando a média móvel para obter a linha de sinal.

  4. Um sinal de compra é gerado quando a linha KST cruza acima da linha de sinal, e vice-versa para os sinais de venda.

  5. Pode ser selecionada uma dimensão de posição adequada.

Ao tomar a soma de múltiplos valores ROC, a linha KST reflete as tendências de preços de curto e longo prazo.

II. Vantagens da Estratégia

A maior vantagem é o cálculo abrangente dos indicadores, que incorpora informações sobre tendências em todos os prazos.

Outra vantagem é a utilização simples e intuitiva do indicador com uma linha de sinal clara.

Por último, o dimensionamento ajustável das posições ajuda a controlar a exposição geral ao risco.

III. Deficiências potenciais

No entanto, existem algumas questões:

Em primeiro lugar, o próprio indicador tem um certo atraso na reacção às variações de preços.

Em segundo lugar, a dependência apenas do KST torna-o suscetível a reversões.

Além disso, é necessária uma otimização extensiva para evitar o sobreajuste.

IV. Resumo

Em resumo, este artigo explicou uma tendência quantitativa após a estratégia usando sinais de cruzamento KST. Ele reflete as tendências de preço através do indicador para sinais de comércio, mas requer gerenciamento de atraso do indicador e ajuste adequado dos parâmetros.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title="KST Alert", shorttitle="KST Alert", format=format.price, precision=4)
roclen1 = input.int(10, minval=1, title = "ROC Length #1")
roclen2 = input.int(15, minval=1, title = "ROC Length #2")
roclen3 = input.int(20, minval=1, title = "ROC Length #3")
roclen4 = input.int(30, minval=1, title = "ROC Length #4")
smalen1 = input.int(10, minval=1, title = "SMA Length #1")
smalen2 = input.int(10, minval=1, title = "SMA Length #2")
smalen3 = input.int(10, minval=1, title = "SMA Length #3")
smalen4 = input.int(15, minval=1, title = "SMA Length #4")
siglen = input.int(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => ta.sma(ta.roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = ta.sma(kst, siglen)
plot(kst, color=#009688, title="KST")
plot(sig, color=#F44336, title="Signal")
hline(0, title="Zero", color = #787B86)
eL1=ta.crossover(kst,sig)
eS1=ta.crossunder(kst,sig)
ch = 0
t = year(time('D'))
ch := ta.change(t) != 0 ? 1 : 0
T1 = time(timeframe.period, "0915-1520")
session_open = na(t) ? false : true
newDay = ta.change(time("15m")) != 0
strategy.entry("Long1", strategy.long, when = eL1)
strategy.entry("Short1", strategy.short, when = eS1)


Mais.