Estratégia de balanço de distribuição extrema

Autora:ChaoZhang, Data: 2023-11-13 17:03:08
Tags:

img

Esta estratégia visa detectar extremos do Oscilador de Momento de Chande usando detecção de distribuição extrema em prazos de 1 minuto principalmente para Bitcoin e criptomoedas.

Após uma extensa pesquisa sobre o oscilador de momento de Chande, eu decidi criar uma estratégia que usa níveis de percentil de distribuição normal para cortar entradas. Isso por sua vez pode criar bons lucros em dias consecutivos no período de tempo de 1 minuto, com o objetivo final de obter uma versão mais forte desta estratégia rodando em um bot e imprimir algum dinheiro. A estratégia é bem definida, mas também pode ser relaxada para fazer mais negociações, dando um tamanho de amostra maior e melhor taxa de Sharpe.

A estratégia verifica se o valor de Chande está em um percentil extremo com base nas últimas centenas de valores de Chande - se for, abrirá uma posição.

Nenhum stop loss ou take profit é implementado no swing ainda, mas esta será a próxima adição para realmente minimizar as perdas e amplificar os lucros potenciais.

Qualquer par de criptomoedas líquidas nos prazos mais baixos irá obter um bom resultado com esta estratégia.

Também temos uma estratégia gratuita de 15M e 1H disponível.

Estratégia lógica

A estratégia calcula primeiro o Oscilador de Momento de Chande, que se baseia na mudança entre o fechamento do período atual e o fechamento do período anterior.

Em seguida, registra os valores de Chande durante um determinado período de retrospectiva (períodos padrão 425) e calcula os diferentes níveis de percentil. Quando o valor atual de Chande atinge um percentil extremo pré-definido (padrão 1% para comprar, 99% para vender), ele aciona um sinal de entrada longo / curto. Os sinais de saída são acionados quando o valor de Chande atinge os níveis normais de percentil (padrão 97,5% e 2,5%).

Desta forma, a estratégia pode capturar rupturas extremas do valor do Chande, permitindo-lhe captar movimentos de tendência repentinos.

Análise das vantagens

  • Captura explosões de mercado rapidamente usando o impulso do indicador Chande
  • Baixo risco de utilização com detecção extrema de distribuição normal
  • Parâmetros flexíveis adaptáveis aos diferentes regimes de mercado
  • Lógica de estratégia simples e intuitiva, fácil de compreender e implementar

Análise de riscos

  • Chande propenso a falsos sinais como indicador de momento sensível ao ruído de curta duração
  • Períodos de retirada longos com negociação de valor extremo, baixa frequência de negociação intradiária
  • Risco de perda de oscilações sem meta de stop loss/lucro
  • Risco de otimização excessiva com ajuste inadequado dos parâmetros

O gerenciamento de riscos deve se concentrar no uso de paradas, normalização de parâmetros extremos e filtragem de sinais com tendência.

Orientações de otimização

A estratégia pode ser otimizada em vários aspectos:

  1. Adicionar stop loss/profit taking para controlar a perda por transação a níveis razoáveis.

  2. Otimize os parâmetros ajustando os retrospectivos curto/longo para diferentes mercados.

  3. Adicionar condições de filtro com indicadores de tendência como MA para remover falsos sinais contra a tendência geral.

  4. Combinar vários prazos, utilizando TF mais elevado para medir a direção da tendência e TF mais baixo para a entrada.

  5. Teste a robustez dos parâmetros em diferentes produtos, ajustando para mais variedades.

  6. Introduzir aprendizado de máquina para otimizar os parâmetros e filtros dinamicamente.

Conclusão

Em geral, esta é uma estratégia que utiliza valores extremos do oscilador de momento de Chande para capturar movimentos de tendência. Sua lógica direta e execução eficiente tornam-na muito adequada para capitalizar rapidamente as tendências de explosão. Ao mesmo tempo, o controle do risco, evitar a otimização excessiva e a otimização multidimensional são necessários para adaptá-la em todos os regimes de mercado.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Chande Minute Swinger", overlay=true)

//Chande

length = input(9, minval=1)
src = close
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)

//Parameters to change

lengthLookback = 425 //425 golden number
buyPercentile = 1
sellPercentile = 99
linePercentileLow = 2.5
linePercentileHigh = 97.5

buy = percentile_nearest_rank(chandeMO, lengthLookback, buyPercentile)
exitBuy= percentile_nearest_rank(chandeMO, lengthLookback, linePercentileHigh)
sell = percentile_nearest_rank(chandeMO, lengthLookback, sellPercentile)
exitSell = percentile_nearest_rank(chandeMO, lengthLookback, linePercentileLow)

chandeMA = sma(chandeMO, 9) //sma for potential other strategies implementing cross / trend

//Entry conditions

closeLongCondition = chandeMO > exitBuy ? true : false
closeShortCondition = chandeMO < exitSell ? true : false
longCondition = chandeMO < buy
shortCondition = chandeMO > sell

if (longCondition)
    strategy.entry("long", strategy.long)
    

if (shortCondition)
    strategy.entry("short", strategy.short)
    
//Introducing the closes and a stoploss will minimise loss and bring up the sharpe ratio
//Current settings are enabled for maximum potential but big risk
    
//strategy.close("long", when=(closeLongCondition == true))
//strategy.close("short", when=(closeShortCondition == true))

Mais.