
A ideia central desta estratégia é combinar o indicador KST com a linha média EMA, para permitir o julgamento e o acompanhamento da tendência. Compre quando o indicador KST aparecer e forcar o ouro abaixo de 0, e venda quando aparecer e forcar o morto acima de 0. Ao mesmo tempo, combinando a linha média EMA como resistência de suporte, só emite um sinal de negociação quando o preço de fechamento quebra a linha média EMA.
Calcule o indicador KST: Calcule o indicador ROC de 10, 15, 20 e 30 dias, depois a soma ponderada deles, e finalmente obtenha o indicador KST através de um SMA de 9 dias.
Calcular a linha média do EMA: a linha média do EMA com a duração de 50 anos.
Geração de um sinal de compra: quando a linha rápida do indicador KST atravessa a linha lenta ((Gold Fork) e está abaixo de 0, enquanto o preço de fechamento está acima da linha média EMA, gera um sinal de compra.
Geração de sinal de venda: quando a linha rápida do indicador KST atravessa a linha lenta (dead fork) e é superior a 0, enquanto o preço de fechamento é inferior à linha média da EMA, gera um sinal de venda.
Configuração de stop loss móvel: tracking stop loss configurado como 1% do valor da conta, com stop loss automático.
O indicador KST pode identificar mudanças de tendência, a linha média EMA pode confirmar a direção da tendência, e a combinação dos dois pode determinar com precisão o momento do ENTRY.
Utilize o eixo 0 de combinação de cruzamento rápido e lento para determinar a direção do indicador KST, evitando transações inúteis.
A linha média da EMA serve como resistência de suporte, filtrando ainda mais os falsos sinais, entrando apenas quando se quebra a EMA.
O sistema de controle automático de perdas para controlar o risco e manter a lucratividade.
A estratégia tem menos parâmetros e é mais fácil de implementar e otimizar.
O indicador KST está atrasado na avaliação de mudanças de tendência e pode perder algumas oportunidades. Pode ser reduzido o ciclo de cálculo ou otimizado o modo de ponderação.
A EMA mediana tem atraso e pode falhar em pontos de mudança de tendência. Outros indicadores ou combinações de medianas podem ser testados.
A paragem de perdas muito relaxada pode aumentar os prejuízos; a paragem de perdas muito rígida pode ser interrompida por grandes flutuações durante a noite. É necessário testar cuidadosamente para encontrar o ponto de equilíbrio.
Os sinais de estratégia são frequentes e os custos de transação podem ser altos.
Otimizar os parâmetros de ciclo de cálculo do indicador KST para encontrar combinações de parâmetros mais sensíveis a uma variedade específica.
Teste diferentes indicadores ou combinações de equilíbrio, como MA, WMA, etc., para ver qual funciona melhor com KST.
Tente ajustar o stop loss de acordo com a volatilidade ou a dinâmica do ATR.
Aumentar as condições de filtragem, como o aumento do volume de transações, para evitar que os clientes sejam enganados.
Considere a combinação de outros indicadores, como RSI, MACD, etc., para tornar a estratégia mais abrangente.
Testar o efeito dos parâmetros de diferentes variedades e desenvolver programas de otimização adaptados a diferentes variedades.
A estratégia global é clara, confiável e fácil de implementar. A estratégia determina a reversão da tendência através do indicador KST, a EMA filtra de forma uniforme e controla os riscos de perda. A estratégia pode acompanhar automaticamente a tendência da linha média e longa.
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")
len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)
delta = kst - sig
buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA
longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0
longStopPrice := if (strategy.position_size > 0)
stopValue = close * (1 - longTrailPerc)
max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if (strategy.position_size < 0)
stopValue = close * (1 + shortTrailPerc)
min(stopValue, shortStopPrice[1])
else
999999
// Submit entry orders
if (buySignal)
strategy.entry(id="EL", long=true)
if (sellSignal)
strategy.entry(id="ES", long=false)
// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
strategy.exit(id="XL TRL STP", stop=longStopPrice)
if (strategy.position_size < 0)
strategy.exit(id="XS TRL STP", stop=shortStopPrice)
alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')
alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')