SSL-Kanal-Backtesting-Strategie basierend auf ATR und Geldmanagement


Erstellungsdatum: 2023-11-23 10:26:58 zuletzt geändert: 2023-11-23 10:26:58
Kopie: 1 Klicks: 731
1
konzentrieren Sie sich auf
1617
Anhänger

SSL-Kanal-Backtesting-Strategie basierend auf ATR und Geldmanagement

Überblick

Die Strategie basiert auf einer Rückmeldung der SSL-Kanal-Indikatoren und kombiniert Funktionen wie ATR-Stopp, ATR-Stopp und Geldmanagement, um die Wirksamkeit der SSL-Kanal-Strategie umfassender zu testen.

Strategieprinzip

SSL-Channel-Indikatoren

Der SSL-Kanalindikator besteht aus einer Kanalmitte und einem Kanalband. Die Kanalmitte ist ein einfacher gleitender Durchschnitt, der in eine obere und eine untere Spur unterteilt ist. Normalerweise wird ein einfacher gleitender Durchschnitt während der Höchststände als obere Spur und ein einfacher gleitender Durchschnitt während der niedrigen Punkte als untere Spur genommen.

Wenn der Preis nahe der Kanalbahn ist, wird er als Überkauf angesehen, wenn der Preis nahe der Kanalbahn ist, wird er als Überverkauf angesehen. Wenn der Preis die Kanalbahn durchbricht, ist dies ein Signal für eine Trendwende.

Die Parameter für SSL-Channel-Indikatoren in dieser Richtlinie sind:ssl_period=16

ATR-Stoppschaltung

ATR ist die durchschnittliche reale Bandbreite. Es kann verwendet werden, um die Volatilität des Marktes zu beurteilen und die Stop-Loss-Stopp-Position zu bestimmen.

Diese Strategie verwendet Parameteratr_period=14ATR-Kennzahlen, kombiniertatr_stop_factor=1.5Undatr_target_factor=1.0Als dynamische Multiplikatoren von Stop-Loss und Stop-Out wird ein Stop-Loss basierend auf der Marktfluktuation realisiert.

Außerdem wurde diese Strategie hinzugefügt, um die verschiedenen Sorten anzupassen.two_digitDie Parameter werden in 2 Bit-Genauigkeit beurteilt (z. B. Gold, Yen), so dass die Stop-Loss-Standards flexibel angepasst werden können.

Vermögensverwaltung

Die Vermögensverwaltung erfolgt über Parameterposition_size(Festpositionen) undrisk(Prozentsatz der Risikothek)use_mm=trueDas Modul “Finanzverwaltung” wird aktiviert.

Das Hauptziel des Geldmanagements ist es, die Positiongröße für jede Position zu kontrollieren. Bei einem festen Prozentsatzrisikomodell wird die Risikolockage nach der Berechnung der Konto-Reserven in die Anzahl der Kontrakte umgerechnet, um die Einzelschäden zu dämpfen.

Analyse der Stärken

  • Die Verwendung von SSL-Kanälen zur Bestimmung der Trendrichtung hat eine gewisse Wirkung auf die Erfassung von Trendwechseln
  • Die Anwendung von ATR-Dynamik berechnet die Stop-Loss-Position, um sich an die Marktschwankungen anzupassen
  • Mit den Prinzipien der Geldverwaltung können Risiken langfristig kontrolliert werden

Risikoanalyse

  • Die SSL-Kanäle sind zwar zuverlässig, um eine Trendwende zu erkennen, sind aber nicht hundertprozentig zuverlässig und können Fehlsignale auslösen.
  • ATR setzt Stop-Loss-Stopps, die den Marktschwankungen folgen, und kann zu locker oder zu steif sein
  • Die falsche Einstellung der Parameter für die Vermögensverwaltung kann zu einer zu großen oder zu ineffizienten Position führen.

