- Quadrado
- Tendência de seguir uma estratégia baseada nas linhas MA
Tendência de seguir uma estratégia baseada nas linhas MA
Autora:
ChaoZhang, Data: 2024-02-22 17:24:02
Tags:
Resumo
Esta estratégia calcula médias móveis (MA) de diferentes períodos para determinar a direção da tendência do mercado.
Princípio da estratégia
- Calcular os MAs de 20 períodos, 60 períodos e 120 períodos
- Comparar a relação de magnitude entre MA20, MA60 e MA120 para determinar a direção da tendência atual
- Se o MA20>MA60>MA120, julgar que a tendência é ascendente
- Se o MA20
- Caso o valor da posição em risco seja inferior a 50% do valor da posição em risco, o valor da posição em risco deve ser calculado em função da posição em risco.
- O valor da posição em risco deve ser calculado de acordo com o método de cálculo da posição em risco.
- A linha de lucro para posição longa é 3 vezes a MA60
- A linha de lucro para posição curta é 0,9 vezes a MA60
Análise das vantagens
- Usar combinações de MA de diferentes períodos para determinar a tendência para evitar whipssaws
- Apenas entre em pontos de reversão da tendência para aumentar a taxa de ganho
- Ter regras claras para obter lucros e parar perdas para reduzir os riscos
Análise de riscos
- Em mercados de intervalo limitado, os crossovers MA podem ocorrer com frequência, causando negociações demasiado frequentes
- Os parâmetros de take profit e stop loss precisam ser otimizados, caso contrário a posição pode ser interrompida prematuramente ou o take profit não é suficiente
Orientações de otimização
- Adicionar indicadores para identificar mercados de gama para evitar excesso de negociação
- Otimizar as combinações de períodos de MA para encontrar os melhores parâmetros
- Teste e otimize os coeficientes de lucro e stop loss para equilibrar a maximização dos retornos e minimizar os riscos
Resumo
A estratégia tem uma lógica clara de usar MAs para determinar tendências.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA60上多下空", overlay=true)
// 计算MA20/60/120
ma20 = ta.sma(close, 20)
ma60 = ta.sma(close, 60)
ma120 = ta.sma(close, 120)
// 判断MA的趋势
maUpTrend = ma20 > ma60 and ma60 > ma120
maDownTrend = ma20 < ma60 and ma60 < ma120
// 画竖直线标记MA趋势转折点
plotshape(maUpTrend and ta.crossover(ma20, ma60), style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small)
plotshape(maDownTrend and ta.crossunder(ma20, ma60), style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)
// 画背景标记MA趋势
bgcolor(maUpTrend ? color.new(color.green, 90) : na)
bgcolor(maDownTrend ? color.new(color.red, 90) : na)
// 建立多头仓位的条件
longCondition = ta.crossover(close, ma60)
// 建立空头仓位的条件
shortCondition = ta.crossunder(close, ma60)
// 在穿过MA60时,根据条件建立相应的多头或空头仓位
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// 止盈止损规则
calculateReturns() =>
close / strategy.position_avg_price - 1
takeProfitCondition = calculateReturns() >= 3 // 仓位盈利达到300%
stopLossCondition = calculateReturns() <= -0.1 // 仓位亏损达到10%
if (takeProfitCondition)
strategy.close("Long", comment="Take Profit")
strategy.close("Short", comment="Take Profit")
if (stopLossCondition)
strategy.close("Long", comment="Stop Loss")
strategy.close("Short", comment="Stop Loss")
Mais.