Cette stratégie permet de déterminer le moment de l’achat et de la vente en calculant des moyennes mobiles simples pour les hauts et les bas et en les comparant au prix de clôture actuel. Son objectif est de capturer les signaux de rupture de la moyenne pour saisir les premières opportunités de tendance.
Calculer une moyenne mobile simple avec une longueur maximale de 4
Calculer une moyenne mobile simple avec une longueur de 4 points bas
Faire une entrée supplémentaire lorsque le cours de clôture franchit la ligne médiane de la hauteur
Faire une entrée en position courte lorsque le cours de clôture franchit la ligne médiane de basse
Gestion du risque avec des stratégies de stop-loss et de stop-loss fixes
La mise en œuvre est simple et compréhensible
Capture des signaux de rupture de la moyenne en temps opportun
Vous pouvez rapidement filtrer certains bruits et identifier les tendances.
Un faible volume de calcul peut réduire la consommation d’exploitation de la stratégie
Une stratégie adaptée à l’expansion
Les paramètres doivent être raisonnables et ne doivent pas être trop sensibles
Les risques liés à une percée majeure
Il existe un certain risque d’effet de levier sur les chocs
Impossible d’ajuster automatiquement la position du stop-loss
Il est difficile de déterminer la durée de la tendance
Test des effets de différents paramètres sur la qualité du signal
Augmentation des conditions de filtrage pour assurer l’efficacité de la percée
Une analyse des tendances pour éviter d’être piégé
Développer une stratégie de stop-loss dynamique
Optimiser les mécanismes de coupe-perte et améliorer les chances de succès des stratégies
La robustesse de la stratégie à différents cycles de test
La stratégie est basée sur des indicateurs simples pour évaluer la dynamique des prix et donner une idée de base pour la négociation de tendances. La logique de négociation est extensible et peut être développée en un système de quantification relativement robuste.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("HiLo", overlay=true)
// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)
longCondition = close > highsma[displace]
if (longCondition)
strategy.entry("long", true)
shortCondition = close < lowsma[displace]
if (shortCondition)
strategy.entry("short", false)
// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day.
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?
// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)