Zweijährige Strategie für einen neuen Höchstwert der rückläufigen Moving Average

Schriftsteller:ChaoZhang, Datum: 2024-01-26 14:49:28
Tags:

img

Übersicht

Diese Strategie basiert auf der einzigartigen Berechnung des zweijährigen neuen Höchstpreises und des gleitenden Durchschnitts der Aktien.

Strategieprinzip

Die Kernlogik dieser Strategie beruht auf folgenden einzigartigen Berechnungen:

  1. Wenn der Aktienkurs in den letzten zwei Jahren ein neues Höchststand erreicht, bildet er einen kurzfristigen Höchststand.

  2. Wenn sich der Preis von diesem neuen Höchststand zurückzieht und zum 13-tägigen exponentiellen gleitenden Durchschnitt zurückzieht, bietet er eine gute Kaufmöglichkeit.

  3. Darüber hinaus muss der Aktienkurs, wenn das Kaufsignal ausgelöst wird, innerhalb von 10% des zweijährigen Höchststands liegen, nicht zu weit weg.

  4. Bei offenen Positionen wird die Position gestoppt, wenn der Kurs 5% unter die 21-Tage-MA-Linie fällt oder um 20% vom zweijährigen Höchststand sinkt, um Gewinn zu erzielen.

Strategische Vorteile

Dies ist eine langfristige Ausbruchsstrategie mit folgenden Vorteilen:

  1. Der einzigartige zweijährige Höchstpreis kann potenzielle Trendumkehrmöglichkeiten effektiv erkennen.

  2. Die 13-Tage-EMA-Linie dient als Einstiegsfilter, um Whipsaws zu vermeiden und eine stärkere Dynamik zu bestimmen.

  3. Die einzigartigen Berechnungen erzeugen Signale, die auf der Preisbewegung basieren und subjektive Interferenzen vermeiden.

  4. Ein angemessener Stop-Loss ermöglicht es, die meisten Gewinne zu erzielen.

Risiken und Lösungen

Es gibt auch einige Risiken, hauptsächlich wie folgt:

  1. Die Märkte können tiefe Rückgänge erleben, die nicht rechtzeitig aufhören können.

  2. Über Nacht große Lücken können einen perfekten Stop-Loss verhindern. Daher muss der Stop-Loss-Prozentsatz erweitert werden, um sich anzupassen.

  3. Die 13-Tage-Linie kann Konsolidierungen nicht gut filtern und zu viele falsche Signale erzeugen.

  4. Neue Höchstpreise können nicht gut bei der Bestimmung von Trendänderungen wirken.

Strategieoptimierung Vorschläge

Es gibt Raum für weitere Optimierungen:

  1. Einbeziehung anderer Instrumente zur Beurteilung der allgemeinen Marktbedingungen und Vermeidung unnötiger Positionen.

  2. Hinzufügen von Impulsindikatoren, um Whipsaw-Bereiche besser zu vermeiden.

  3. Optimieren Sie gleitende Durchschnittsparameter, um Preismuster besser zu erfassen.

  4. Nutzen Sie maschinelles Lernen, um den zweijährigen Höchstparameter für mehr Flexibilität dynamisch zu optimieren.

Schlussfolgerung

Zusammenfassend ist dies eine einzigartige langfristige Breakout-Strategie, deren Schlüssel das zweijährige hohe Preisniveau und die 13-tägige EMA-Linie als Einstiegsfilter sind.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Part Timer

//This script accepts from and to date parameter for backtesting. 
//This script generates white arrow for each buying signal

//@version=4
strategy("AMRS_LongOnly_PartTimer", overlay = true)

//i_endTime = input(defval = timestamp("02 Jun 2021 15:30 +0000"), title = "End Time", type=input.time)

StartYear=input(defval = 2000, title ="Start Year", type=input.integer)
StartMonth=input(defval = 01, title ="Start Month", type=input.integer)
StartDate=input(defval = 01, title ="Start Date", type=input.integer)

endYear=input(defval = 2021, title ="End Year", type=input.integer)
endMonth=input(defval = 06, title ="End Month", type=input.integer)
endDate=input(defval = 03, title ="End Date", type=input.integer)

ema11=ema(close,11)
ema13=ema(close,13)
ema21=ema(close,21)

afterStartDate = true
//g=bar_index==1
//ath()=>
    //a=0.0
    //a:=g ? high : high>a[1] ? high:a[1]
    
//a = security(syminfo.tickerid, 'M', ath(),lookahead=barmerge.lookahead_on)

newHigh = (high > highest(high,504)[1])
//plot down arrows whenever it's a new high
plotshape(newHigh, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.tiny)
b=highest(high,504)[1]
VarChk=((b-ema13)/b)*100
TrigLow = (low <= ema13) and (low >= ema21) and (VarChk <= 10)
plotshape(TrigLow, style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
ExitPrice=(ema21 - (ema21*0.05))
DrawPrice=(b - (b*0.20))
stopprice=0.0
if (close <= ExitPrice)
    stopprice := ExitPrice
if (close <= DrawPrice)
    stopprice := DrawPrice

if (TrigLow and afterStartDate)
    strategy.entry("Long", strategy.long)

strategy.exit("exit","Long", stop=stopprice)
//beforeEndDate = (time < i_endTime)
beforeEndDate = (time >= timestamp(syminfo.timezone,endYear, endMonth, endDate, 0, 0))
if (beforeEndDate)
    strategy.close_all()

Mehr