Estratégia de negociação de lucros de sequência dinâmica

Autora:ChaoZhang, Data: 2024-02-27 14:43:17
Tags:

img

Resumo

Este artigo apresenta principalmente uma estratégia de negociação quantitativa chamada Dynamic Trailing Take Profit Trading Strategy. Esta estratégia define uma linha de lucro dinâmico baseada no indicador ATR para realizar lucros rápidos tomando dentro de 1-2 velas após um movimento de preço favorável súbito, evitando perdas quando os preços voltarem novamente.

Princípios

A lógica de negociação desta estratégia é muito simples e clara.

  1. Use o cruzamento de SMA de 14 períodos e SMA de 28 períodos como o sinal para longo e curto. Quando a SMA de 14 períodos ultrapassa a SMA de 28 períodos, vá longo. Quando a SMA de 14 períodos ultrapassa a SMA de 28 períodos, vá curto.

  2. Calcule o indicador ATR e multiplique por um fator para obter a posição de take profit dinâmica.

  3. Quando a direção da posição é longa, adicione o preço alto e a largura do canal de lucro dinâmico para obter a linha de lucro longo.

  4. Uma vez que o preço excede esta linha dinâmica de take profit, take profit para sair imediatamente.

Através das etapas acima, esta estratégia atinge um efeito simples, mas eficiente de rastreamento de lucro e captação rápida de lucro. O canal ATR fornece a capacidade de ajuste dinâmico para a linha de captação de lucro, enquanto a condição de 1 barra recém-adicionada garante que a linha de captação de lucro seja ativada apenas sob condições favoráveis de mercado súbitas. Isso pode reduzir efetivamente a saída prematura devido à captação de lucro.

Vantagens

A Estratégia de negociação de lucros por absorção dinâmica tem as seguintes vantagens:

  1. A ideia é simples e clara, fácil de compreender e implementar, adequada para os iniciantes aprenderem.

  2. O ATR dinâmico pode automaticamente acompanhar os lucros e evitar deixar os lucros na mesa.

  3. Adicionar 1 bar condição alta/baixa impede que o take profit seja acionado em movimentos menores.

  4. O comprimento do ATR e o multiplicador podem ser ajustados para ajustar o grau de obtenção de lucro.

  5. Pode sair rapidamente para capturar movimentos de preço favoráveis.

  6. O valor da posição em risco deve ser calculado em função do valor da posição em risco.

Análise de riscos

Há também alguns riscos com esta estratégia:

  1. A expansão súbita do ATR pode causar uma saída prematura do lucro.

  2. Não consegue filtrar eficazmente o ruído do mercado, propenso a sinais falsos.

  3. Confiar exclusivamente no crossover da SMA para a tomada de decisões, ineficaz para situações de mercado complexas.

  4. Não existe um mecanismo de stop loss para limitar efetivamente as perdas.

  5. O parâmetro padrão pode não corresponder a todos os produtos, sendo necessária uma otimização.

Para reduzir os riscos acima, podemos otimizar a partir dos seguintes aspectos:

  1. Adicionar regras de filtragem baseadas em outros indicadores para eliminar falsos sinais.

  2. Adicionar estratégias de stop loss para controlar estritamente a perda por negociação.

  3. Otimize os parâmetros usando a Análise Walk Forward.

  4. Otimizar separadamente os parâmetros para diferentes produtos.

  5. Aumentar os modelos de aprendizagem de máquina para decisões mais inteligentes.

Orientações de otimização

Com base na análise de risco, as direcções de otimização incluem principalmente:

  1. Adicionar filtro de sinal: Adicionar regras de filtragem baseadas em indicadores como MACD, Bollinger Band etc. após o sinal para evitar ruído.

  2. Adicionar linha de stop lossO valor da linha de stop loss baseada no ATR ou na trailing stop deve ser calculado em função da perda de transação.

  3. Optimização de parâmetrosOptimize parâmetros como comprimento ATR, ATR Multiplier usando aprendizado de máquina.

  4. Ajuste de risco: dimensionamento das posições, parâmetros de risco baseados em diferentes produtos.

  5. Modelo de fusãoCombine esta estratégia com aprendizagem de máquina, redes neurais para melhorar a precisão.

  6. Intervenção manual: Permitir a substituição manual dos níveis de take profit/stop loss em momentos críticos.

Com a otimização nas direcções acima, a rentabilidade e a estabilidade da estratégia podem ser muito melhoradas.

Conclusão

Em resumo, a Dynamic Trailing Take Profit Trading Strategy é uma estratégia de take profit muito prática e eficiente. Tem uma idéia clara e fácil de entender. Através da take profit dinâmica, pode automaticamente rastrear lucros e sair rapidamente durante tendências fortes. Enquanto isso, esta estratégia também tem alguns riscos. Pode ser melhorada adicionando filtros de sinal, stop loss, otimizando parâmetros etc. para se adaptar a ambientes de mercado mais complexos.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Peter_O

//@version=5
strategy("TrailingTakeProfit example", overlay=true, margin_long=100, margin_short=100, default_qty_value = 1, initial_capital = 100)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))

if longCondition
    strategy.entry("Long", strategy.long, comment="long", alert_message="long")
if shortCondition
    strategy.entry("Short", strategy.short, comment="short", alert_message="short")

atr_length=input.int(7, title="ATR Length")
atr_multiplier = input.float(1.5, title="ATR Multiplier")
atr_multiplied = atr_multiplier * ta.atr(atr_length)
ttp_top_bracket = strategy.position_size>0 ? high[1]+atr_multiplied : na
ttp_bottom_bracket = strategy.position_size<0 ? low[1]-atr_multiplied : na

plot(ttp_top_bracket, title="ttp_top_bracket", color=color.lime, style=plot.style_linebr, offset=1)
plot(ttp_bottom_bracket, title="ttp_bottom_bracket", color=color.red, style=plot.style_linebr, offset=1)

strategy.exit("closelong", from_entry="Long", limit=ttp_top_bracket, alert_message = "closelong")
strategy.exit("closeshort", from_entry="Short", limit=ttp_bottom_bracket, alert_message = "closeshort")

// var table alertsDisplayTable = table.new(position.top_right, 1, 5, color.black)
// if barstate.islastconfirmedhistory
//     table.cell(alertsDisplayTable, 0, 0, "TradingConnector-compatible alerts sent", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 1, "at Long Entry: long", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 2, "at Short Entry: short", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 3, "at Long Exit: closelong", text_color=color.white)
//     table.cell(alertsDisplayTable, 0, 4, "at Short Exit: closeshort", text_color=color.white)


Mais.