Эта стратегия основана на последовательных сигналах золотого креста и смертельного креста индикатора MACD для торговли. Когда появляются последовательные сигнала золотого креста, она открывает длинную позицию; когда появляются последовательные сигнала смертельного креста, она открывает короткую позицию. В то же время стратегия позволяет пользователям устанавливать уровни получения прибыли и остановки потери для контроля риска. Кроме того, стратегия предоставляет возможность выбора временного диапазона обратного теста, что позволяет пользователям оценивать производительность стратегии в течение определенного периода времени.
Основой этой стратегии является использование сигналов золотого креста и смертельного креста индикатора MACD для определения поворотных точек рыночных тенденций. Индикатор MACD состоит из быстрого скользящего среднего (EMA) и медленного скользящего среднего (EMA). Когда быстрая EMA пересекает медленную EMA, она образует золотой крест или смертельный крестный сигнал. Последующие золотые крестные сигналы указывают на то, что рынок может вступить в восходящий тренд, в этот момент открывается длинная позиция; Последующие смертельные крестные сигналы указывают на то, что рынок может вступить в нисходящий тренд, в этот момент открывается короткая позиция.
Эта стратегия торгуется на основе последовательных сигналов MACD золотой крест и смерть крест, пытаясь захватить поворотные моменты в рыночных тенденциях. Она проста и проста в понимании, может отслеживать основные тенденции, и обеспечивает контроль рисков и гибкие возможности обратного тестирования. Однако на производительность стратегии могут влиять такие факторы, как выбор параметров, шум рынка и отставание тренда. Для дальнейшего улучшения можно рассмотреть возможность объединения ее с другими индикаторами, оптимизации параметров, внедрения динамического получения прибыли и стоп-лосса и управления позицией. В целом стратегия обеспечивает основную основу для трендовой торговли, но в практическом применении ее необходимо тщательно оценивать и корректировать в соответствии с конкретными рыночными условиями и личными предпочтениями риска.
/*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)