Basierend auf der Preiswellentheorie und der gleitenden Durchschnittsstrategie


Erstellungsdatum: 2023-11-13 16:39:41 zuletzt geändert: 2023-11-13 16:39:41
Kopie: 1 Klicks: 640
1
konzentrieren Sie sich auf
1617
Anhänger

Basierend auf der Preiswellentheorie und der gleitenden Durchschnittsstrategie

Überblick

Die Strategie nutzt die Theorie der Preiswellen in Kombination mit einem gleitenden Durchschnitt, um nach Möglichkeiten zu suchen, Trends zu bilden, vernünftige Stop-Losses zu setzen und Stop-Losses zu verfolgen, um das Risiko zu kontrollieren, um die Gewinne zu maximieren. Die Strategie eröffnet nur Positionen in den angegebenen Handelszeiten und vermeidet Marktschwankungen zu bestimmten Zeiten.

Strategieprinzip

  • Verwenden von SMMA-Wechselmittel zur Berechnung von Preisdurchschnittswerten, um Marktlärm zu filtern und Trends zu erkennen
  • Beurteilen Sie Preiswellen anhand von Höchst- und Tiefstpreisen in einem bestimmten Zeitraum und identifizieren Sie Trendwendepunkte
  • Die Preiswelle überschreitet den gleitenden Durchschnitt und überschreitet ihn.
  • Einstellung eines Stop-Loss-Punktes mit ATR-basierten Tracking-Stops zur Risikokontrolle
  • Positionen nur zu bestimmten Handelszeiten eröffnen, um Marktschwankungen am Wochenende und zu bestimmten Tageszeiten zu vermeiden
  • Bei einem Rückwärtssignal wird die Position stillgelegt.

Analyse der Stärken

  • Die Preiswellen-Theorie wird genutzt, um die Preiswendepunkte zu bestimmen und die Richtung der Trends mit Hilfe eines gleitenden Durchschnitts zu bestimmen, um Trends effektiv zu erkennen.
  • Die Stop-Loss-Punkt-Einstellung mit ATR-Dynamic-Tracking-Stopp ermöglicht eine effektive Kontrolle des Einzelstopps
  • Positionen nur zu liquiden Zeiten zu eröffnen, um unnötige Rutsche mit starken Schwankungen in bestimmten Zeitabschnitten zu vermeiden
  • Streng nach dem Parallax-Stop-Prinzip, bei Rückwärtssignalen zu stoppen, um maximale Gewinne zu erzielen

Risikoanalyse

  • Wenn die Preiswellen nicht genau beurteilt werden, kann es zu wiederholten Transaktionen in nicht-trendenden Zonen kommen.
  • Die Verzögerung des Moving Averages könnte einen Trendwendepunkt verpassen
  • Eine zu kleine Stop-Loss-Punkt ist leicht zu stoppen, eine zu große kann zu größeren Verlusten führen.
  • Feststeuerung kann nicht flexibel angepasst werden

Risikolösung:

  • Optimierung der Wellenzyklusparameter und Anpassung der Schrägmittelparameter
  • In Kombination mit Stochastics Indicators und anderen, um die Umkehrsignale zu bestimmen
  • Dynamische Optimierung von Stop-Loss-Punkten und Stoppbedingungen

Optimierungsrichtung

  • Optimierung der Wellenzyklusparameter und Suche nach optimalen Planigen Durchschnittszyklen
  • Zusammengefügt Stoch-Indikator-Urteil umgekehrt, Set-Signal-Filter falsche Durchbruch
  • Versuchen Sie, den Stop-Loss-Punkt dynamisch mit der Stop-Position zu verändern
  • Erweitern Sie die Bandbreite des Stop-Loss-Punktes, um nicht eingeklemmt zu werden
  • Optimierungsparameter für verschiedene Sorten und Handelszeiten

Zusammenfassen

Diese Strategie integriert die Theorie der Preiswellen mit den Pivot-Average-Indikatoren, um das Risiko zu kontrollieren, indem die Richtung der Preiswellen und die Trendbestätigung beurteilt werden, die Stop-Loss-Einstellung und die Verfolgung von Stop-Loss-Einträgen nach der Umgehung der festgelegten Handelszeitzone, und die Strategie kann die Stabilität und die Ertragsrate durch Parameteroptimierung und das Hinzufügen von Hilfsindikatoren weiter verbessern.

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

//@version=4
strategy("FX Strategy Based on Fractals and SMMA", overlay=true)

// パラメータ
SMMAPeriod1 = input(30, title="SMMA Period")
StopLoss1 = input(7, title="Stop Loss %")
TrailingStopCoef1 = input(2.7, title="Trailing Stop Coefficient")
fractalPeriod = input(5, title="Fractal Period")

// SMMAの計算関数
smma(src, length) =>
    var float smma = na
    if na(smma[1])
        smma := sma(src, length)
    else
        smma := (smma[1] * (length - 1) + src) / length
    smma

// フラクタルの近似
highFractal = high[2] > high[1] and high[2] > high[3] and high[2] > high[4] and high[2] > high
lowFractal = low[2] < low[1] and low[2] < low[3] and low[2] < low[4] and low[2] < low

// エントリー条件
longEntrySignal = lowFractal and close[1] < smma(close, SMMAPeriod1)
shortEntrySignal = highFractal and close[1] > smma(close, SMMAPeriod1)

// エントリー実行
if (longEntrySignal)
    strategy.entry("Long", strategy.long)

if (shortEntrySignal)
    strategy.entry("Short", strategy.short)

// トレーリングストップの計算
atrValue = atr(10)
longStopPrice = close - atrValue * TrailingStopCoef1
shortStopPrice = close + atrValue * TrailingStopCoef1

// トレーリングストップの設定
strategy.exit("Exit Long", "Long", stop=longStopPrice)
strategy.exit("Exit Short", "Short", stop=shortStopPrice)

// バックテスト期間の設定(MetaTraderのバックテストと同じ期間)
startYear = 2007
startMonth = 05
startDay = 01
endYear = 2022
endMonth = 04
endDay = 01

startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// バックテスト期間内でのみトレードを実行
if (time >= startDate and time <= endDate)
    if (longEntrySignal)
        strategy.entry("Long", strategy.long)
    if (shortEntrySignal)
        strategy.entry("Short", strategy.short)