La stratégie de négociation de la moyenne mobile du ratio doré est une stratégie de négociation quantitative qui tente d'utiliser la croix d'or des moyennes mobiles à court et à long terme comme signaux de négociation.
La stratégie est principalement basée sur deux moyennes mobiles: la MA de 200 jours comme MA à long terme et la MA de 10 jours comme MA à court terme. Un signal d'achat est généré lorsque la MA à court terme franchit la MA à long terme; Un signal de vente est généré lorsque la MA à court terme franchit la MA à long terme. Il s'agit de la célèbre
Plus précisément, une position longue sera ouverte si les conditions suivantes sont remplies:
Les conditions de clôture de la position sont les suivantes:
La stratégie présente les avantages suivants:
La stratégie comporte également certains risques:
Pour réduire ces risques, les mesures d'optimisation suivantes peuvent être envisagées:
La stratégie peut être encore optimisée:
En résumé, la stratégie de négociation de la moyenne mobile du ratio d'or est une stratégie simple et efficace de suivi de tendance. Elle génère des opportunités de négociation en utilisant des signaux de croisement MA classiques et a des arrêts pour contrôler les risques. La stratégie peut être améliorée grâce à des combinaisons multi-indicateurs, l'optimisation des paramètres, l'apprentissage automatique, etc. pour obtenir une meilleure performance 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")