리소스 로딩... 로딩...

연속 MACD 금색과 죽음의 십자가에 기초한 거래 전략

저자:차오장, 날짜: 2024-04-30 17:26:19
태그:MACDEMA

img

전반적인 설명

이 전략은 거래를 위해 MACD 지표의 연속 황금 십자 및 죽음의 십자 신호를 기반으로합니다. 연속 황금 십자 신호가 나타나면 긴 포지션을 열고, 연속 죽음 십자 신호가 나타나면 짧은 포지션을 열습니다. 동시에 전략은 사용자가 리스크를 제어하기 위해 수익을 취하고 손실을 멈추는 수준을 설정할 수 있습니다. 또한 전략은 백테스트 시간 범위를 선택할 수있는 옵션을 제공하여 사용자가 지정된 시간 내에 전략의 성능을 평가 할 수 있습니다.

전략 원칙

이 전략의 핵심은 시장 트렌드의 전환점을 결정하기 위해 MACD 지표의 황금 십자 및 죽음의 십자 신호를 사용하는 것입니다. MACD 지표는 빠른 이동 평균 (EMA) 과 느린 이동 평균 (EMA) 으로 구성됩니다. 빠른 EMA가 느린 EMA를 넘을 때 황금 십자 또는 죽음의 십자 신호를 형성합니다. 연속 황금 십자 신호는 시장이 상승 추세로 진입할 수 있음을 나타냅니다. 이 시점에서 긴 포지션이 열립니다. 연속적인 죽음의 십자 신호는 시장이 하락 추세로 진입할 수 있음을 나타냅니다. 이 트렌드 전환점을 포착함으로써 전략은 시장 트렌드로부터 이익을 얻으려고 시도합니다.

전략적 장점

  1. 단순하고 이해하기 쉬운 전략: 전략은 널리 사용되는 MACD 지표에 기반하고 있으며 간단한 원칙을 가지고 있으며 이해하기 쉽고 구현하기 쉽습니다.
  2. 트렌드 추적: 순차적인 황금 십자가와 죽음의 십자가 신호를 캡처함으로써 전략은 시장의 주요 트렌드를 추적 할 수 있으며 트렌드로부터 이익을 얻는 데 도움이됩니다.
  3. 리스크 제어: 전략은 사용자가 수익을 취하고 손실을 멈추는 수준을 설정하여 잠재적 인 위험과 손실을 제어하는 데 도움이됩니다.
  4. 유연한 백테스트: 전략은 백테스트 시간 범위를 선택할 수 있는 옵션을 제공하며, 사용자가 필요에 따라 다른 기간에 걸쳐 전략의 성능을 평가할 수 있습니다.

전략 위험

  1. 매개 변수 민감성: MACD 지표의 성능은 빠른 EMA 기간과 느린 EMA 기간의 선택에 달려 있으며, 다른 매개 변수 설정은 다른 거래 신호로 이어질 수 있습니다.
  2. 시장 소음: 변동 또는 불확실한 시장 조건에서 MACD 지표는 더 많은 잘못된 신호를 생성하여 빈번한 거래 및 잠재적 인 손실로 이어질 수 있습니다.
  3. 트렌드 지연: MACD 지표는 지연 지표이며, 트렌드가 이미 설정된 후에 거래 신호가 나타날 수 있으며, 가장 좋은 입구 지점을 놓칠 수 있습니다.
  4. 스톱 로스 위험: 시장이 급격히 변동하면 가격이 스톱 로스 수준을 빠르게 돌파하여 예상보다 더 큰 손실을 초래할 수 있습니다.

전략 최적화 방향

  1. 다른 지표와 결합: 신호의 신뢰성을 향상시키고 잘못된 신호를 필터링하기 위해 MACD 지표를 다른 기술적 지표 (RSI, 볼링거 밴드 등) 와 결합하는 것을 고려하십시오.
  2. 매개 변수 최적화: 다른 빠른 및 느린 EMA 기간의 백테스팅 및 최적화를 통해 특정 시장과 자산에 가장 적합한 매개 변수 조합을 찾습니다.
  3. 동적 취득 및 중지 손실: 시장 변동성 또는 가격 수준에 따라 동적으로 취득 및 중지 손실 수준을 조정하여 시장 변화에 더 잘 적응하고 위험을 제어합니다.
  4. 포지션 관리를 도입: 신호 강도 또는 시장 조건에 따라 각 거래의 포지션 크기를 조정하여 리스크 / 보상 비율을 최적화하십시오.

요약

이 전략은 연속 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)


관련

더 많은