Zeit- und Raumoptimierte Multi-Zeitrahmen-MACD-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-29 10:15:34
Tags:

img

Übersicht

Diese Strategie optimiert die Parameter des MACD-Indikators, kombiniert sich mit gleitendem Durchschnitt, Preisbewegung und spezifischen Handelszeiten, um eine hohe Gewinnrate Forex-Handelsstrategie zu erzielen.

Strategie Logik

  1. Verwenden Sie 3 K-Linien, um die Kursentwicklung zu beurteilen. Wenn die Schlusskosten der letzten 3 K-Linien höher sind als die Eröffnungskosten, wird dies als Aufwärtstrend beurteilt; wenn die Schlusskosten der letzten 3 K-Linien niedriger sind als die Eröffnungskosten, wird es als Abwärtstrend beurteilt.

  2. Berechnen Sie die Unterschiede zwischen schneller Linie, langsamer Linie und MACD.

  3. Die Handelszeiten sind täglich zwischen 09:00 und 09:15 Uhr festgelegt.

    • Gehen Sie lang, wenn der Aufwärtstrend mit der MACD-Differenz über 0 zusammenfällt
    • Wenn der Abwärtstrend mit der MACD-Differenz unter 0 zusammenfällt, gehen Sie kurz
  4. Der Take-Profit ist auf 0,3 Pips und der Stop-Loss auf 100 Pips festgelegt.

  5. Schließen Sie alle Positionen zwischen 21:00 und 21:15.

Vorteile der Strategie

  1. Verwendung einer Kombination von mehreren Zeitrahmenindikatoren zur umfassenden Beurteilung der Trendrichtung und zur Verbesserung der Entscheidungsgenauigkeit.

  2. Optimieren Sie die Handelszeit, um Perioden hoher Marktvolatilität zu vermeiden und das unnötige Stop-Loss-Risiko zu reduzieren.

  3. Festlegen Sie angemessene Verhältnisse für Gewinn und Stop-Loss, um die Gewinnbindung zu maximieren und Verlustvergrößerung zu vermeiden.

  4. Insgesamt hat die Strategie eine sehr hohe Gewinnrate und eignet sich für häufige kurzfristige Geschäfte.

Risiken der Strategie

  1. Die Handelszeit ist relativ fest, kann Handelschancen verpassen, wenn nicht rechtzeitig auf den Markt gelangen.

  2. Der MACD-Indikator ist anfällig für irreführende Signale.

  3. Die Parameter müssen je nach Produkt angepasst werden.

  4. Das Gesamtrisiko ist gering, aber zu große Positionen unter hoher Verschuldung können immer noch zu riesigen Verlusten führen.

Richtungen für die Optimierung der Strategie

  1. Kombination mit anderen Indikatoren, um den Trend zu bestimmen, um irreführende Signale des MACD zu vermeiden.

  2. Optimieren Sie die Gewinn-/Stop-Loss-Verhältnisse, indem Sie optimale Parameter aus den Backtestdaten berechnen.

  3. Erweiterung der für die Strategie anwendbaren Handelsvarianten, Bewertung der Auswirkungen der Parameter-Ausrichtung auf verschiedene Produkte.

  4. Einführung von Algorithmen für maschinelles Lernen zur dynamischen Auswahl optimaler Parameter auf der Grundlage unterschiedlicher Marktbedingungen.

Schlussfolgerung

Insgesamt eignet sich diese Strategie für Anfänger. Die Logik ist klar, der Optimierungsraum ist groß und die Risiken sind kontrollierbar. Durch die Anpassung der Öffnungszeiten und die Festlegung angemessener Gewinn-Verlust-Verhältnisse können hohe Renditen erzielt werden. Weitere Optimierungen können vorgenommen werden, um die Parameter dynamisch anzupassen und sich komplexeren Marktumgebungen anzupassen.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © exlux99

//@version=4
strategy("Very high win rate strategy", overlay=true)


//

fast_length =12
slow_length= 26
src = close
signal_length = 9
sma_source = false
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

//ma

len=10
srca = input(close, title="Source")
out = hma(srca, len)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


timeinrange(res, sess) => time(res, sess) != 0

// = input('0900-0915', type=input.session, title="My Defined Hours")
myspecifictradingtimes = '0900-0915'
exittime = '2100-2115'

optionmacd=true


entrytime = time(timeframe.period, myspecifictradingtimes) != 0
exit = time(timeframe.period, exittime) != 0     

if(time_cond and optionmacd )
    if(close > open and close[1] > open[1] and close[2] > open[2] and entrytime  and crossover(hist,0))
        strategy.entry("long",1)
    if(close< open and close[1] < open[1] and close[2] < open[2] and entrytime and crossunder(hist,0))
        strategy.entry("short",0)      


tp = input(0.0003, title="tp")
//tp = 0.0003
sl = input(1.0 , title="sl")
//sl = 1.0
strategy.exit("closelong", "long" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closelong")
strategy.exit("closeshort", "short" , profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick, alert_message = "closeshort")


Mehr