MACD와 Albrooks 가격 액션 추세 추종 전략을 결합

MACD SMA PA RR SL TP
생성 날짜: 2025-02-19 17:36:15 마지막으로 수정됨: 2025-02-19 17:36:15
복사: 0 클릭수: 452
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

MACD와 Albrooks 가격 액션 추세 추종 전략을 결합 MACD와 Albrooks 가격 액션 추세 추종 전략을 결합

개요

이 전략은 알브룩스 가격 행동 이론과 MACD 지표에 기반한 트렌드 추적 거래 시스템이다. 그것은 이동 평균 ((SMA) 과 MACD 지표를 결합하여 시장의 추세를 식별하고 적절한 시간에 거래를 한다. 전략은 고정된 위험 수익 비율을 사용하여 각 거래의 중지 및 중지 수준을 관리하고 위험을 효과적으로 제어한다.

전략 원칙

전략의 핵심 논리에는 다음과 같은 핵심 요소가 포함됩니다.

  1. 트렌드 판단: 간단한 이동 평균 ((SMA) 을 트렌드 판단의 기준으로 사용하여, 가격이 SMA 위에 있을 때 상승 추세로 판단하고, 반대로 하락 추세로 판단한다.
  2. 출입 신호:
    • 다중 조건: 가격이 SMA 위에 있고 MACD 라인은 0보다 크고 신호 라인을 상회합니다.
    • 공백 조건: 가격이 SMA 아래, MACD 라인은 0보다 작고 신호 라인을 아래로 통과
  3. 위험 관리:
    • 고정된 퍼센티지를 사용해서
    • 미리 예상된 리스크/이익비율에 기반한 스톱 포지션 계산
  4. 퇴출 메커니즘: 구매 또는 판매 신호가 사라지면 자동 평점 상태가 유지됩니다.

전략적 이점

  1. 트렌드 추적의 신뢰성: 가격 행동과 기술 지표의 결합으로 트렌드 판단의 정확성을 향상시킵니다.
  2. 위험 관리의 과학성: 고정된 위험/수익 비율을 사용하여 거래별로 관리
  3. 신호 확인의 포괄성: 여러 조건 확인을 통해 가짜 신호를 줄인다.
  4. 높은 수준의 자동화: 전체적인 입출장, 출구 및 위험 관리 메커니즘을 포함
  5. 시각적 효과: 명확한 지지점과 저항점 표시

전략적 위험

  1. 트렌드 반전 위험: 트렌드 전환점에서 연속적인 가짜 신호가 발생할 수 있습니다.
  2. 지연의 위험: 이동 평균과 MACD 모두 지연성이 있습니다.
  3. 변수 민감성: 정책 효과는 변수 설정에 민감하다
  4. 시장 환경 의존: 불안정한 시장에서 더 많은 손실 거래가 발생할 수 있습니다.

전략 최적화 방향

  1. 신호 필터링: 거래량이나 변동률 지표를 추가하여 신호를 필터링할 수 있다
  2. 동적 변수: 고정된 리스크/이익 비율을 시장의 변동성에 기반한 동적 변수로 바꾸는 것
  3. 시간 필터: 거래 시간 창을 제한하여 부적절한 시간대에 거래하는 것을 방지합니다.
  4. 시장 정서 지표의 증대: 시장 정서 지표를 도입하여 동향의 강도를 판단하는 데 도움을 줍니다.

요약하다

이것은 고전적인 가격 행동 이론과 기술 지표들을 결합한 완전한 거래 시스템이다. 전략은 엄격한 신호 확인 메커니즘과 위험 관리 방법을 통해 비교적 안정적인 거래 효과를 달성한다. 일부 고유한 위험이 존재하지만, 제안된 최적화 방향은 전략의 안정성과 수익성을 더욱 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2024-11-15 00:00:00
end: 2025-02-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Abdulhossein

//@version=6
strategy(title="Al Brooks Price Action with MACD Signals", shorttitle="Al Brooks PA + MACD", overlay=true)

// Inputs
length = input.int(52, title="Moving Average Length", minval=1)
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio", minval=1.0)
stopLossBuffer = input.float(0.01, title="Stop Loss Buffer (in %)", minval=0.001)
candleType = input.string("Close", title="Candle Type", options=["Close", "Open"])

// Indicators
sma = ta.sma(close, length)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
price = candleType == "Close" ? close : open

// Trend Conditions
uptrend = price > sma
downtrend = price < sma

// Buy/Sell Signals
buySignal = price > sma and macdLine > 0 and macdLine > signalLine
sellSignal = price < sma and macdLine < 0 and macdLine < signalLine

// Trade Execution
if (buySignal)
    longStopLoss = close * (1 - stopLossBuffer)
    longTakeProfit = close + (close - longStopLoss) * riskRewardRatio
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", "Buy", limit=longTakeProfit, stop=longStopLoss)

if (sellSignal)
    shortStopLoss = close * (1 + stopLossBuffer)
    shortTakeProfit = close - (shortStopLoss - close) * riskRewardRatio
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", "Sell", limit=shortTakeProfit, stop=shortStopLoss)

// Plot Signals
plotarrow(buySignal[2] ? 1 : na, colorup=color.new(color.green, 50), title="Buy Signal Arrow", offset=-1)
plotarrow(sellSignal[2] ? -1 : na, colordown=color.new(color.red, 50), title="Sell Signal Arrow", offset=-1)

// Close Positions
if (not buySignal and not sellSignal)
    strategy.close("Sell")
    strategy.close("Buy")

// Support and Resistance
support = ta.lowest(low, length)
resistance = ta.highest(high, length)
plot(support, title="Support", color=color.green, linewidth=1, style=plot.style_stepline)
plot(resistance, title="Resistance", color=color.red, linewidth=1, style=plot.style_stepline)
plot(sma, title="SMA", color=color.blue, linewidth=2)

// Alerts
alertcondition(buySignal[2], title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sellSignal[2], title="Sell Alert", message="Sell Signal Triggered")