Stratégie de négociation quantitative basée sur des moyennes mobiles de point bas élevé

Auteur:ChaoZhang est là., Date: 19 septembre 2023 à 15h53
Les étiquettes:

Résumé

Cette stratégie utilise des moyennes mobiles simples des points hauts et bas par rapport au prix de clôture actuel pour déterminer les entrées et les sorties.

La logique de la stratégie

  1. Calculer la moyenne mobile simple à quatre périodes des prix élevés.

  2. Calculer la moyenne mobile simple des prix bas de 4 périodes.

  3. Allez long lorsque le prix de clôture dépasse le point SMA.

  4. Allez court lorsque le prix de clôture dépasse le point bas SMA.

  5. Utilisez un stop loss fixe et un profit pour gérer les risques.

Analyse des avantages

  1. Utilise des indicateurs simples, faciles à comprendre et à mettre en œuvre.

  2. Temporaire capture les signaux de rupture de prix des croisements SMA.

  3. Peut filtrer rapidement le bruit et identifier les tendances.

  4. Les calculs légers réduisent les frais généraux de stratégie.

  5. Convient comme stratégie de base pour les extensions.

Analyse des risques

  1. Requiert des paramètres raisonnables pour éviter une sursensibilité.

  2. Incapable de gérer les risques liés aux évasions.

  3. Possibilité de pertes de ciseaux dans les rangs.

  4. Ne peut pas régler automatiquement les arrêts et les limites.

  5. Difficile de juger du contexte de tendance à plus long terme.

Directions d'optimisation

  1. Testez différents paramètres pour déterminer leur incidence sur la qualité du signal.

  2. Ajoutez des filtres pour valider l'efficacité des évasions.

  3. Incorporer une analyse des tendances pour éviter les pièges.

  4. Développer des arrêts et des limites dynamiques.

  5. Optimiser les arrêts pour améliorer le taux de victoire.

  6. Testez la robustesse sur différentes périodes.

Résumé

Cette stratégie utilise des indicateurs simples pour mesurer la dynamique des prix et fournit un cadre de trading de tendance de base.


/*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)






    

Plus de