Esta estratégia usa dois osciladores estocásticos com parâmetros diferentes para determinar as condições bull/bear. É um sistema típico de cruzamento de média móvel. O oscilador mais rápido julga tendências de curto prazo e sinais de entrada, enquanto o mais lento confirma a direção geral da tendência. Os sinais são gerados a partir da combinação.
O rápido %K mostra a direção da tendência a curto prazo.
Quando o oscilador rápido fornece um sinal de reversão, verifique a validade do oscilador lento.
%K cruzamento rápido acima do SM1 indica sinal de alta. %K lento acima de 50 significa tendência de alta, satisfazendo a condição longa.
O cruzamento rápido de %K abaixo de SM1 indica um sinal de baixa.
Fixar pontos de lucro e stop loss em percentagens fixas.
A combinação rápida e lenta reduz os riscos de ficar preso.
O parâmetro SM1 mais pequeno torna %K sensível à captura de oportunidades de curto prazo.
Os ciclos maiores julgam a tendência geral, os ciclos menores captam reversões.
Pontos fixos de lucro e stop loss tornam o risco controlado sem grandes oscilações.
A divergência entre os indicadores pode causar trocas perdidas ou sinais errados.
Os pontos fixos de obtenção de lucro e de stop loss não têm flexibilidade para se adaptarem aos mercados.
Parâmetros estocásticos precisam de otimização repetitiva, configurações inadequadas levam ao fracasso.
A alta frequência de negociação da negociação a curto prazo aumenta os custos de transação.
Adicionar outros indicadores ou filtros para garantir a qualidade do sinal.
Teste diferentes combinações de parâmetros para encontrar configurações ideais.
Incorporar medidas de volatilidade para tornar dinâmicos os níveis de captação de lucros e stop loss.
Use filtros de tempo para evitar eventos-chave e oscilações irracionais de preços.
Otimizar as estratégias de gestão de capital, como o dimensionamento das posições, para melhorar a eficiência do capital.
Esta estratégia integra osciladores estocásticos rápidos e lentos em um sistema bidirecional. A otimização adicional de parâmetros e a adição de filtros como indicadores de tendência e volatilidade podem melhorá-lo. Com controle de risco adequado, esta estratégia pode alcançar retornos excessivos relativamente constantes.
/*backtest start: 2023-08-17 00:00:00 end: 2023-09-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Double Stochastic", overlay=true) //-----------------------Stochastics------------------------// c= security(syminfo.tickerid,timeframe.period , close) h= security(syminfo.tickerid, timeframe.period, high) l= security(syminfo.tickerid, timeframe.period, low) c1= security(syminfo.tickerid, timeframe.period, close) h2= security(syminfo.tickerid, timeframe.period, high) l1= security(syminfo.tickerid, timeframe.period, low) K1 = input(5, title="K", minval=1, title="Leading K") SM1 = input(2, title="Smooth", minval=1, title="Leading Smooth ") k = ema(stoch(c, h, l, K1), SM1) K2 = input(97, title="K", minval=1, title="Lagging K") D2 = input(3, title="D", minval=1, title="Lagging D") SM2 = input(1, title="Smooth", minval=1, title="Lagging Smooth") k1 = ema(stoch(c1, h2, l1, K2), SM2) // buy ((k[2] < 40 and k > 40) and bars_up > 0 and k1 > 50) // sell (k[2] > 60 and k < 60) and bars_down > 0 and k1 < 50 //-----------------------Mechanics------------------------// buy = k1 > 50 and k < 30 and k > k[1] ? 1 : 0 sell = k1 < 50 and k > 70 and k < k[1] ? 1 : 0 buy_val = valuewhen(buy == 1, close, 1) sell_val = valuewhen(sell == 1, close, 1) buy_close = buy_val * input(1.20, minval=0.1) sell_close = sell_val / input(1.20, minval=0.1) //------------------------Buy/Sell-------------------------// longCondition = buy == 1 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) close_long = close >= buy_close if (close_long) strategy.close("My Long Entry Id") sellCondition = sell == 1 if (sellCondition) strategy.entry("My Short Entry Id", strategy.short) close_short = close <= sell_close if (close_short) strategy.close("My Short Entry Id")