A estratégia do Oscilador Estocástico Exponencial Suavizado é uma versão modificada do indicador estocástico tradicional, adicionando um parâmetro de peso exponencial para ajustar a sensibilidade do estocástico e gerar sinais de negociação.
O núcleo da estratégia estocástica suavizada exponencial está no parâmetro de peso exponencial ex. A estocástica tradicional é calculada como:
s = 100 * (close - lowest low) / (highest high - lowest low)
Com o parâmetro exponencial, a fórmula é:
exp = ex<10? (ex)/(10-ex) : 99
s = 100 * (close - lowest low) / (highest high - lowest low)
ks = s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
:-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
O aumento da exp torna o indicador menos sensível, enquanto a diminuição da exp o torna mais sensível.
Os sinais de compra são gerados quando ks cruza os níveis de sobrecompra. Os sinais de venda são gerados quando ks cruza os níveis de sobrevenda.
Em comparação com a estratégia estocástica tradicional, a estratégia do oscilador estocástico suavizado exponencial tem as seguintes vantagens:
A estratégia do oscilador estocástico suavizado exponencial também apresenta os seguintes riscos:
A estratégia do Oscilador Estocástico Exponencial Suavizado pode ser otimizada a partir dos seguintes aspectos:
A estratégia do oscilador estocástico suavizado exponencial gera sinais de negociação mais confiáveis ajustando a sensibilidade do indicador estocástico. Pode rastrear efetivamente tendências de médio a longo prazo e também pode ser otimizada em uma estratégia de curto prazo. Com maior composibilidade e otimização de parâmetros, tem o potencial de alcançar retornos lucrativos mais consistentes.
/*backtest start: 2023-01-11 00:00:00 end: 2024-01-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © faytterro //@version=5 strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100) len=input.int(14, "length") ex=input.int(2, title="exp", minval=1, maxval=10) exp= ex<10? (ex)/(10-ex) : 99 s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len)) ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 : -math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 plot(ks, color= color.white) bot=input.int(20) top=input.int(80) longCondition = ta.crossover(ks, bot) and bar_index>0 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = ta.crossunder(ks, top) and bar_index>0 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short) // strategy.close("My Long Entry Id") alertcondition(longCondition, title = "buy") alertcondition(shortCondition, title = "sell") h1=hline(top) h2=hline(bot) h3=hline(100) h4=hline(0) fill(h1,h3, color= color.rgb(255,0,0,200-top*2)) fill(h2,h4, color= color.rgb(0,255,0,bot*2))