Estratégia de rotação de momentum multifatorial


Data de criação: 2023-10-25 11:52:19 última modificação: 2023-10-25 11:52:19
cópia: 0 Cliques: 491
1
focar em
1218
Seguidores

Estratégia de rotação de momentum multifatorial

Visão geral

Esta estratégia utiliza o RSI, MACD, Bollinger Bands, e os factores de parada de queda para realizar negociações rotativas de dinâmica multi-fator. A estratégia julga primeiro se vários indicadores técnicos emitem sinais de compra ou venda ao mesmo tempo, e, se assim for, executa a compra ou venda correspondente.

Princípio da estratégia

A estratégia inclui as seguintes partes:

  1. Os fatores de avaliação

    • RSI: Calcule o RSI de 14 ciclos para determinar se está abaixo da linha de compra definida ou acima da linha de venda definida
    • Sequência TD: Calcule o número de dias de parada de queda para determinar se as condições de compra e venda foram atingidas
    • MACD: Calcula os valores MACD e MACD históricos para determinar se as condições de compra e venda foram atingidas
    • Brinco: Calcule o Brinco de 20 dias para determinar se o preço atingiu o Brinco de 20 dias
  2. Entradas e saídas

    • Condições de compra: compra quando a sequência RSI, MACD e TD emitem sinais de compra ao mesmo tempo
    • Condições de venda: A sequência RSI, MACD e TD é vendida quando o sinal de venda é emitido simultaneamente
    • Paragem: paragem móvel com um número fixo de pontos ou porcentagem
    • Parar: definir o máximo ponto de perda tolerável e fazer um stop loss
  3. Otimização de Estratégia

    • Ajustar os parâmetros do RSI: otimizar os parâmetros do ciclo do RSI
    • Ajuste do ciclo MA: otimizar o parâmetro do ciclo da linha média
    • Ajuste das condições de entrada: aumento ou diminuição do sinal de entrada
    • Adicionar outros fatores: combinando mais indicadores técnicos e fatores estatísticos

Análise de vantagens estratégicas

  • Uma combinação de fatores para garantir a precisão do ingresso

Esta estratégia não considera apenas um único indicador técnico, mas combina vários fatores, como a sequência RSI, MACD e TD, para reduzir os falsos sinais causados por um único indicador e melhorar a precisão do ingresso.

  • Características do momento, captação de tendências

Indicadores como o RSI, MACD e outros têm características de dinâmica mais evidentes e conseguem capturar mudanças de tendência nos preços das ações. Em comparação com indicadores de tendências como a linha de equilíbrio, esses indicadores são mais sensíveis à inversão.

  • Mecanismos de suspensão e controlo de riscos

O stop-loss móvel pode ser parado com a operação do movimento, melhor para bloquear os lucros. A configuração de stop-loss pode controlar as perdas individuais.

  • Estratégia clara e simples

Esta estratégia, combinada com indicadores técnicos comuns, tem uma certa universalidade. As regras são relativamente simples e claras, fáceis de entender e operar.

Análise de risco estratégico

  • A maioria das pessoas não é bem sucedida.

Esta estratégia é baseada na manipulação do mercado de retorno e pertence à estratégia de reversão. Em um mercado de touros, a adoção desta estratégia pode causar frequentes paralisações e não ser eficaz.

  • A frequência de transações pode ser muito alta.

Se os parâmetros forem definidos de forma muito sensível, a frequência de negociação pode ser excessiva, aumentando os custos de negociação e a perda de pontos de deslizamento.

  • Indicadores de risco disperso

Esta estratégia depende de vários indicadores de sinais em uma mesma direção, mas, às vezes, os indicadores podem ser discordantes, resultando em sinais errados.

  • A parada de prejuízos é um risco.

A configuração de um ponto de parada fixo pode ser ultrapassada, e pode ser configurada uma configuração de parada dinâmica ou considerar a troca de ações para evitar esse risco.

Direção de otimização da estratégia

  • Optimizar parâmetros e reduzir a frequência de transações

Pode-se testar os parâmetros do RSI e os parâmetros do ciclo da linha média para encontrar combinações de menor frequência de negociação.

  • Aumentar os fatores estatísticos e aumentar a eficiência

Pode-se combinar as próprias características estatísticas das ações, como volatilidade, liquidez, etc. para definir parâmetros e aumentar a eficiência da estratégia.

  • Indicadores globais de mercado, como o VIX

Os parâmetros da estratégia podem ser ajustados de acordo com o índice de pânico do mercado, como o VIX, reduzindo a frequência de negociação durante o pânico do mercado.

  • Teste de diferentes períodos de detenção

Pode-se testar diferentes períodos de posse para determinar o impacto da posse de longo prazo ou a rotação de curto prazo na eficácia da estratégia.

  • Optimizar e testar estratégias de stop loss

O estudo de métodos mais avançados para parar a perda de energia pode ser feito para medir o efeito.

Resumir

Esta estratégia leva em consideração vários indicadores técnicos em conjunto, e usa o stop-loss móvel para bloquear os lucros e controlar os riscos, com base em garantir uma maior precisão de entrada. A estratégia é simples, clara e fácil de entender. A operação pode ser melhorada através da otimização de parâmetros e seleção de indicadores.

Código-fonte da estratégia
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)


RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference") 


TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)

[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0  and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)

RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)

basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false


BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)


ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5) 
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5) 
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5) 
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100) 

ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000

if (strategy.position_size > 0)
    strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
    
    
if (strategy.position_size < 0)   
    strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat) 
    

if (BuyCheck == true and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    


if (SellCheck == true and strategy.position_size == 0)
    strategy.entry("Sell", strategy.short, comment="Short Entry")
    


plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)