Estratégia de tendência de vários prazos

Autora:ChaoZhangData: 23 de dezembro de 2023
Tags:

img

Resumo

Esta estratégia usa 4 prazos diferentes para determinar a direção da tendência, para descobrir a tendência de longo prazo, enquanto usa o curto prazo como oportunidades de entrada. Quando os preços abertos dos 4 prazos (diário, semanal, de 15 dias, mensal) são todos inferiores aos preços de fechamento, é determinada como uma tendência de alta de longo prazo; quando os preços abertos dos 4 prazos são todos superiores aos preços de fechamento, é determinada como uma tendência de baixa de longo prazo. A estratégia abrirá posições quando a tendência de longo prazo for confirmada e um sinal de curto prazo for gerado.

Estratégia lógica

Esta estratégia utiliza 4 prazos: diário, semanal, de 15 dias e mensal. Determina a direcção da tendência a longo prazo com base na relação entre os preços de abertura e de encerramento destes 4 prazos.

Quando os preços de abertura dos prazos diários, semanais, de 15 dias e mensais são todos inferiores aos preços de fechamento, indica que os preços estão mostrando uma tendência ascendente nesses 4 prazos, por isso é determinado como um mercado de alta e de alta a longo prazo.

Em contrapartida, quando os preços de abertura destes quatro prazos são todos superiores aos preços de fechamento, indica-se que os preços estão a apresentar uma tendência descendente nestes quatro prazos, pelo que é determinado como um mercado de baixa e um mercado de baixa a longo prazo.

Após determinar a direção da tendência de longo prazo, a estratégia abrirá posições quando um sinal de compra/venda for gerado no curto prazo.

Análise das vantagens

Esta estratégia tem as seguintes vantagens:

  1. O julgamento em vários prazos melhora a precisão

    Usar 4 prazos diferentes para avaliar de forma abrangente a tendência a longo prazo pode melhorar a precisão do julgamento e evitar ser enganado pelo ruído do mercado a curto prazo.

  2. Combinação de estratégias flexíveis de longo prazo e de curto prazo

    Usando quadros de longo prazo para determinar a direção principal e de curto prazo para gerar sinais de negociação, esta estratégia é flexível, que pode capturar oportunidades de curto prazo sem se desviar da tendência principal.

  3. Parâmetros simples, fáceis de implementar

    Os principais indicadores de avaliação desta estratégia são apenas os preços de abertura e fechamento dos 4 prazos.

Análise de riscos

Esta estratégia apresenta também alguns riscos:

  1. Reversão da tendência a longo prazo

    Se a tendência de alta a longo prazo se inverter em baixa a longo prazo, esta estratégia não pode julgar prontamente, o que pode levar a perdas maiores.

  2. Desempenho fraco a curto prazo

    Esta estratégia depende principalmente de sinais de curto prazo para determinar oportunidades específicas de entrada. Se o desempenho de curto prazo for ruim e incapaz de abrir posições no momento certo, isso afetará o desempenho geral. Os parâmetros de curto prazo podem ser ajustados ou a estratégia de curto prazo pode ser otimizada neste caso.

Orientações de otimização

Existem outros espaços de otimização para esta estratégia:

  1. Adicionar estratégia de stop loss

    O movimento ou a ordem stop loss podem ser definidos para controlar a perda máxima.

  2. Otimizar a estratégia a curto prazo

    Podem ser testados diferentes indicadores de curto prazo para encontrar estratégias de curto prazo mais adequadas e melhorar o desempenho de entrada.

  3. Ajuste dinâmico das posições

    As posições podem ser ajustadas dinamicamente com base na volatilidade do mercado, aumentando as posições quando a tendência se torna mais óbvia.

  4. Combinar aprendizagem de máquina

    Uma grande quantidade de dados pode ser coletada e métodos de aprendizado de máquina podem ser usados para otimizar dinamicamente parâmetros e regras.

Conclusão

Esta estratégia determina a direção da tendência em vários prazos, adota a idéia de combinar longo prazo e curto prazo, o que garante o julgamento das principais tendências e utiliza oportunidades de curto prazo. A lógica geral é clara e razoável, simples de implementar, e é uma estratégia de tendência efetiva. Com a introdução de técnicas como stop loss e gerenciamento dinâmico de posição, esta estratégia tem grande espaço para melhoria e vale a pena praticar e otimizar.


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

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("5D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("45D", "Timeframe 4")

transaction_size = input(1, "Contract/Share Amount")

src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor


TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long, qty=transaction_size, when=strategy.position_size == 0)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short, qty=transaction_size, when=strategy.position_size == 0)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)


Mais.