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.
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.
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.
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.
Gestão de posições:
Posições em risco de crédito
Stop-loss curto: fechar curto quando _avg_d < 20
Permitir no máximo 3 ordens na mesma direcção, que é uma estratégia de pirâmide.
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.
A aplicação do Oscilador Estocástico Médio pode efetivamente rastrear as tendências de preços.
A combinação de zonas de sobrecompra e de sobrevenda ajuda a evitar trocas frequentes no mercado de intervalo.
Permitir a pirâmide pode ganhar mais lucro no mercado de tendências.
A estratégia de stop loss controla perdas individuais.
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.
O uso de pontos de stop loss fixos pode impedir a perda muito cedo saindo da tendência.
Demasiadas pirâmides podem aumentar a perda.
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.
Os períodos de parâmetros precisam ser otimizados porque diferentes períodos podem levar a resultados muito diferentes.
Considerar a introdução de indicadores de avaliação da tendência para evitar a negociação contra tendência.
Ajustar dinamicamente os pontos de stop loss para se adequar melhor à tendência.
Otimizar a estratégia de pirâmide, por exemplo, aumentar o tamanho da posição progressivamente.
Incorporar outros indicadores para julgar precocemente a inversão da tendência e o lucro de saída.
Optimização dos parâmetros de ensaio separadamente para diferentes produtos para melhorar a adaptabilidade.
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