다기간 시장 모멘텀 크로스오버 전략

MACD RSI ATR EMA
생성 날짜: 2024-07-29 17:10:05 마지막으로 수정됨: 2024-07-29 17:10:05
복사: 1 클릭수: 534
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다기간 시장 모멘텀 크로스오버 전략

개요

이 전략은 MACD 지표에 기반한 다공간 거래 시스템으로, 15분 K선도를 위해 고안되었다. MACD 선과 신호 선의 교차를 이용하여 거래 신호를 생성하고, 거래 시간을 특정 시장 개시 시간 내에 제한한다. 이 전략은 고정 비율 위험 관리 방법을 사용하며, 계정 규모에 따라 각 거래의 위험 도로를 동적으로 조정한다.

전략 원칙

  1. MACD 지표 계산: 12주기 패스트 라인, 26주기 슬로우 라인 및 9주기 신호 라인을 사용하는 표준 MACD 설정.

  2. 거래 신호 생성:

    • 공백 신호: MACD 라인이 아래에서 신호 라인을 통과하고 MACD 라인이 0 축 위에 있을 때.
    • 다중 신호: MACD 라인이 위에서 아래로 신호 라인을 통과하고 MACD 라인이 0 축 아래에 있을 때.
  3. 거래 시간 제한: 런던 시장 ((08:00-17:00 GMT) 과 뉴욕 시장 ((13:30-20:00 GMT) 의 오픈 시간 동안만 거래한다.

  4. 위험 관리:

    • 고정 비율 리스크 관리가 적용되며, 각 거래의 리스크는 총 계좌 가치의 1%이다.
    • Stop Loss은 10점, Stop Stop는 15점으로 설정한다.
    • 현재 계정 규모에 따라 거래당 계약 수를 동적으로 계산합니다.
  5. 거래 실행: 시장 가격 표를 사용하여 입시하고, 동시에 중지 손실 및 중지 명령을 설정한다.

전략적 이점

  1. 시장 동력을 포착: MACD 지표는 시장 동력의 변화를 효과적으로 포착하여 잠재적인 트렌드 반전 지점을 식별하는 데 도움이됩니다.

  2. 위험 관리: 고정 비율 위험 관리 방법은 각 거래의 위험과 계좌 규모가 일치하도록 보장하며 장기적인 자금 성장을 촉진합니다.

  3. 시간 필터링: 거래 시간을 제한하면 유동성이 낮은 시간에 대한 잘못된 신호를 방지하고 거래 품질을 향상시킬 수 있습니다.

  4. 자기 적응성: 전략은 계정 크기에 따라 거래 규모를 자동으로 조정하여 다양한 금액의 거래자에게 적합합니다.

  5. 명확한 출전 규칙: 명확한 신호 생성 논리와 고정된 스톱 스톱 설정으로 인적 개입의 필요성을 줄인다.

전략적 위험

  1. 흔들림 시장 위험: 가로판 흔들림 시장에서 MACD는 과도한 거래와 연속적인 손실을 초래하는 빈번한 교차 신호를 일으킬 수 있습니다.

  2. 슬라이드 포인트 위험: 시장 가격 단편 입장을 사용하면 슬라이드 포인트에 직면할 수 있습니다. 특히 빠른 시장에서.

  3. 고정된 손실 위험: 고정된 점수의 손실은 높은 변동성 기간에 유연하지 않을 수 있으며, 이로 인해 조기 중단 될 수 있습니다.

  4. 큰 트렌드를 놓치는 것: 엄격한 정지 설정으로 인해 큰 트렌드를 놓치는 대부분의 수익이 발생할 수 있습니다.

  5. 시간창 제한: 특정 시간대에만 거래하면 다른 시간대에 잠재적인 기회를 놓칠 수 있습니다.

전략 최적화 방향

  1. 다중주기 확인: 더 긴 시간 주기 (예: 1시간 또는 4시간) 를 도입하여 트렌드 확인을 통해 거래 신호의 신뢰성을 높인다.

  2. 다이내믹 스톱: ATR (Average True Range) 지표를 사용하여 시장의 변동성에 적응하기 위해 다이내믹 스톱을 설정하는 것을 고려하십시오.

  3. 다른 기술적인 지표들을 도입한다. 예를 들어 RSI (대비적으로 강한 지표) 또는 이동 평균은 MACD 신호의 필터로써 가짜 신호를 감소시킨다.

  4. 거래 시간 창을 최적화하십시오: 역전시 분석을 통해 최적의 거래 시간을 파악하고, 다른 시장 조건에 따라 계절적 조정이 필요할 수 있습니다.

  5. 개선된 정지 전략: 큰 트렌드를 포착하면서 부분적인 이익을 잠금하는 정지 또는 부분적인 이익 보호를 추적하는 메커니즘을 구현하십시오.

  6. 변동성 조정: 시장의 변동성 동력에 따라 거래 규모와 손해 중지 수준을 조정하여 높은 변동성 기간 동안 위험 을 줄인다.

  7. 기본 필터를 추가: 중요한 경제 데이터 발표가 시장에 미치는 영향을 고려하고, 중요한 데이터가 공개되기 전에 거래가 중단됩니다.

요약하다

다주기 시장 동적 교차 전략은 MACD 지표에 기반을 둔 자기 적응 거래 시스템으로 거래 시간을 제한하고 엄격한 위험 관리를 통해 거래 품질을 향상시킵니다. 이 전략의 주요 장점은 명확한 신호 생성 논리와 동적 위험 관리 방법에 있으며, 다양한 규모의 거래 계좌에 적합합니다. 그러나, 이 전략은 또한 과도한 거래와 큰 추세를 놓치는 등의 위험에 직면합니다.

이 전략은 다중 주기 확인, 동적 중지 및 추가 기술 지표를 도입함으로써 그 성능과 안정성을 더욱 향상시킬 잠재력을 가지고 있습니다. 특히, 변동성 조정 및 개선된 중지 전략을 추가하면 다양한 시장 조건에 더 잘 적응 할 수 있습니다.

전체적으로, 이 전략은 거래자에게 특정 위험 선호도와 거래 목표를 충족시키기 위해 개인화 된 조정과 최적화를 할 수 있는 견고한 프레임 워크를 제공합니다. 지속적인 재검토와 실습 검증은 전략의 장기적인 효과를 보장하는 데 중요합니다.

전략 소스 코드
/*backtest
start: 2024-06-28 00:00:00
end: 2024-07-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("交易霸傑15掏金策略", overlay=true)

// 設置參數
fastLength = input.int(12, title="MACD 快線長度")
slowLength = input.int(26, title="MACD 慢線長度")
signalSmoothing = input.int(9, title="MACD 信號線平滑")
riskPercentage = input.float(2, title="每筆交易的風險比例 (%)")
stopLossPoints = 10
takeProfitPoints = 15

// 設置倫敦和紐約市場的開盤時間
londonOpen = timestamp("GMT+0", year, month, dayofmonth, 8, 0)
londonClose = timestamp("GMT+0", year, month, dayofmonth, 17, 0)
nyOpen = timestamp("GMT+0", year, month, dayofmonth, 13, 30)
nyClose = timestamp("GMT+0", year, month, dayofmonth, 20, 0)

// 計算MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHist = macdLine - signalLine

// 畫出MACD線
hline(0, "0軸", color=color.gray)
plot(macdLine, color=color.blue, title="MACD 快線")
plot(signalLine, color=color.red, title="MACD 慢線")
plot(macdHist, color=color.green, style=plot.style_histogram, title="MACD Histogram")

// 動態計算每筆交易的風險和止損、止盈點數
capital = strategy.equity
riskAmount = capital * (riskPercentage / 100)
contracts = 1
stopLossValue = stopLossPoints * syminfo.mintick
takeProfitValue = takeProfitPoints * syminfo.mintick

// 確定是否在交易時段內
isLondonOpen = (time >= londonOpen and time <= londonClose)
isNyOpen = (time >= nyOpen and time <= nyClose)

// 偏空進場條件
shortCondition = ta.crossover(signalLine, macdLine) and macdLine > 0 and (isLondonOpen or isNyOpen)
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close - takeProfitValue, stop=close + stopLossValue)

// 偏多進場條件
longCondition = ta.crossunder(signalLine, macdLine) and macdLine < 0 and (isLondonOpen or isNyOpen)
if (longCondition)
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close + takeProfitValue, stop=close - stopLossValue)