A estratégia baseia-se em uma média móvel para determinar a direção da tendência, com um parâmetro de ATR para parar e combinar o ATR para ajustar dinamicamente a posição. O objetivo é acompanhar a tendência para obter lucro, enquanto controla o risco.
A estratégia usa uma média móvel simples de comprimento N para determinar a direção da tendência. Faça mais quando usa o SMA longo no SMA curto; Faça um vazio quando usa o SMA longo no SMA curto.
Após a entrada, a estratégia usa um determinado múltiplo do ATR como parada. Se a posição longa for parada, a parada é o preço de entrada + ATR * Factor. Quando o preço excede a parada, a parada é retirada.
Além disso, a estratégia ajusta a posição com o tamanho do ATR. O tamanho do ATR representa a volatilidade do mercado, e o tamanho da posição é inversamente proporcional ao ATR. Quanto maior o ATR, menor a posição.
Usando a média móvel para determinar a direção da tendência, há uma certa capacidade de rastrear a tendência.
O ATR é um método de travamento que pode ser lucrativo e evitar a reversão.
A posição dinâmica pode ser ajustada de acordo com a volatilidade do mercado para controlar o risco.
Os parâmetros de paragem e de posição podem ser personalizados.
A combinação de stop loss pode limitar ainda mais o risco.
Há um atraso na média móvel, que pode levar a um atraso na entrada. Parâmetros mais sensíveis podem ser testados.
A variação do tamanho do ATR pode causar um bloqueio pequeno ou grande demais. A tendência pode ser extraída da linha média do ATR.
Quando os movimentos são muito grandes, a posição pode ter um impacto muito pequeno no lucro. Pode-se definir um limite inferior para a posição.
O risco de expansão dos prejuízos causados por um stop loss não definido. Pode ser incluído na estratégia de stop loss móvel.
A estratégia pode ser ineficaz com a escolha inadequada de indicadores, como ativos de baixa volatilidade. Os indicadores com maior volatilidade devem ser escolhidos.
Teste diferentes combinações de parâmetros para encontrar o melhor.
Optimizar a lógica de abertura de posição, como adicionar filtros de outros indicadores.
Estudar estratégias de stop loss e stop loss dinâmicas para tornar o stop loss mais flexível.
Gestão de posições em combinação com indicadores de volatilidade.
A partir de agora, os investidores poderão se inscrever no mecanismo de readmissão para prolongar a sua permanência.
A estratégia usa a média móvel para julgar a tendência, parar com a proporção de ATR e ajustar dinamicamente a posição. A vantagem é que há uma certa capacidade de acompanhamento de tendências, que pode ser controlada pelo risco de ajuste de parâmetros. Mas há problemas como dificuldade de escolha de parâmetros, excesso de parada.
/*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')