Tendencia siguiendo una estrategia basada en líneas de MA

El autor:¿ Qué pasa?, Fecha: 2024-02-22 17:24:02
Las etiquetas:

img

Resumen general

Esta estrategia calcula las medias móviles (MA) de diferentes períodos para determinar la dirección de la tendencia del mercado.

Principio de la estrategia

  1. Calcular las MAs de 20 períodos, 60 períodos y 120 períodos
  2. Comparar la relación de magnitud entre MA20, MA60 y MA120 para determinar la dirección actual de la tendencia
    • Si el MA20>MA60>MA120, juzgue que la tendencia es al alza
    • Si MA20
  3. Venga largo cuando el MA20 cruza el MA60 y corta cuando el MA20 cruza el MA60
  4. Se utilizará la línea de referencia MA60 para tomar beneficios y detener pérdidas.
    • La línea de ganancias para la posición larga es 3 veces el MA60
    • La línea de ganancias para la posición corta es 0,9 veces el MA60

Análisis de ventajas

  1. Utilice combinaciones de MA de diferentes períodos para determinar la tendencia para evitar los golpes
  2. Sólo entra en los puntos de inversión de tendencia para aumentar la tasa de ganancia
  3. Tener reglas claras para obtener ganancias y detener pérdidas para reducir los riesgos

Análisis de riesgos

  1. En los mercados de rango limitado, los cruces de MA pueden ocurrir con frecuencia, lo que provoca una negociación demasiado frecuente
  2. Los parámetros para obtener ganancias y detener pérdidas deben optimizarse, de lo contrario la posición puede detenerse prematuramente o obtener ganancias no es suficiente

Direcciones de optimización

  1. Añadir indicadores para identificar los mercados de rango para evitar el exceso de negociación
  2. Optimizar las combinaciones de períodos de MA para encontrar los mejores parámetros
  3. Prueba y optimiza los coeficientes de toma de ganancias y stop loss para equilibrar la maximización de los rendimientos y minimizar los riesgos

Resumen de las actividades

La estrategia tiene una lógica clara de usar MAs para determinar tendencias. Después de la optimización de parámetros y la optimización de indicadores, puede convertirse en una estrategia de tendencia muy práctica.


/*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")


Más.