Estratégia de negociação estocástica média

Autora:ChaoZhang, Data: 2023-10-26 16:20:33
Tags:

img

Resumo

Esta estratégia é baseada no Oscilador Estocástico Médio para julgamento de sinais de negociação e pertence a uma estratégia de seguimento de tendência. Ele calcula os valores médios móveis de %K e %D do Oscilador Estocástico Médio. Quando a cruz de ouro ocorre, vá longo. Quando a cruz de morte ocorre, vá curto. É uma estratégia típica de tendência.

Estratégia lógica

  1. Calcule os valores de %K e %D do Oscilador Estocástico Médio. %K é a média móvel de valores aleatórios calculados com base nos preços de fechamento durante um determinado período, refletindo a posição relativa do preço atual para os preços mais altos e mais baixos durante um determinado período. %D é a média móvel de %K usada para confirmar a tendência.

  2. A média móvel exponencialmente suave (EMA) é aplicada a %K e %D, respectivamente, para obter os valores médios _avg_k e _avg_d do oscilador estocástico médio.

  3. Determinar os sinais de negociação:

    • Signo de compra: quando _avg_k cruza _avg_d e _avg_d < 20, vá longo.

    • Signalização de venda: quando o _avg_k cruzar abaixo do _avg_d e o _avg_d > 80, vá para curto.

  4. Gestão de posições:

    • Posições em risco de crédito

    • Stop-loss curto: fechar curto quando _avg_d < 20

  5. Permitir no máximo 3 ordens na mesma direcção, que é uma estratégia de pirâmide.

Vantagens

  1. Usar médias móveis duplas para determinar cruz de ouro e cruz da morte pode efetivamente filtrar falsos rompimentos e melhorar a qualidade do sinal.

  2. A aplicação do Oscilador Estocástico Médio pode efetivamente rastrear as tendências de preços.

  3. A combinação de zonas de sobrecompra e de sobrevenda ajuda a evitar trocas frequentes no mercado de intervalo.

  4. Permitir a pirâmide pode ganhar mais lucro no mercado de tendências.

  5. A estratégia de stop loss controla perdas individuais.

Riscos

  1. As estratégias de negociação de médias móveis duplas tendem a gerar negociações frequentes, o que afetará a rentabilidade se os custos de transação forem demasiado elevados.

  2. O uso de pontos de stop loss fixos pode impedir a perda muito cedo saindo da tendência.

  3. Demasiadas pirâmides podem aumentar a perda.

  4. Não pode determinar eficazmente os pontos de inversão da tendência e pode conduzir a grandes perdas quando a tendência se inverte.

  5. Os períodos de parâmetros precisam ser otimizados porque diferentes períodos podem levar a resultados muito diferentes.

Optimização

  1. Considerar a introdução de indicadores de avaliação da tendência para evitar a negociação contra tendência.

  2. Ajustar dinamicamente os pontos de stop loss para se adequar melhor à tendência.

  3. Otimizar a estratégia de pirâmide, por exemplo, aumentar o tamanho da posição progressivamente.

  4. Incorporar outros indicadores para julgar precocemente a inversão da tendência e o lucro de saída.

  5. Optimização dos parâmetros de ensaio separadamente para diferentes produtos para melhorar a adaptabilidade.

Resumo

Em resumo, esta é uma estratégia típica de tendência. Ele usa o Oscilador Estocástico Médio para determinar a direção da tendência e as pirâmides quando a tendência ocorre. A vantagem é a forte capacidade de rastreamento adequada para o mercado de tendência. Mas é importante evitar a negociação de contra-tendência. Uma otimização adicional pode ser feita introduzindo o julgamento da tendência, otimizando a estratégia de stop loss, controlando os tempos de pirâmide, etc. Com a seleção adequada de parâmetros, bons resultados de rastreamento podem ser alcançados.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//1. AVG Stochastic Calculate
//1.1 AVG %K is calculated by apply EMA with smooth K period on Average of Original Stochastic %k & %d
//+ avg_k=ema((%k+%d)/2,smoothK)
//1.2 AVG %D is calculated by apply EMA with %d period on AVG %K
//+ avg_d=ema(avg_k,periodD)
//2. Parameter
//+ %K Length: 21
//+ %K Smoothing: 3
//+ %D Smoothing: 3
//+ Symbol: BTC/USDT
//+ Timeframe: M30
//+ Pyramiding: Maximum 3 orders at the same direction.
//3. Signal
//3.1 Buy Signal
//+ Entry: AVG %K crossover AVG %D and AVG %D < 20
//+ Exit: AVG %D > 80 
//3.2 Sell Signal
//+ Entry: AVG %K crossunder AVG %D and AVG %D > 80
//+ Exit: AVG %D < 20 
strategy(title="AVG Stochastic Strategy [M30 Backtesting]", overlay=true, pyramiding=3)
periodK = input.int(21, title="%K Length", minval=1)
smoothK = input.int(3, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
_avg_k=ta.ema(math.avg(k,d),smoothK)
_avg_d=ta.ema(_avg_k,periodD)
up=
   _avg_k[1]<_avg_d[1]
   and _avg_k>_avg_d
   and _avg_d<20
dn=
   _avg_k[1]>_avg_d[1]
   and _avg_k<_avg_d
   and _avg_d>80
var arr_val=0
if up
    arr_val:=1
    strategy.entry("Long", strategy.long)
if dn
    arr_val:=-1
    strategy.entry("Short", strategy.short)
if up[1] or dn[1]
    arr_val:=0
plotarrow(arr_val,title="Signal",colorup=color.green,colordown=color.red)
if _avg_d>80 
    strategy.close("Long")
if _avg_d<20 
    strategy.close("Short")
//EOF

Mais.