
Cette stratégie utilise la méthode de croisement des lignes rapides et lentes EMA pour suivre la tendance des prix. Lorsque la ligne rapide traverse la ligne lente par le bas, faites plus; lorsque la ligne rapide traverse la ligne lente par le haut et le bas, la position est nulle.
L’indicateur central de cette stratégie est la moyenne EMA. La formule de calcul de la moyenne EMA est:
EMA(t)=C(t)×2/(n+1)+EMA(t-1)×(n-1)/(n+1)
Dans ce cas, t est le moment présent, C est le prix de clôture actuel, et n est la valeur du paramètre N. L’EMA est un indicateur technique de moyenne mobile avec un facteur de pondération. L’EMA donne un poids plus élevé aux prix les plus récents, afin de répondre plus rapidement aux changements de prix les plus récents.
La stratégie construit une moyenne EMA rapide et une moyenne EMA lente, avec un signal d’achat en traversant une ligne lente sur la ligne rapide et un signal de vente en traversant une ligne lente en dessous de la ligne rapide. Lorsque la ligne rapide est traversée, le prix commence un nouveau cycle de hausse. Lorsque la ligne rapide est traversée, le prix termine la tendance à la hausse et commence à se redresser.
Cette stratégie présente les avantages suivants:
Les principaux risques de cette stratégie sont:
Pour réduire ces risques, les mesures d’optimisation suivantes peuvent être prises:
Cette stratégie peut être optimisée dans les domaines suivants:
Cette stratégie est généralement une stratégie de suivi de tendance relativement simple et pratique. Elle utilise l’EMA pour déterminer la tendance des prix, la logique d’opération est claire et facile à mettre en œuvre. L’avantage est que l’ajustement des paramètres est simple et permet de suivre efficacement la tendance.
/*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)