Stratégie de cassure de la moyenne mobile


Date de création: 2023-12-12 17:38:19 Dernière modification: 2023-12-12 17:38:19
Copier: 0 Nombre de clics: 715
1
Suivre
1621
Abonnés

Stratégie de cassure de la moyenne mobile

Aperçu

Cette stratégie est une stratégie de rupture de fourchette basée sur les moyennes mobiles. Elle utilise les moyennes mobiles de certaines périodes et les lignes ascendantes et descendantes pour juger de la rupture de prix.

Principe de stratégie

Les principes de base de cette stratégie sont les suivants:

  1. La moyenne mobile d’une période donnée est définie comme l’axe central.

  2. La plage d’intervalle est définie en haut et en bas de l’axe médian. Elle est obtenue en multipliant l’axe médian par un certain pourcentage. La plage d’intervalle est définie en haut de l’axe médian par ((100% + pourcentage défini) et en bas de l’axe médian par ((100% - pourcentage défini)).

  3. Lorsque le prix augmente et franchit la ligne supérieure, faites un short; lorsque le prix baisse et franchit la ligne inférieure, faites plus.

  4. Le prix de commande est défini comme le prix de la ligne de train ascendante et descendante correspondante.

  5. La position est levée lorsque le prix revient sur l’axe central.

Ainsi, la stratégie de négociation peut être réalisée en capturant les ruptures de prix à travers les moyennes mobiles et leurs intervalles.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Les concepts sont simples, clairs, faciles à comprendre et à mettre en œuvre.

  2. Les paramètres peuvent être ajustés pour s’adapter à différents environnements de marché.

  3. L’axe médian et la plage intermédiaire peuvent filtrer efficacement le bruit du marché et capturer les tendances.

  4. Le risque peut être maîtrisé par la commande à prix limité.

  5. Le retour à l’axe central est stoppé afin d’éviter des pertes excessives.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Une mauvaise configuration des paramètres d’intervalle peut entraîner des transactions fréquentes ou insuffisantes.

  2. La probabilité d’une fausse percée est plus élevée, et il est possible que des dommages soient causés.

  3. L’axe central et la portée intermédiaire sont invalides en cas de forte volatilité.

  4. Le retour à l’axe central peut entraîner un arrêt forcé et un départ prématuré.

La réponse:

  1. Optimiser les paramètres, choisir la période et le pourcentage d’intervalle de la moyenne mobile appropriée.

  2. En combinaison avec d’autres indicateurs, évitez les fausses percées.

  3. L’augmentation des interventions artificielles

  4. Les moyennes mobiles sont plus longues et les intervalles sont amplifiés.

Direction d’optimisation

Cette stratégie peut être optimisée principalement dans les directions suivantes:

  1. Les conditions de stop-loss sont ajoutées, comme le suivi des stops et l’évitement des pertes excessives.

  2. Ajouter des filtres d’indicateurs tels que MACD, KD, etc. pour réduire les fausses percées.

  3. Ajout d’une fonction d’optimisation automatique des paramètres, permettant de les ajuster en temps réel en fonction des changements du marché.

  4. Les conditions d’ouverture des positions ont été augmentées pour éviter la simple dépendance à la rupture.

  5. Optimiser les paramètres de la moyenne mobile pour les périodes et les intervalles.

Résumer

Cette stratégie est globalement une stratégie de rupture de la fourchette des moyennes mobiles relativement pratique. Son concept est simple, facile à comprendre et à mettre en œuvre, elle fonctionne mieux dans les marchés où la tendance est plus évidente grâce au filtrage du bruit de la fourchette de la fourchette.

Code source de la stratégie
/*backtest
start: 2023-01-01 00:00:00
end: 2023-08-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Robot WhiteBox ShiftMA", shorttitle = "Robot WhiteBox ShiftMA", 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(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, title = "Length")
src = input(ohlc4, title = "Source")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//SMAs
sma = sma(src, per) 
shortline = sma * ((100 + shortlevel) / 100)
longline = sma * ((100 + longlevel) / 100)
plot(shortline, linewidth = 2, color = red, title = "Short line")
plot(sma, linewidth = 2, color = blue, title = "SMA line")
plot(longline, linewidth = 2, color = lime, title = "Long line")

//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if (not na(close[per])) and size == 0 and needlong
    strategy.entry("L", strategy.long, lot, limit = longline)
    
if (not na(close[per])) and size == 0 and needshort
    strategy.entry("S", strategy.short, lot, limit = shortline)
    
if (not na(close[per])) and size > 0 
    strategy.entry("Close", strategy.short, 0, limit = sma)
    
if (not na(close[per])) and size < 0 
    strategy.entry("Close", strategy.long, 0, limit = sma)

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()