Stratégie de trading de moyenne mobile du nombre d'or


Date de création: 2024-01-05 14:21:52 Dernière modification: 2024-01-05 14:21:52
Copier: 0 Nombre de clics: 884
1
Suivre
1617
Abonnés

Stratégie de trading de moyenne mobile du nombre d’or

Aperçu

Le Gold Split Moving Average est une stratégie de trading quantitative qui tente d’utiliser la croix de l’or sur les moyennes mobiles à long terme comme signal de trading. La stratégie est combinée avec l’indicateur RSI pour éviter de prendre des positions à des niveaux locaux élevés afin de contrôler le risque.

Principe de stratégie

La stratégie est basée sur deux moyennes mobiles: la ligne de 200 jours est la moyenne à long terme, la ligne de 10 jours est la moyenne à court terme. Elle génère un signal d’achat lorsque la moyenne à court terme traverse la moyenne à long terme et un signal de vente lorsque la moyenne à court terme traverse la moyenne à long terme.

Plus précisément, une position à plusieurs positions est ouverte si les conditions suivantes sont remplies:

  1. La moyenne quotidienne de 10 jours sur la moyenne quotidienne de 200
  2. Aucune position à ce jour
  3. RSI inférieur à 30

Les conditions de placement sont les suivantes:

  1. Stop-loss: Stop-loss lorsque le prix dépasse un certain pourcentage du prix d’ouverture (c’est réglable)
  2. Stop: Stop lorsque le prix est supérieur à un certain pourcentage (c’est réglable)

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Un signal de croisement d’or avec une moyenne mobile, un signal de trading d’indicateur technique classique et efficace
  2. En combinant le RSI et en évitant de faire des achats à la hausse, vous pouvez maîtriser les risques dans une certaine mesure
  3. Il y a un arrêt-perte et un arrêt-arrêt pour bloquer les bénéfices et éviter les risques.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Les stratégies de moyennes mobiles sont sujettes à de faux signaux et à des détours.
  2. Le RSI peut s’effondrer dans certains cas de force
  3. Un stop loss trop petit peut entraîner des arrêts trop fréquents sur une ligne trop courte

Pour réduire ces risques, les mesures d’optimisation suivantes peuvent être envisagées:

  1. Ajustez les paramètres de la moyenne ou ajoutez plus de moyenne
  2. Le signal RSI est confirmé par d’autres indicateurs.
  3. Ajustez le paramètre d’arrêt

Direction d’optimisation

Il y a encore de la place pour optimiser cette stratégie:

  1. Ajouter plus de filtres pour éviter les faux signaux
  2. Optimiser les paramètres de la moyenne mobile
  3. Définition d’un stop loss dynamique associé à un indicateur de volatilité
  4. Un modèle d’apprentissage automatique pour évaluer le marché
  5. Paramètres d’optimisation automatique par algorithme

Résumer

La stratégie de négociation de la moyenne mobile divisée par l’or est une stratégie de suivi de tendance simple et efficace dans l’ensemble. Elle utilise les signaux de croisement homogènes classiques pour générer des opportunités de négociation et dispose d’un stop-loss pour contrôler les risques. La stratégie peut être améliorée par des combinaisons d’indicateurs multiples, l’optimisation des paramètres et l’apprentissage automatique.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tsujimoto0403

//@version=5
strategy("聖杯", overlay=true,default_qty_type=strategy.percent_of_equity,
     default_qty_value=100)

//ユーザーインプットの準備
malongperiod=input.int(200,"長期移動平均BASE200",group = "パラメータ")
mashortperiod=input.int(10,"長期移動平均BASE10",group = "パラメータ")
stop=input.int(20,title = "損切の割合%",group = "パラメータ")
profit=input.int(5,title = "利食いの割合%",group = "パラメータ")
startday=input(title="バックテストを始める日", defval=timestamp("01 Jan 2018 13:30 +0000"), group="期間")
endday=input(title="バックテスを終わる日", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間")

//使う変数
var float stopprice=0
var float takeprofit=0

//とりあえず使うインジケーターをプロット
malong=ta.sma(close,malongperiod)
mashort=ta.sma(close,mashortperiod)


plot(malong,color=color.aqua,linewidth = 2)
plot(mashort,color=color.yellow,linewidth = 2)
bgcolor(ta.rsi(close,3)<30?color.rgb(229, 86, 86, 48):na)

//期間条件
datefilter = true

//エントリー条件
if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30
    strategy.entry(id="long", direction=strategy.long)

if strategy.position_size>0 
    strategy.exit(id="long",stop=(1-0.01*stop)*strategy.position_avg_price)

//売り
if  strategy.position_size > 0 and close>mashort and close<low[1] 
    strategy.close(id ="long")