Trend nach Strategie auf Basis von MA-Linien

Schriftsteller:ChaoZhang, Datum: 2024-02-22 17:24:02
Tags:

img

Übersicht

Diese Strategie berechnet gleitende Durchschnitte (MA) verschiedener Zeiträume, um die Markttrendrichtung zu bestimmen.

Strategieprinzip

  1. Berechnung von 20-Perioden-, 60-Perioden- und 120-Perioden-MA
  2. Vergleichen Sie die Größenverhältnisse zwischen MA20, MA60 und MA120 zur Bestimmung der aktuellen Trendrichtung
    • Wenn MA20>MA60>MA120 ist, wird der Trend aufwärts beurteilt.
    • Wenn MA20
  3. Bei der Überschreitung von MA20 über MA60 Long und bei der Überschreitung von MA20 unter MA60 Short
  4. Verwenden Sie MA60 als Referenzlinie für Take Profit und Stop Loss
    • Die Gewinngrenze für eine Long-Position beträgt das 3-fache der MA60
    • Die Gewinngrenze für die Short-Position beträgt 0,9 mal MA60

Analyse der Vorteile

  1. Verwenden Sie MA-Kombinationen aus verschiedenen Perioden, um den Trend zu bestimmen, um Whipsaws zu vermeiden
  2. Eintritt nur an Trendumkehrpunkten, um die Gewinnrate zu erhöhen.
  3. Sie haben klare Regeln für Gewinn und Stop-Loss, um Risiken zu reduzieren.

Risikoanalyse

  1. Auf den Märkten mit Bandbreiteverhältnissen können häufig MA-Crossovers auftreten, was zu einem zu häufigen Handel führt.
  2. Die Parameter für Take Profit und Stop Loss müssen optimiert werden, sonst kann die Position vorzeitig gestoppt werden oder Take Profit ist nicht ausreichend

Optimierungsrichtlinien

  1. Hinzufügen von Indikatoren zur Identifizierung von Bereichsgebundenen Märkten zur Vermeidung von Überhandelungen
  2. Optimierung der MA-Periodenkombinationen, um die besten Parameter zu finden
  3. Testen und optimieren Sie die Gewinn- und Stop-Loss-Koeffizienten, um die maximale Rendite und die Minimierung der Risiken auszugleichen

Zusammenfassung

Die Strategie hat eine klare Logik der Verwendung von MAs, um Trends zu bestimmen.


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


Mehr