
이 전략은 MACD 지표의 패스트 라인과 패스트 라인의 교차점을 계산하여 진입과 출구를 판단한다. 동시에 EMA 지표와 결합하여 트렌드 방향을 판단한다. 패스트 라인이 아래에서 패스트 라인을 깨고 MACD 값이 0보다 낮으면 더 많이 한다. 패스트 라인이 위에서 패스트 라인을 깨고 MACD 값이 0보다 높으면 공백한다.
MACD의 빠른 선이 아래에서 느린 선을 뚫고 MACD 값이 0보다 낮으면, 주식의 가격의 단기 이동 평균이 상승하기 시작하고, 운동량이 증가하기 시작하고, 구매할 수 있다. MACD의 빠른 선이 위에서 느린 선을 뚫고 MACD 값이 0보다 높으면, 주식의 가격의 단기 이동 평균이 떨어지기 시작하고, 운동량이 약해지기 시작하고, 판매할 수 있다.
EMA 지표는 전반적인 트렌드 방향을 판단한다. EMA 값이 높으면 상승 트렌드이며, 값이 낮으면 하향 트렌드이다. 전략은 EMA가 상승 트렌드라고 표시될 때만 더 많이하고, EMA가 하향 트렌드라고 표시될 때 공백을 만들고, 역동 거래를 피한다.
스톱패스는 신호가 생성될 때 EMA 값이다. EMA는 트렌드를 잘 판단할 수 있으며, EMA 값으로 설정하면 스톱패스가 이전 시점의 낮은 점이나 높은 점에 의해 뚫리는 확률을 줄일 수 있다. 스톱패스는 입점의 2배로 설정되어 수익 위험 비율은 2이다.
이 전략은 MACD 지표와 EMA 지표를 결합하여 입시 시점과 트렌드 방향을 더 잘 판단할 수 있다. 중지 방식은 합리적이며, 추격 어내는 추락을 피한다. 수익 위험 비율은 2이며, 보다 보수적인 파라미터를 설정한다. MACD 지표 파라미터는 조정 가능하며, 시장의 변화에 유연하게 적응할 수 있다.
MACD 지표에는 avraging lag이 존재하며, 지표 전환은 가격 전환에 뒤쳐져 있다. 전략은 구체적인 입구 지점을 결정할 수 없으며, 일정 정도의 맹목성이 존재한다. 중지 손실은 충격적 인 상황에 의해 촉발 될 수 있다. 중지 지점은 앞당겨지거나 지연 될 수 있다.
이 전략은 MACD 지표와 EMA 지표를 통합하여 진입 시기와 트렌드 방향을 판단한다. 간단한 합리적인 스톱 스톱 방식을 사용합니다. MACD 지표 지연, 스톱 스톱 파라미터 등을 위해 추가적으로 최적화하여 더 나은 전략 효과를 얻을 수 있습니다.
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)
// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close
[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)
// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)
// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
strategy.entry("Long", strategy.long)
longStopLoss = ema200
longTakeProfit = close + 2 * (close - ema200)
strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)
// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
strategy.entry("Short", strategy.short)
shortStopLoss = ema200
shortTakeProfit = close - 2 * (ema200 - close)
strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)