
La stratégie est une stratégie de stop loss basée sur deux moyennes mobiles. Elle utilise deux moyennes mobiles, l’une comme moyenne principale et l’autre comme ligne de stop loss. Elle prend position en plus lorsque le prix est supérieur à la moyenne principale, prend position en plus lorsque le prix est inférieur à la ligne de stop loss; prend position en moins lorsque le prix est inférieur à la moyenne principale et prend position en moins lorsque le prix est supérieur à la ligne de stop loss.
La stratégie utilise la fonction sma pour calculer une moyenne mobile simple de longueur len en tant que moyenne principale ma ≠. Ensuite, en fonction des entrées de l’utilisateur, le pourcentage de stop-loss multiples elpercent et le pourcentage de stop-loss nulles espercent, les lignes de stop-loss multiples el et les lignes de stop-loss nulles es ≠ sont calculées. La formule de calcul est:
el = ma + (ma * elpercent / 100) es = ma + (ma * espercent / 100)
Les elpercents et les espercents représentent respectivement le pourcentage de déviation de la moyenne principale vers le bas.
On obtient ainsi trois lignes: la ligne principale moyenne ma, la ligne de stop-loss à plusieurs têtes el et la ligne de stop-loss à tête vide es.
La logique de négociation de la stratégie est la suivante:
Si le prix de clôture est supérieur à la ligne d’arrêt aérien el, une position est ouverte; si le prix de clôture est inférieur à la ligne d’arrêt aérien es, une position est fermée.
Si le prix de clôture est inférieur à la ligne d’arrêt aérien es, la position est ouverte; si le prix de clôture est supérieur à la ligne d’arrêt aérien el, la position est vide.
L’utilisation d’une moyenne mobile double pour définir un point d’arrêt de perte permet de contrôler efficacement le risque.
La longueur de la ligne moyenne principale (len) et le pourcentage d’écart (elpercent, espercent) peuvent être personnalisés, les paramètres peuvent être ajustés en fonction des différents marchés et sont très adaptatifs.
La mise en place d’un mécanisme d’arrêt des pertes permet d’arrêter les pertes en temps opportun et d’éviter que les pertes ne s’étendent davantage.
Les stratégies sont simples, claires, faciles à comprendre et adaptées aux débutants.
Il est possible d’avoir plus de temps libre en même temps et de profiter pleinement des deux sens.
Risques de convergence des données de retrait. Les stratégies de convergence des données mobiles sont plus compatibles avec les données historiques, et les résultats en temps réel peuvent varier. La solution consiste à vérifier en temps réel dans des marchés complexes et variables et à ajuster les paramètres en fonction de la situation en temps réel.
Le risque de voir le stop-loss trop près de la moyenne principale. Si le stop-loss est trop près de la moyenne principale, le stop-loss peut être déclenché par des fluctuations de prix à court terme. La distance de stop-loss peut être augmentée de manière appropriée pour éviter.
La pression financière due aux transactions bilatérales. Les opérations de couverture sont effectuées simultanément et il est nécessaire de disposer de suffisamment de fonds comme garantie. La position peut être réduite de manière appropriée pour contrôler la pression financière.
Risque d’optimisation des paramètres. Les paramètres peuvent varier considérablement selon les conditions du marché, ce qui nécessite du temps pour optimiser les paramètres. L’optimisation des paramètres peut être assistée par des technologies telles que l’apprentissage automatique.
L’ajout de plus d’indicateurs pour évaluer les tendances du marché et améliorer l’efficacité de la prise de décision peut être envisagé. Par exemple, l’ajout d’indicateurs de quantité, d’indicateurs de volatilité, etc.
Les paramètres d’optimisation automatique de la longueur de la moyenne mobile (len et stop loss) peuvent être étudiés afin de pouvoir les ajuster en fonction des changements du marché.
Un filtrage des variétés négociées peut être ajouté, mais uniquement pour les variétés dont la tendance est évidente.
On peut envisager d’utiliser le stop loss comme un moyen de suivre le stop loss et d’ajuster le stop loss en fonction du prix en temps réel.
Il est possible d’établir un système d’évaluation optimisé pour les paramètres et de trouver automatiquement la combinaison optimale de paramètres en utilisant les résultats des tests de retour.
L’idée générale de la stratégie est claire et facile à comprendre, elle utilise deux courbes de poids mobiles pour arrêter les pertes, ce qui permet de contrôler efficacement les risques. La stratégie a des avantages tels que la réglabilité des paramètres et l’adaptabilité, mais il y a aussi des problèmes tels que l’adaptation des données de retracement et le réglage de la distance d’arrêt des pertes.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Robot WhiteBox StopMA", shorttitle = "Robot WhiteBox StopMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
len = input(50)
src = input(ohlc4)
elpercent = input(5.0, minval = 0, maxval = 100, title = "Shift long, %")
espercent = input(-5.0, minval = -100, maxval = 0, title = "Shift short, %")
showlines = input(true, defval = true, title = "Show lines")
showbg = input(true, defval = true, title = "Show background")
//Levels
ma = sma(src, len)
el = ma + ((ma / 100) * elpercent)
es = ma + ((ma / 100) * espercent)
//Lines
colel = showlines ? color.lime : na
colma = showlines ? color.blue : na
coles = showlines ? color.red : na
plot(el, color = colel, offset = 1)
plot(ma, color = colma, offset = 1)
plot(es, color = coles, offset = 1)
//Background
trend = 0
trend := high > el[1] ? 1 : low < es[1] ? -1 : trend[1]
colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(colbg, transp = 80)
//Trading
if ma > 0
strategy.entry("Long", strategy.long, needlong ? na : 0, stop = el)
strategy.entry("Short", strategy.short, needshort ? na : 0, stop = es)