Esta é uma estratégia de negociação de ruptura de momento baseada nas linhas K e D do indicador Smoothed Stochastic Oscillator.
A estratégia consiste nas seguintes partes:
Configurações do indicador
Utilizando RSI de 14 períodos para gerar linhas K e D do indicador Smoothed Stochastic Oscillator, com SMA de 3 períodos aplicada nas linhas K e D.
Geração de sinal
Quando a linha K cruza o nível 20, um sinal de compra é gerado para entrada longa.
Parar de Perder
O preço de stop loss é usado com uma distância de stop de trail fixa.
Dimensão da posição
O número de pontos entre o preço de stop loss e o fechamento atual é calculado usando o mínimo mínimo dos últimos 20 períodos. Em seguida, o tamanho da posição é calculado com base no valor em dólares em risco por negociação e valor por ponto.
Assim, a estratégia identifica a ruptura do momento em caso de reversão da sobrevenda como sinal de entrada, e adota um dimensionamento preciso da posição e um stop loss para a reversão do momento da negociação, com um controlo de risco eficaz.
A estratégia apresenta as seguintes vantagens:
Signo de entrada claro na saída da zona de sobrecompra com forte impulso.
Movimentos flexíveis de trailing stop com oscilações do mercado.
O dimensionamento preciso das posições controla o risco de negociação única.
Stop loss preciso baseado em mínimos históricos.
Lógica de dimensionamento de posição simples e clara.
Uma lógica estratégica simples e clara, fácil de entender.
Estrutura de código limpa, fácil de ler e modificar.
A estratégia apresenta alguns riscos:
Fluctuações de preços subjacentes, desencadeamento de stop loss frequentes durante o mercado volátil.
O potencial é maior do que a negociação.
Uma propriedade direcional, incapaz de lucrar com o movimento inverso dos preços.
Filtragem ineficaz das condições de mercado.
As seguintes otimizações podem ajudar a gerir os riscos:
Otimizar os parâmetros para evitar o excesso de negociação.
Utilize entradas escalonadas para reduzir o risco de uma direção.
Adicionar análise da tendência de um período de tempo mais longo para evitar a negociação em condições desfavoráveis de mercado.
Otimizar a estratégia de stop loss para evitar sensibilidade excessiva.
Os seguintes aspectos da estratégia podem ser otimizados:
Otimizar o stop loss para usar stop de trail dinâmico, stop loss em etapas, média móvel, etc. para torná-lo mais suave.
Adicionar análise da tendência de um período de tempo maior para evitar a negociação em mercados laterais.
Considere duas posições direcionais para lucrar com retrações.
Usar o aprendizado de máquina para otimização de parâmetros automáticos para encontrar parâmetros ideais para mudanças nas condições do mercado.
Otimizar o dimensionamento das posições através da utilização de percentagem fixa, capital fixo, etc., para melhorar a utilização do capital.
Adicione mais filtros com indicadores como volume, Bandas de Bollinger para melhorar a qualidade dos sinais comerciais.
Em geral, esta é uma estratégia de ruptura de momento simples e clara. Adota uma abordagem de stop loss prudente para controlar efetivamente o risco de uma única negociação. Mas ainda são necessárias otimizações para adaptar melhor a estratégia às condições específicas do mercado, filtrar sinais ineficazes e alcançar um melhor equilíbrio entre retorno e risco. Aumentar a análise de tendências de prazos maiores e o dimensionamento da posição são direções de otimização importantes para essa estratégia. Em resumo, como uma estratégia básica de ruptura de momento, ainda é prática e vale a pena pesquisar mais para adaptá-la às condições de mercado de instrumentos comerciais específicos.
//@version=2 //descripcion: //entrada en saturacion oscilador estocastico //salida por trailing strategy("MomentumBreak#1", overlay=true,calc_on_every_tick=true, default_qty_type=strategy.fixed,currency="USD") //entradas y variables de indicadores smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) overbought=input(80) oversold=input(20) //entradas de stop , trail, profit stop=input(1500) stop_dentro_de_los_ultimos_lows=input(20) trail_points=input(500) trail_offset=input(100) profit=input(1000) riesgo_en_dolares=input(15) //condicion de compra: k>80 buycondition=crossover(k,oversold) //entrada a la posicion posicionabierta=0 if year>2015 if buycondition stoplow=lowest(stop_dentro_de_los_ultimos_lows) riesgo_en_pips = (close - stoplow) valor_del_pip = (riesgo_en_dolares / riesgo_en_pips) tamanio_de_la_posicion= ( valor_del_pip) //la posicion la esta calculando bien strategy.entry("buy",strategy.long) strategy.exit("salida","buy",trail_points=trail_points,trail_offset=trail_offset,stop=stoplow,comment=tostring(stoplow)) //////////////////////////////////condicion de stop por drodown 10% equity //strategy.risk.max_drawdown(15,strategy.cash) // condicion de stop por perdida mayor a $15 en op abierta //strategy.risk.max_intraday_loss(15,strategy.cash) //formas de tomar stop: // cuando llega a una media movil: strategy.close o strategyentry o strategy.exit o strategy.order // determinado por un numero de pips strategy.exit // determinado por el calculo de la posicion: //tomar el minimo minimo de los ultimos 20 periodos, guardarlo como nivel de stop //calcular la posicion en base a ese stop: //prcio de entrada - precio de stop = pips_en-reisgo //riesgo_e_dolares / pips_en_riesgo = pip_value //position_size=10000 * pip_value