Cette stratégie adopte un croisement EMA pour suivre les tendances des prix. Elle va long lorsque l'EMA rapide traverse au-dessus de l'EMA lente, et ferme la position lorsque l'EMA rapide traverse au-dessous de l'EMA lente. Principalement adapté aux produits avec des tendances évidentes, suivant efficacement les tendances et obtenant des rendements excédentaires.
L'indicateur de base de cette stratégie est l'EMA.
Le montant de l'impôt sur les sociétés est calculé en fonction de l'impôt sur les sociétés.
où t est le tick actuel, C(t) est le prix de clôture actuel et n est la valeur du paramètre N. L'EMA est une technique de moyenne mobile avec un facteur pondéré, attribuant plus de poids aux prix récents, réagissant ainsi plus rapidement aux derniers changements de prix.
La stratégie construit des EMA rapides et lents et prend le franchissement rapide de l'EMA au-dessus de l'EMA lente comme signal d'achat, et le franchissement rapide de l'EMA au-dessous de l'EMA lente comme signal de vente.
Les avantages de cette stratégie sont les suivants:
Les principaux risques sont les suivants:
Pour réduire les risques susmentionnés, les mesures d'optimisation suivantes peuvent être adoptées:
La stratégie peut être optimisée par les aspects suivants:
En résumé, il s'agit d'une stratégie de suivi de tendance simple et pratique utilisant l'EMA pour juger des tendances des prix. La logique est claire et facile à mettre en œuvre. Les avantages résident dans la simplicité d'ajuster les paramètres et de suivre efficacement les tendances. Les inconvénients sont sujets à de faux signaux et les performances réelles peuvent être inférieures aux backtests. Les prochaines étapes d'optimisation peuvent se concentrer sur l'ajout de filtres, de paramètres dynamiques, de modélisation pour rendre la stratégie plus robuste.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA交叉策略by GPT", format = format.inherit, overlay = true, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD, initial_capital = 1000000) // 定義回測交易開始和結束時間的變數 start_time = input(title="開始時間", type=input.time, defval=timestamp("01 Jan 2020 00:00 +0000")) end_time = input(title="結束時間", type=input.time, defval=timestamp("31 Dec 2050 23:59 +0000")) // 判斷是否在回測交易時間範圍內 in_range = true // Define input variables fast_length = input(title="Fast EMA Length", type=input.integer, defval=5) slow_length = input(title="Slow EMA Length", type=input.integer, defval=20) // Define EMAs fast_ema = ema(close, fast_length) slow_ema = ema(close, slow_length) // Define buy and sell signals buy_signal = crossover(fast_ema, slow_ema) sell_signal = crossunder(fast_ema, slow_ema) // Buy signal if in_range and buy_signal strategy.entry("Buy", strategy.long, when=in_range) // Sell signal if in_range and sell_signal strategy.close("Buy", when=sell_signal)