이 전략은 MACD 지표에 기반을 둔 긴 단기 거래 시스템으로, 15분 차트를 위해 특별히 설계되었습니다. MACD 라인 및 신호 라인 크로스오버를 사용하여 거래 신호를 생성하여 특정 시장 오픈 시간으로 거래를 제한합니다. 이 전략은 일정한 비율의 위험 관리 방법을 사용하여 계정 크기에 따라 각 거래에 대한 위험 노출을 동적으로 조정합니다.
MACD 지표 계산: 12주기 빠른 라인, 26주기 느린 라인, 9주기 신호 라인 등의 표준 MACD 설정을 사용합니다.
무역 신호 생성:
거래 시간 제한: 런던 시장 (08:00-17:00 GMT) 및 뉴욕 시장 (13:30-20:00 GMT) 오픈 시간 동안만 거래를 수행합니다.
위험 관리:
트레이드 실행: 시장 주문으로 거래를 수행하며 동시에 스톱 로스 및 수익 주문을 설정합니다.
시장 동력 포착: MACD 지표는 시장 동력 변화를 효과적으로 포착하여 잠재적 인 트렌드 반전 지점을 식별하는 데 도움이됩니다.
리스크 관리: 일정한 비율의 리스크 관리는 각 거래의 리스크가 계정 크기와 일치하도록 보장하며 장기 자본 성장을 촉진합니다.
시간 필터링: 거래 시간을 제한하면 유동성이 낮은 기간 동안 잘못된 신호를 피하고 거래 품질을 향상시킵니다.
적응성: 전략은 계좌 크기에 따라 거래 크기를 자동으로 조정합니다. 다른 자본 금액을 가진 거래자에게 적합합니다.
명확한 출입 및 출입 규칙: 명확한 신호 생성 논리 및 고정 스톱 손실 및 수익 설정은 수동 개입의 필요성을 줄입니다.
시장을 가로질러 발생하는 위험: 범위에 묶인 시장에서 MACD는 자주 교차 신호를 생성하여 과잉 거래 및 연속 손실로 이어질 수 있습니다.
미끄러짐 위험: 시장에 진입하기 위해 시장 주문을 사용하는 것은 특히 빠르게 움직이는 시장에서 미끄러짐에 직면 할 수 있습니다.
고정 스톱 손실 위험: 고정 포인트 스톱 손실은 높은 변동성 기간 동안 충분히 유연하지 않을 수 있으며, 잠재적으로 조기 중단으로 이어질 수 있습니다.
큰 움직임을 놓치고: 엄격한 수익 설정은 전략이 중요한 트렌드 움직임에서 수익의 대부분을 놓칠 수 있습니다.
시간 창 제한: 특정 시간 동안만 거래하면 다른 세션에서 잠재적인 기회를 놓칠 수 있습니다.
다중 시간 프레임 확인: 거래 신호 신뢰성을 향상시키기 위해 더 긴 시간 프레임 (예: 1 시간 또는 4 시간) 에서 트렌드 확인을 도입하십시오.
동적 스톱 로스: 시장 변동성 변화에 적응하여 동적 스톱 로스를 설정하기 위해 ATR (평균 진정한 범위) 표시기를 사용하는 것을 고려하십시오.
추가 기술 지표: 예를 들어 RSI (비례 강도 지표) 또는 이동 평균을 MACD 신호 필터로 사용하여 잘못된 신호를 줄이십시오.
거래 시간 창을 최적화: 백테스팅 분석을 통해 최적의 거래 기간을 식별하고, 다른 시장 조건에 따라 계절적으로 조정할 수 있습니다.
이윤을 취하는 전략을 개선하십시오: 부분적 이윤을 확보하면서 더 큰 추세를 포착하기 위해 후속 중지 또는 부분적 이윤 보호 메커니즘을 구현하십시오.
변동성 조정: 시장 변동성에 따라 거래 크기와 스톱 로스 수준을 동적으로 조정하여 높은 변동성 기간 동안 위험 노출을 줄입니다.
기본 필터를 추가합니다. 중요한 경제 데이터 발표가 시장에 미치는 영향을 고려하고 주요 데이터 발표 전 및 이후에 거래를 중단하십시오.
멀티 타임프레임 시장 모멘텀 크로스오버 전략은 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)