Diese Risiken können durch folgende Maßnahmen verringert werden:

  1. Bestätigung in Verbindung mit anderen Indikatoren, um Fehlsignale zu vermeiden
  2. Die ATR-Zyklusparameter sind so angepasst, dass die Stop-Loss-Stopp-Ebene optimal ausbalanciert ist
  3. Verschiedene Vermögensverwaltungsparameter testen, um die beste Position zu finden

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der SSL-Kanalparameter und Suche nach der optimalen Kombination
  2. Optimierung oder Ersatz des ATR-Stoppschutzes, um es noch besser zu machen
  3. Das ist eine sehr gute Idee, aber es ist auch eine sehr gute Idee.
  4. Erweiterung der Positionskontrollmodule zur Gewinn- und Verlustmaximierung
  5. Parameter für verschiedene Sorten verfeinern, um die Anpassungsfähigkeit der Strategie zu verbessern
  6. Mithilfe von Quantitative Tools für umfassendere Rückmeldung und Optimierung

Durch das Testen und Optimieren des Systems kann die Strategie zu einem zuverlässigen und stabilen System für quantitative Transaktionen werden.

Zusammenfassen

Die Strategie integriert die drei Mechanismen, um die Trends der SSL-Channel-Indikatoren zu beurteilen, die Stop-Loss-Stopp-Regelung der ATR und die Risikokontrolle der Geldverwaltung. Die Wirksamkeit der Strategie kann durch eine umfassende Rückmeldung geprüft werden und kann als grundlegender Rahmen für die Optimierung der Quantifizierung der Handelsstrategie verwendet werden. Gleichzeitig gibt es Raum für Verbesserungen, z. B. durch die Aufnahme weiterer Filterindikatoren, Optimierungsparameter und Erweiterungsfunktionen.

Strategiequellcode
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 2h
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/
// © comiclysm

//@version=4
strategy("SSL Backtester", overlay=false)

//--This strategy will simply test the effectiveness of the SSL using
//--money management and an ATR-derived stop loss

//--USER INPUTS

two_digit = input(false, "Check this for 2-digit pairs (JPY, Gold, Etc)")
ssl_period = input(16, "SSL Period")
atr_period = input(14, "ATR Period")
atr_stop_factor = input(1.5, "ATR Stop Loss Factor")
atr_target_factor = input(1.0, "ATR Target Factor")
use_mm = input(true, "Check this to use Money Management")
position_size = input(1000, "Position size (for Fixed Risk)")
risk = input(0.01, "Risk % in Decimal Form")

//--INDICATORS------------------------------------------------------------

    //--SSL
    
sma_high = sma(high, ssl_period)
sma_low = sma(low, ssl_period)
ssl_value = 0
ssl_value := close > sma_high ? 1 : close < sma_low ? -1 : ssl_value[1]
ssl_low = ssl_value < 0 ? sma_high : sma_low
ssl_high = ssl_value < 0 ? sma_low : sma_high

    //--Average True Range
    
atr = atr(atr_period)

//--TRADE LOGIC----------------------------------------------------------

signal_long = ssl_value > 0 and ssl_value[1] < 0
signal_short = ssl_value < 0 and ssl_value[1] > 0

//--RISK MANAGMENT-------------------------------------------------------
strategy.initial_capital = 50000
balance = strategy.netprofit + strategy.initial_capital
risk_pips = atr*10000*atr_stop_factor
if(two_digit)
    risk_pips := risk_pips / 100
risk_in_value = balance * risk
point_value = syminfo.pointvalue
risk_lots = risk_in_value / point_value / risk_pips
final_risk = use_mm ? risk_lots * 10000 : position_size

//--TRADE EXECUTION-----------------------------------------------------

if (signal_long)
    stop_loss = close - atr * atr_stop_factor
    target = close + atr * atr_target_factor
    strategy.entry("Long", strategy.long, final_risk)
    strategy.exit("X", "Long", stop=stop_loss, limit=target)
if (signal_short)
    stop_loss = close + atr * atr_stop_factor
    target = close - atr * atr_target_factor
    strategy.entry("Short", strategy.short, final_risk)
    strategy.exit("X", "Short", stop=stop_loss, limit=target)
    
//--PLOTTING-----------------------------------------------------------

plot(ssl_low, "SSL", color.red, linewidth=1)
plot(ssl_high, "SSL", color.lime, linewidth=1)