Trendfolgestrategie basierend auf der MA-Linie


Erstellungsdatum: 2024-02-22 17:24:02 zuletzt geändert: 2024-02-22 17:24:02
Kopie: 0 Klicks: 589
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgestrategie basierend auf der MA-Linie

Überblick

Die Strategie beurteilt die Richtung des Markttrends durch die Berechnung von MA Moving Averages für verschiedene Perioden, macht einen Overschlag bei einem Aufwärtstrend und macht einen Ausfall bei einem Abwärtstrend, um einen Trend zu verfolgen.

Strategieprinzip

  1. Berechnung der MA-Linien mit 20-, 60- und 120-Perioden
  2. Vergleiche der Größenverhältnisse von MA20, MA60 und MA120 zur Beurteilung der aktuellen Trendrichtung
    • Wenn die MA20>MA60>MA120, wird dies als Aufwärtstrend beurteilt.
    • Wenn der MA20 < der MA60 < der MA120 ist, wird er als Abwärtstrend beurteilt.
  3. Ein Plus bei MA20 und ein Minus bei MA60
  4. Verringerung des Verlustes mit MA60 als Referenz
    • Mehrkopf-Stop-Waren sind dreimal so hoch wie die von MA60
    • 0,9 mal so hoch wie bei MA60

Analyse der Stärken

  1. Trends mit MA-Kombinationen aus verschiedenen Perioden, Whipsaws vermieden
  2. Nur bei Trendwende einzutreten, um die Gewinnquote zu erhöhen
  3. Es gibt klare Stop-Loss-Regeln, um Risiken zu verringern

Risikoanalyse

  1. In einem konjunkturellen Zustand können sich die MA-Linien häufig kreuzen, was zu häufigen Transaktionen führt
  2. Die Stop-Loss-Parameter müssen optimiert werden, sonst kann es zu früh oder zu wenig Stop-Loss geben.

Optimierungsrichtung

  1. Erhöhung der Indikatoren für die Beurteilung von Erschütterungen und Vermeidung von häufigen Transaktionen in Erschütterungen
  2. Optimierung der MA-Perioden-Parameterkombinationen, um die optimalen Parameter zu finden
  3. Test und Optimierung von Stop-Loss-Faktoren, um ein Gleichgewicht zwischen maximaler Ertragssteigerung und Risikominderung zu gewährleisten

Zusammenfassen

Die Strategie ist sehr klar, und die Verwendung von MA für Trends ist ein Klassiker, der nach Optimierung der Parameter und Optimierung der Indikatoren zu einer sehr praktischen Trendverfolgungsstrategie werden kann.

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