Trend nach einer auf gleitenden Durchschnitten basierenden Strategie

Schriftsteller:ChaoZhang, Datum: 20.12.2023
Tags:

img

Übersicht

Diese Strategie verwendet Mark Minervinis Aktienwahlvorlage und gleitende Durchschnittsindikatoren, um Preistrends für automatischen Einstieg und Stop-Loss zu bestimmen. Sie beurteilt hauptsächlich, ob die Aktienkurse in einem Aufwärtstrend sind und ob sie die wichtigsten gleitenden Durchschnitte durchbrochen haben, um Kaufsignale zu generieren. Gleichzeitig setzt die Strategie eine Stop-Loss-Linie, um Verluste aktiv zu stoppen, wenn die Preise zurückfallen.

Strategieprinzip

Die Strategie beurteilt hauptsächlich folgende Bedingungen und erzeugt ein Kaufsignal, wenn sie gleichzeitig erfüllt sind:

  1. Der aktuelle Aktienkurs liegt sowohl über den gleitenden Durchschnittslinien von 150 als auch über den gleitenden Durchschnittslinien von 200 Tagen.
  2. Der gleitende Durchschnitt von 150 Tagen liegt über dem gleitenden Durchschnitt von 200 Tagen.
  3. Der gleitende 200-Tage-Durchschnitt ist seit mindestens einem Monat aufwärts.
  4. Der gleitende 50-Tage-Durchschnitt liegt sowohl über den gleitenden 150- als auch über den gleitenden 200-Tage-Durchschnitten.
  5. Der aktuelle Aktienkurs liegt über dem gleitenden 50-Tage-Durchschnitt.
  6. Der aktuelle Aktienkurs liegt mindestens 25% über seinem Tiefstand von 52 Wochen.
  7. Der aktuelle Aktienkurs liegt bei mindestens 25% seines 52-Wochen-Hochs.

Wenn die vorstehenden Bedingungen erfüllt sind, beurteilt die Strategie, dass sich der Aktienkurs in einem Aufwärtstrend befindet und erzeugt ein Kaufsignal.

Wenn der Aktienkurs um 5% von seinem Höchststand zurückfällt oder um 10% steigt, wird er den Verlust stoppen oder Gewinn machen.

Analyse der Vorteile

  1. Nutzen Sie Mark Minervinis Ideen zur Aktienauswahl, um die Rentabilität zu verbessern.
  2. Verwenden Sie mehrere gleitende Durchschnitte, um den Trend zu bestätigen und Kaufpunkte zu vermeiden.
  3. Setzen Sie einen Stop-Loss-Mechanismus ein, um große Verluste zu vermeiden.

Risikoanalyse

  1. Die Aktienkurse können sich kurzfristig anpassen und einen Stop-Loss auslösen.
  2. Gleitende Durchschnitte können Trends nicht vollständig bestimmen, und es kann zu falschen Ausbrüchen kommen.
  3. Die festgelegten Stop-Loss- und Take-Profit-Verhältnisse sind nicht perfekt, können zu frühzeitig Gewinne erzielen oder Verluste ausweiten.

Optimierung

  1. Versuchskombinationen von gleitenden Durchschnitten mit unterschiedlichen Parametern.
  2. Hinzufügen anderer technischer Indikatoren, um den Zeitpunkt der Einführung zu bestimmen.
  3. Optimieren Sie die Einstellungen für Stop Loss und Take Profit Ratio.

Zusammenfassung

Die Strategie folgt insgesamt der Idee des Trendhandels und erzeugt Kaufsignale, wenn der Aufwärtstrend der Aktienkurse bestätigt wird. Gleichzeitig ist ein Stop-Loss-Mechanismus eingerichtet, um Risiken zu kontrollieren. Durch die Optimierung verschiedener detaillierter Parameter können die Stabilität und Rentabilität der Strategie weiter verbessert werden.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)

Mehr