
Cette stratégie est basée sur les indicateurs de rétroaction de la passerelle SSL, et combine des fonctionnalités telles que l’arrêt ATR, l’arrêt ATR et la gestion des fonds pour tester plus complètement l’efficacité de la stratégie de passerelle SSL.
L’indicateur de canal SSL est composé d’une ligne médiane de canal et d’une bande de canal. La ligne médiane de canal est une moyenne mobile simple, divisée en une voie supérieure et une voie inférieure, généralement prise comme moyenne mobile simple pendant les hauts points comme voie supérieure, et une moyenne mobile simple pendant les bas points comme voie inférieure.
Il s’agit d’un surachat lorsque le prix est proche de la trajectoire ascendante du canal, et d’un survente lorsque le prix est proche de la trajectoire descendante du canal. Il s’agit d’un signal de changement de tendance lorsque le prix franchit la bande de canal.
Les paramètres de l’indicateur de la passerelle SSL dans cette stratégie sont définis comme suit:ssl_period=16。
L’ATR est la moyenne réelle de la marge. Elle peut être utilisée pour évaluer la volatilité du marché et déterminer la position de stop loss.
Paramètres utilisés dans cette stratégieatr_period=14Le taux d’ATR, combiné àatr_stop_factor=1.5etatr_target_factor=1.0Le stop loss est le multiplicateur dynamique de stop loss et de stop stop, qui permet de réaliser un stop loss basé sur la volatilité du marché.
De plus, cette stratégie a été ajoutée pour s’adapter aux différentes variétés.two_digitLes paramètres de jugement des contrats sont de 2 bits de précision (par exemple, l’or, le yen), ce qui permet d’ajuster de manière flexible les positions de stop-loss.
La gestion des fonds passe principalement par des paramètresposition_size(positions fixes) etrisk(pourcentage d’ouverture de risque) réalisé.use_mm=trueLe module de gestion des fonds est activé.
L’objectif principal de la gestion des fonds est de contrôler la taille de la position à chaque fois que vous ouvrez une position. Lorsque vous utilisez le modèle de risque à pourcentage fixe, le seuil de risque est calculé en fonction des intérêts du compte et est converti en nombre de contrats, ce qui permet de supprimer les pertes individuelles.
Ces risques peuvent être atténués par les moyens suivants:
Cette stratégie peut être optimisée dans les domaines suivants:
En testant et en optimisant le système, la stratégie peut devenir un système de trading quantitatif fiable et stable.
Cette stratégie intègre les trois mécanismes de jugement des tendances des indicateurs de la passerelle SSL, l’ATR pour définir les arrêts de perte et le contrôle des risques de gestion des fonds. L’efficacité de la stratégie peut être testée par un retour complet et peut servir de cadre de base pour l’optimisation des stratégies de trading quantifiées. Dans le même temps, il y a de la place pour l’amélioration de la stratégie, comme l’ajout d’autres indicateurs de filtrage, des paramètres d’optimisation et des fonctionnalités d’extension.
/*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)