200일 이동 평균 추세 추종 전략을 사용한 MACD 골든 크로스 돌파


생성 날짜: 2023-12-13 16:13:33 마지막으로 수정됨: 2023-12-13 16:13:33
복사: 0 클릭수: 866
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

200일 이동 평균 추세 추종 전략을 사용한 MACD 골든 크로스 돌파

개요

이 전략은 MACD 지표의 단기 트렌드를 식별하고 200 일 평균선에서 장기 트렌드를 판단하는 전략과 결합하여 MACD 골드 포크가 낮은 곳에서 작동하는 경우, 가격이 200 일 평균선을 돌파하면, 손실을 추적하는 방법으로 긴 포즈를 구축합니다. 이 전략은 주로 MACD 지표의 골드 포크 사다리 및 200 일 평균선의 위치 관계를 사용하여 잠재적인 기회를 식별합니다.

전략 원칙

이 전략은 주로 MACD 지표와 200 일간 평균 선의 두 가지 기술 지표에 근거하여 판단됩니다. 구체적인 논리는 다음과 같습니다:

  1. MACD 지표의 빠른 선, 느린 선 및 MACD 선을 계산한다. 그 중 빠른 선의 변수는 12일, 느린 선의 변수는 26일, 신호 선의 변수는 9일이다.

  2. 200일 지수 이동 평균 EMA를 계산한다.

  3. MACD 빠른 느린 라인 포크 ((빠른 라인에서 느린 라인을 통과), MACD 라인은 마이너스 값 ((낮은 레벨 실행)), 마감 가격이 200 일선보다 높을 때, 더 많은 입장을하십시오.

  4. 입시 후, 입시 가격의 0.5%로 스톱 손실 가격을 설정하고, 입시 가격의 1%로 목표 가격을 설정합니다.

  5. 만약 가격이 스톱로스 또는 목표 가격에 도달하면 스톱로스 또는 스톱이 포지션을 탈퇴한다.

  6. 매일 종점 15시 15분 전 의무적으로 평지 퇴장한다.

  7. 거래 시간은 매일 9시부터 15시 15분까지입니다.

MACD 지표를 통해 단기 트렌드 방향과 강도를 판단하고, 200 일 평균선과 결합하여 장기 트렌드 방향을 판단하여, 트렌드 추적 작업을 구현한다. 중지 설정이 작고, 목표 가격이 크며, 수익을 극대화한다. 매일 강제 퇴장은 야간 위험을 제어한다.

전략적 이점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 다중 지표 결합으로 판단 신호가 더 정확하다. MACD는 단기 경향과 강도를 판단하고, 200일 평균선은 주요 경향 방향을 판단한다.

  2. 스톱 손실은 작은 편이며, 약간의 회수에도 견딜 수 있다. 스톱 손실은 0.5%에 불과하며, 트렌드 중기 행세를 추적하는 데 도움이 된다.

  3. 목표 수익률이 높고, 수익 공간이 더 크다. 목표는 입점 가격의 1%이며, 트렌드 전략을 충족시키는 수익을 극대화한다.

  4. 매일 매진을 강제하면 하룻밤 사이에 큰 변동의 위험을 피하고 위험을 통제 할 수 있습니다.

  5. 전략적 아이디어는 간단하고 명확하며, 이해하기 쉽고 복제하기 쉽고, 초보자 학습에 적합하다.

전략적 위험

이 전략에는 몇 가지 위험도 있습니다.

  1. 실패 위험. 급격한 상승 후 가격이 역전될 수 있고, 시간 내에 상쇄를 하지 못하여 큰 손실을 초래할 수 있다. 트레일러 상쇄 방식을 설정하여 가격에 따라 실시간으로 상쇄 위치를 조정할 수 있다.

  2. 트렌드 판단 실패의 위험. MACD 지표와 평균선은 잘못된 신호를 발산하여 트렌드 아닌 시장에 진입하여 손실을 초래할 수 있습니다. 거래량 지표와 결합하여 필터링을 고려하여 트렌드 가속 단계에서만 진입할 수 있습니다.

  3. 야간 변동 위험. 매일 강제 평점 메커니즘을 설정하더라도, 야간 동안 시장이 파열 될 가능성이 있으며, 큰 손실을 초래합니다. 이것은 거래자가 전체 포지션 규모를 제어하면서 일정 수준의 위험을 감수해야합니다.

전략 최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 거래량 지표와 결합하여 실제 트렌드를 판단하여 충격 조정에서 잘못된 입장을 피하십시오. 예를 들어, 거래량이 이전 주기의 10%보다 크어야만 입장을 설정해야합니다.

  2. 다이내믹 스톱 모드를 설정한다. 진입 후 가격에 따라 실시간으로 스톱 포지션을 조정하고, 더 많은 수익을 위해 스톱을 추적한다.

  3. MACD 파라미터 집합을 최적화하고, 다른 시장에서 다른 파라미터의 실제 효과를 테스트한다. 파라미터 설정은 신호의 감수성에 영향을 미칩니다.

  4. 100일선, 150일선 등 다른 평균선 지표를 테스트하여 어느 평균선이 트렌드와 일치하는지를 판단한다.

  5. 재입장 메커니즘을 추가한다. 의무적으로 매일 퇴장을 설정했기 때문에, 후속 행사를 놓칠 수 있다. 재입장 신호를 추가하고, 다음 날에도 계속 입장을 유지할 수 있다.

요약하다

이 전략은 MACD 지표와 200 일 평균선 판단 신호를 통합하고, 단기 지표가 지속적인 신호를 발산할 때, 트렌드 입장을 취하고, 손실 중지 및 중지 메커니즘을 설정한다. 동시에 매일 평평한 포지션을 통제 하룻밤의 위험을 강제한다. 전략 아이디어는 간단하고, 쉽게 작동하며, 초보자 학습에 적합하며, 다른 전략에 모듈로 통합 할 수 있다. 그러나 오류 위험과 실패 위험을 판단하는 특정 트렌드가 존재하며, 이는 거래자의 특정 위험 감수성을 필요로 한다. 다음 단계는 손실 방식, 변수 선택, 거래량 과잉 등에서 최적화하여 전략 수익 인자를 향상시킬 수 있다.

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

//@version=4
strategy("MACD and 200 EMA Long Strategy", shorttitle="MACD200EMALong", overlay=true)

// Input parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
ema200Length = input(200, title="200 EMA Length")
stopLossPercentage = input(0.5, title="Stop Loss Percentage")
targetPercentage = input(1, title="Target Percentage")

// Trading session
startHour = input(09, title="Start Hour", minval=0, maxval=23)
startMinute = input(00, title="Start Minute", minval=0, maxval=59)
endHour = input(15, title="End Hour", minval=0, maxval=23)
endMinute = input(15, title="End Minute", minval=0, maxval=59)

// Calculate MACD
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)

