Cette stratégie est basée sur les signaux de croix d'or et de croix de mort consécutifs de l'indicateur MACD pour le trading. Lorsque des signaux de croix d'or consécutifs apparaissent, elle ouvre une position longue; lorsque des signaux de croix de mort consécutifs apparaissent, elle ouvre une position courte. En même temps, la stratégie permet aux utilisateurs de définir des niveaux de prise de profit et de stop-loss pour contrôler le risque. En outre, la stratégie offre la possibilité de sélectionner la plage de temps de backtest, permettant aux utilisateurs d'évaluer la performance de la stratégie dans une période de temps spécifiée.
Le noyau de cette stratégie est d'utiliser les signaux de la croix d'or et de la croix de mort de l'indicateur MACD pour déterminer les points tournants des tendances du marché. L'indicateur MACD se compose d'une moyenne mobile rapide (EMA) et d'une moyenne mobile lente (EMA). Lorsque l'EMA rapide traverse la EMA lente, il forme un signal de croix d'or ou de croix de mort. Les signaux de croix d'or consécutifs indiquent que le marché peut entrer dans une tendance haussière, au moment où une position longue est ouverte; les signaux de croix de mort consécutifs indiquent que le marché peut entrer dans une tendance baissière, au moment où une position courte est ouverte. En capturant ces points tournants de tendance, la stratégie tente de tirer profit des tendances du marché.
Cette stratégie se base sur des signaux MACD consécutifs de croix dorée et de croix de mort, tentant de capturer les points tournants des tendances du marché. Elle est simple et facile à comprendre, peut suivre les principales tendances et offre un contrôle des risques et des capacités de backtesting flexibles. Cependant, la performance de la stratégie peut être influencée par des facteurs tels que la sélection des paramètres, le bruit du marché et le décalage de tendance.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("连续MACD交叉和回测范围") //策略初始化時間設置 useDateFilter = input.bool(true, title="启用时间回测范围", group="回测范围") backtestStartDate = input(timestamp("1 Jan 2023"), title="开始时间", group="回测范围") backtestEndDate = input(timestamp("1 Jan 2024"), title="结束时间", group="回测范围") inTradeWindow = true // 定义MACD指标参数 fastLength = input.int(12, "快速EMA周期") slowLength = input.int(26, "慢速EMA周期") signalSmoothing = input.int(9, "信号线平滑周期") long_win = input.float(defval = 0.01,title = "多单止盈设置", tooltip = "0.01代表1%" ) long_lose= input.float(0.01,"多单止损设置") short_win = input.float(0.01,"空单止盈设置") short_lose = input.float(0.01,"空单止损设置") // 计算MACD值 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // 定义金叉和死叉的条件 crossUp = ta.crossover(macdLine, signalLine) crossDown = ta.crossunder(macdLine, signalLine) // 使用历史状态记录上一次交叉情况 var lastCrossUp = false var lastCrossDown = false // 更新历史状态 if crossUp lastCrossUp := true else if crossDown lastCrossUp := false if crossDown lastCrossDown := true else if crossUp lastCrossDown := false // 交易执行逻辑:检查是否存在连续的金叉或死叉 if lastCrossUp and crossUp and inTradeWindow strategy.entry("买入开多", strategy.long) strategy.exit("买入止盈止损", "买入开多", limit=close * (1 + long_win), stop=close * (1 - long_lose)) if lastCrossDown and crossDown and inTradeWindow strategy.entry("卖出开空", strategy.short) strategy.exit("卖出止盈止损", "卖出开空", limit=close * (1 - short_win), stop=close * (1 + short_lose)) // 显示MACD线和信号线 plot(macdLine, "MACD线", color=color.blue) plot(signalLine, "信号线", color=color.orange)