Esta estratégia utiliza métodos de aprendizado de máquina para implementar uma estratégia de negociação automatizada pronta para uso.
Esta estratégia baseia-se principalmente nos seguintes pontos-chave:
Especificamente, a estratégia traçará o Hull MA, a EMA de 13 períodos e a EMA de 21 períodos. Julgando as direções de tendência de curto e médio prazo com base no status longo e curto das EMAs. Combinado com o Hull MA para determinar tendências de ciclos mais longos. Isso fornece orientação sobre a direção geral para os sinais comerciais subsequentes.
Antes do ajustamento das posições, a estratégia referirá-se aos preços mais altos e mais baixos no canal da entidade correspondentes aos níveis de suporte e resistência, evitando assim a geração de sinais de negociação nas principais zonas de preços.
Finalmente, a estratégia invoca os preços de abertura e fechamento de 60 períodos. Quando o preço de fechamento cruza acima do preço de abertura, um sinal de compra é gerado. Quando cruza abaixo, um sinal de venda é gerado. Isso completa toda a lógica de negociação.
A maior vantagem desta estratégia é que combina indicadores de aprendizagem de máquina e análise técnica para obter uma solução de negociação automatizada lógica, ajustável e fácil de usar.
Combinação de múltiplos indicadores melhora a precisão do sinal
A estratégia não se baseia apenas em um ou dois indicadores, mas leva em conta vários fatores, como tendências, suporte / resistência e avanços de preços.
Configuração flexível dos parâmetros
A duração dos períodos Hull MA, EMA, períodos crossover aberto/fechado pode ser ajustada através de parâmetros, tornando a estratégia adaptável a diferentes ambientes de mercado.
Sinais de negociação automatizados
Os sinais de negociação baseados em indicadores e crossovers podem desencadear automaticamente compras e vendas sem julgamento manual, reduzindo a dificuldade.
Exibição visualizada
Os gráficos da estratégia podem mostrar claramente a estrutura do mercado, o estado da tendência e os preços-chave, apresentando intuitivamente a base para o julgamento da estratégia.
Embora esta estratégia tenha sido otimizada em vários aspectos, ainda existem alguns riscos potenciais:
Incapacidade de acompanhar movimentos drásticos de preços
Em mercados voláteis, os indicadores podem tornar-se ineficazes ou atrasados, fazendo com que a estratégia falhe em rastrear as mudanças de preço no tempo.
Existência de taxa de erro do sinal
Os sinais de negociação baseados em indicadores e modelos, mais ou menos, terão alguns sinais falsos ou sinais em falta.
Risco de combinação longo/curto
A estratégia que faz simultaneamente posições longas e curtas tem o risco de perdas em ambos os lados se os julgamentos forem errados.
Risco de sobreajuste
As definições de parâmetros excessivamente complexas correm o risco de sobreajuste, sendo necessário simplificar o sistema com um número limitado de combinações de parâmetros.
Ainda há espaço para otimizar esta estratégia, principalmente nos seguintes aspectos:
Adicionar mais sinais de indicador
Para além dos indicadores existentes, podem ser introduzidos mais indicadores auxiliares, tais como canais BOLL, indicadores KD, etc., para enriquecer a referência do sistema.
Aplicar modelos de aprendizagem profunda
Usar indicadores simples como características para treinar o LSTM e outros modelos de aprendizagem profunda para melhorar a qualidade do sinal.
Incorporar dados fundamentais
Adicionar dados macroeconómicos, informações sobre políticas e outros fatores fundamentais para otimizar as decisões de longo ciclo.
Valor do risco e da posição
Introduzir estratégias de stop loss, ajustar dinamicamente o tamanho das posições com base na volatilidade do retorno da estratégia para controlar estritamente os riscos.
Esta estratégia integra tendências, níveis de suporte/resistência, breakouts e vários outros indicadores, utilizando métodos de aprendizado de máquina para alcançar soluções quantitativas automatizadas e prontas para uso. Tem as vantagens de combinações de indicadores diversos, parâmetros ajustáveis e sinais automatizados, ao mesmo tempo em que enfrenta desvios de rastreamento, erros de sinal, riscos de mistura longa/curta até certo ponto.
/*backtest start: 2023-01-22 00:00:00 end: 2024-01-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD) //Candle body resistance Channel-----------------------------// len = 34 src = input(close, title="Candle body resistance channel") out = sma(src, len) last8h = highest(close, 13) lastl8 = lowest(close, 13) bearish = cross(close,out) == 1 and falling(close, 1) bullish = cross(close,out) == 1 and rising(close, 1) channel2=input(false, title="Bar Channel On/Off") ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0) ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0) //fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel") //-----------------Support and Resistance RST = input(title='Support / Resistance length:', defval=10) RSTT = valuewhen(high >= highest(high, RST), high, 0) RSTB = valuewhen(low <= lowest(low, RST), low, 0) RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0) RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0) //--------------------Trend colour ema------------------------------------------------// src0 = close, len0 = input(13, minval=1, title="EMA 1") ema0 = ema(src0, len0) direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0 plot_color = direction > 0 ? lime: direction < 0 ? red : na plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color) //-------------------- ema 2------------------------------------------------// src02 = close, len02 = input(21, minval=1, title="EMA 2") ema02 = ema(src02, len02) direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0 plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2) //=============Hull MA// show_hma = input(false, title="Display Hull MA Set:") hma_src = input(close, title="Hull MA's Source:") hma_base_length = input(8, minval=1, title="Hull MA's Base Length:") hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA") //============ signal Generator ==================================// Period=input('60') ch1 = request.security(syminfo.tickerid, Period, open) ch2 = request.security(syminfo.tickerid, Period, close) longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) if (longCondition) strategy.entry("BUY", strategy.long) shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) if (shortCondition) strategy.entry("SELL", strategy.short) plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close") plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open") ///////////////////////////////////////////////////////////////////////////////////////////