// Calculate 200-period EMA
ema200 = ema(close, ema200Length)

// Conditions for entering a long position
longCondition = crossover(macdLine, signalLine) and macdLine < 0 and close > ema200 and hour < 13

// Calculate stop loss and target levels only once at the entry
var float stopLossLevel = na
var float targetLevel = na

if (longCondition)
    stopLossLevel := close * (1 + stopLossPercentage / 100)


    targetLevel := close * (1 + targetPercentage / 100)

// Trading session condition
intradayCondition = true

// Strategy logic
strategy.entry("Long", strategy.long, when=longCondition and intradayCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=targetLevel)

// Force exit if the current close is below the stop loss level
if (not na(stopLossLevel) and close < stopLossLevel)
    strategy.close("Long")

// Exit the trade if the current close is greater than or equal to the target level
if (not na(targetLevel) and close >= targetLevel)
    strategy.close("Long")

// Manually force exit at 3:15 PM
if (hour == 15 and minute == 15)
    strategy.close("Long")

// Plotting the EMA, target, and stop loss on the chart
plot(ema200, color=color.blue, title="200 EMA")
plot(stopLossLevel, color=color.red, title="Stop Loss", linewidth=2)
plot(targetLevel, color=color.green, title="Target", linewidth=2)

// Plot entry arrow
plotshape(series=longCondition and intradayCondition, title="Long Entry", color=color.green, style=shape.triangleup, location=location.belowbar)