La estrategia de media móvil de ratio dorado es una estrategia de trading cuantitativa que intenta utilizar la cruz de oro de medias móviles a corto y largo plazo como señales de trading.
La estrategia se basa principalmente en dos promedios móviles: el MA de 200 días como el MA a largo plazo y el MA de 10 días como el MA a corto plazo. Una señal de compra se genera cuando el MA a corto plazo cruza el MA a largo plazo; Una señal de venta se genera cuando el MA a corto plazo cruza por debajo del MA a largo plazo. Esta es la famosa
Específicamente, se abrirá una posición larga si se cumplen las siguientes condiciones:
Las condiciones de cierre de la posición son las siguientes:
La estrategia tiene las siguientes ventajas:
La estrategia también tiene algunos riesgos:
Para reducir estos riesgos, pueden considerarse las siguientes medidas de optimización:
Hay margen para una mayor optimización de la estrategia:
En resumen, la estrategia de media móvil de la proporción dorada es una estrategia simple y efectiva de seguimiento de tendencias. Genera oportunidades comerciales utilizando señales de cruce MA clásicas y tiene paradas para controlar los riesgos. La estrategia se puede mejorar aún más a través de combinaciones de múltiples indicadores, optimización de parámetros, aprendizaje automático, etc. para obtener un mejor rendimiento de la estrategia.
/*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")