Esta estratégia identifica a tendência usando médias móveis, obtém lucro em múltiplos ATR fixos e dimensionam dinamicamente as posições com base no ATR.
A estratégia usa a média móvel simples de comprimento N para determinar a direção da tendência.
Após a entrada, o objetivo de lucro é fixado em múltiplos ATR fixos a partir do preço de entrada, por exemplo, Objetivo de lucro = Preço de entrada + ATR * Fator para compras.
A estratégia também diminui as posições inversamente ao ATR, que representa a volatilidade do mercado.
A MA identifica a tendência, permitindo a sua sequência.
A ATR obtém lucros com base nas tendências, evitando reversões.
O dimensionamento dinâmico das posições gere o risco de acordo com a volatilidade do mercado.
Fator de lucro e parâmetros de dimensionamento personalizáveis.
O stop loss pode limitar ainda mais os riscos.
O atraso de MA pode causar entrada tardia.
As flutuações do ATR podem resultar em metas de lucro muito pequenas ou grandes.
A volatilidade excessiva leva a posições muito pequenas limitando os lucros.
A ausência de stop loss pode aumentar o risco de perda descontrolada.
A seleção de símbolos inadequada, por exemplo, ativos de baixa volatilidade, pode levar a um baixo desempenho.
Teste diferentes combinações de parâmetros para obter configurações ideais.
Melhorar a lógica de entrada adicionando outros indicadores como filtro.
Pesquise a tomada de lucro dinâmico e stop loss para flexibilidade.
Gerenciar posições com base em indicadores de volatilidade.
Adicionar um mecanismo de reentrada para prolongar o período de retenção.
A estratégia identifica a tendência com médias móveis, obtém lucro em múltiplos de ATR e posições de tamanhos por ATR. Tem alguma tendência após a capacidade e o risco pode ser ajustado através de parâmetros. Mas existem problemas de seleção de parâmetros e metas de lucro.
/*backtest start: 2023-09-10 00:00:00 end: 2023-09-17 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dongyun //@version=4 strategy("利润目标止损的移动平均线", overlay=true) period = input(80,'') ptper = input(252,'') ptfactor = input(12,'') sizeper = input(20, '') trend = 0.0 signal = 0 size = 1.0 investment = 100000 atrange = 0.0 ptrange = 0.0 stoph = 0.0 stopl = 0.0 if sizeper != 0 atrange := atr(sizeper) if atrange == 0 or sizeper == 0 size := 1 else size := investment/atrange * 0.1 trend := sma(close,period) if signal != 1 and nz(trend[1]) < nz(trend[2]) and trend > nz(trend[1]) strategy.entry('long',strategy.long, comment='open_long') signal := 1 else signal := nz(signal[1]) if signal != -1 and nz(trend[1]) > nz(trend[2]) and trend < nz(trend[1]) strategy.entry('short',strategy.short, comment='open_short') signal := -1 else if signal == 0 signal := nz(signal[1]) ptrange := atr(ptper) if strategy.position_size > 0 strategy.exit("exit_long", "long", qty = strategy.position_size, limit = close + ptfactor*ptrange , comment='trail_long') else if strategy.position_size < 0 strategy.exit("exit_short", "short", qty = abs(strategy.position_size), limit = close - ptfactor*ptrange, comment='trail_short')