Cette stratégie est une stratégie de dynamique basée sur des lignes moyennes mobiles

Auteur:ChaoZhang est là., Date: 2024-01-23 10:38:18 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de dynamique basée sur des lignes moyennes mobiles. Elle génère des signaux de négociation en calculant des moyennes mobiles simples de différentes périodes et en comparant leurs situations de croisement. Plus précisément, lorsque la ligne moyenne mobile à court terme traverse au-dessus de la ligne moyenne mobile à long terme, un signal d'achat est généré; lorsque la ligne moyenne mobile à court terme traverse au-dessous de la ligne moyenne mobile à long terme, un signal de vente est généré.

Principe de stratégie

La logique de base de cette stratégie est basée sur l'effet de dynamique, qui est la persistance des tendances des prix des actions. Les lignes moyennes mobiles peuvent refléter efficacement la tendance de changement des prix des actions. Lorsque la ligne moyenne mobile à court terme traverse au-dessus de la ligne moyenne mobile à long terme, cela signifie que le prix des actions commence à entrer dans une tendance à la hausse; au contraire, lorsque la ligne moyenne mobile à court terme traverse en dessous de la ligne moyenne mobile à long terme, cela signifie que le prix des actions commence à entrer dans une tendance à la baisse. Cette stratégie génère des signaux de trading basés sur ce principe.

Plus précisément, une moyenne mobile simple de 13 jours et une moyenne mobile simple de 34 jours sont définies dans la stratégie. Après avoir calculé ces deux moyennes mobiles en fonction du prix de clôture quotidien, leur relation d'ampleur est comparée. Si la ligne de 13 jours dépasse la ligne de 34 jours, un signal d'achat est généré, indiquant que le prix de l'action entre dans une tendance à la hausse et qu'une position longue doit être établie; si la ligne de 13 jours dépasse la ligne de 34 jours, un signal de vente est généré, indiquant que le prix de l'action entre dans une tendance à la baisse et que la position doit être fermée.

Analyse des avantages

Le principal avantage de cette stratégie est qu'elle est simple et facile à comprendre et à mettre en œuvre. La ligne moyenne mobile est l'un des indicateurs techniques les plus basiques et les plus couramment utilisés. Son principe est simple et facile à comprendre et à appliquer.

En outre, le paramétrage de cette stratégie est flexible et peut être ajusté en fonction de différentes variétés et conditions du marché. Par exemple, les paramètres de cycle de la ligne de moyenne mobile peuvent être modifiés pour ajuster la sensibilité de la stratégie. Cela laisse place à l'optimisation et à l'ajustement de la stratégie.

Analyse des risques

Le plus grand risque de cette stratégie est qu'il peut y avoir plus de faux signaux et être pris dans les marchés à plage. Lorsque les prix fluctuent fortement, les lignes moyennes mobiles peuvent produire des croisements fréquents, ce qui entraîne de faux signaux. À ce stade, vous devez ajuster les paramètres du cycle de la ligne moyenne mobile pour filtrer un peu de bruit.

En outre, lorsqu'il y a un plus grand renversement du marché, le point de stop loss de la stratégie peut être brisé, ce qui entraîne des pertes plus importantes.

Directions d'optimisation

Les aspects suivants de cette stratégie peuvent être optimisés:

  1. Optimiser les paramètres du cycle de la ligne de la moyenne mobile pour trouver la combinaison optimale de paramètres pour différentes variétés et conditions de marché.

  2. Ajouter la filtration d'autres indicateurs techniques tels que le MACD et le KD pour éviter de générer de faux signaux sur les marchés à plage.

  3. Optimiser et ajuster dynamiquement la stratégie d'arrêt des pertes pour éviter que le point d'arrêt des pertes ne soit trop proche tout en assurant l'arrêt des pertes, avec une probabilité plus élevée d'être franchi.

  4. Augmenter les mécanismes de gestion des positions tels que les investissements fixes et le ratio de position pour contrôler le risque lié à une seule transaction.

Conclusion

Cette stratégie est une stratégie de croisement de moyenne mobile très classique. Elle génère des signaux d'achat et de vente en calculant et en comparant la relation entre les moyennes mobiles à court terme et à long terme. Les avantages de cette stratégie sont des paramètres simples et flexibles, et adaptés aux débutants; les inconvénients sont que les signaux peuvent ne pas être assez stables et qu'il est facile de se retrouver sur des marchés à plage. Avec une optimisation appropriée, elle peut toujours devenir une stratégie quantitative très pratique.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)

// === TA LOGIC ===

//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))

// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")

FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2018, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (enableShorts)
        strategy.entry("Short", strategy.short, comment="Short")
    else
        strategy.close("Long")

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Plus de