Estratégia estocástica dupla

Autora:ChaoZhang, Data: 2023-11-07 15:25:19
Tags:

img

Resumo

A estratégia de Estocástica Dupla julga as zonas de alta e baixa calculando indicadores estocásticos do período atual e vários prazos, com o objetivo de comprar baixo e vender alto.

Estratégia lógica

A estratégia calcula dois conjuntos de indicadores estocásticos simultaneamente. O primeiro conjunto é a estocástica do período atual, ou seja, os valores K e D. O segundo conjunto é a estocástica de 3 vezes o período atual, ou seja, MTFK e MTFD.

Quando o MTFK cruza acima de 50 e o atual K é maior que D, um sinal de compra é gerado, indicando uma zona de alta para ir longo.

Portanto, a estratégia usa indicadores estocásticos duplos para julgar zonas de alta e baixa e acompanhar as tendências dos preços.

Especificamente, a lógica de entrada longa é:

longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD  

A lógica de entrada curta é:

shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD

onde mtfK é o valor K do período 3x, e mtfD é o valor D do período 3x. Os sinais longos são gerados quando mtfK cruza acima de 50 e k>d. Os sinais curtos são gerados quando mtfD cruza abaixo de 50 e k

A estratégia também define a lógica de stop loss. Quando longo, se o mtfD cruza abaixo da banda superior, um sinal de fechamento é gerado. Quando curto, se o mtfK cruza acima da banda inferior, um sinal de fechamento é acionado.

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. O uso de estocásticos duplos fornece um julgamento mais preciso de zonas de alta e baixa. O indicador do período atual julga tendências de curto prazo, enquanto o indicador do período maior julga tendências de longo prazo. Combinando os dois, pode capturar melhor as tendências.

  2. A negociação baseada no cruzamento de diferentes indicadores de período de tempo pode efetivamente acompanhar as tendências e alcançar a compra baixa e a venda alta.

  3. A lógica de stop loss ajuda a controlar os riscos e a limitar as perdas até certo ponto.

  4. A lógica da estratégia é simples e clara, fácil de entender e implementar para negociação ao vivo.

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. A estocástica dupla pode gerar sinais falsos, causando negociações desnecessárias, por exemplo, divergências entre tendências de curto e longo prazo causadas por eventos repentinos.

  2. As configurações de stop loss incorretas podem levar a perdas aumentadas.

  3. As trocas frequentes geradas pela estratégia podem afetar negativamente os lucros devido às comissões.

  4. A estratégia baseia-se exclusivamente em indicadores técnicos, sem considerar os elementos fundamentais, que devem ser acompanhados até certo ponto.

Soluções:

  1. Ajustar os parâmetros da estocástica dual para reduzir os falsos sinais.

  2. Otimizar a lógica de stop loss e definir distâncias de stop loss razoáveis.

  3. Ajustar os parâmetros para reduzir a frequência de negociação.

  4. Preste atenção a eventos fundamentais significativos para evitar negociações subjetivas.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros da estocástica dual para reduzir os sinais falsos.

  2. Incorporar outros indicadores para filtrar sinais, tais como MACD, médias móveis, etc., evitando sinais falsos.

  3. Otimizar a estratégia de stop loss testando diferentes pontos e rácios de stop loss para controlar eficazmente os riscos.

  4. Incorporar indicadores de volume de negociação, tais como breakouts de volume, para evitar negociações ineficazes durante a consolidação de preços.

  5. Teste diferentes períodos de detenção. períodos de detenção muito curtos levam a comissões de comer os lucros, muito longo não consegue parar a perda no tempo.

  6. Incorporar fatores fundamentais, fechando posições em torno de eventos significativos para evitar ser chocado.

Resumo

A estratégia de Estocástica Dupla julga as zonas de alta e baixa por indicadores estocásticos de período atual e múltiplos períodos, alcançando o objetivo de comprar baixo e vender alto. Tem vantagens como forte capacidade de rastreamento de tendências, lógica simples e fácil negociação ao vivo. Mas existem riscos, que exigem ajuste de parâmetros, otimização de stop loss e incorporação de outros técnicos ou fundamentais para melhorar.


/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("stoch startegy", overlay=false,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

len = input(54, minval=1, title="Length for Main Stochastic") 
smoothK = input(12, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(30, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(100,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",blue,style=line, linewidth=2)
plot(d,"current TF d",red,style=line, linewidth=2)
plot(mtfK,"MTF TF k",black,style=line)
plot(mtfD,"Multi TF d",green,style=line, linewidth=2)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and  k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and  k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)
    
showZones   = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule: 
bullishRule = k >= mtfD
// bearish signal rule: 
bearishRule = k <= mtfD
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ( ruleState==1 ? green : ruleState==-1 ? red : gray ) : na , title="supertrend Bullish/Bearish Zones", transp=90)



Mais.