
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.
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 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.
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.
Diese Risiken können durch folgende Maßnahmen verringert werden:
Diese Strategie kann in folgenden Bereichen optimiert werden:
Durch das Testen und Optimieren des Systems kann die Strategie zu einem zuverlässigen und stabilen System für quantitative Transaktionen werden.
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.
/*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)