이 전략은 단기 트렌드를 식별하기 위해 MACD 지표와 200일 이동 평균을 결합하여 장기 트렌드를 결정합니다. MACD 골든 크로스가 발생하고 낮은 수준에서 실행되면 가격이 200일 이동 평균을 넘으면 후속 스톱 로스로 긴 포지션을 설정합니다. 이 전략은 주로 MACD 지표의 황금 십자가와 죽음의 십자가와 200일 이동 평균 사이의 관계를 활용하여 잠재적 인 기회를 식별합니다.
이 전략은 주로 MACD 지표와 200일 이동 평균을 기반으로 판단됩니다. 구체적인 논리는 다음과 같습니다.
MACD 지표의 빠른 라인, 느린 라인 및 MACD 라인을 계산합니다. 빠른 라인 매개 변수는 12 일, 느린 라인 매개 변수는 26 일, 신호 라인 매개 변수는 9 일입니다.
200일 지수 이동 평균 (EMA) 을 계산합니다.
MACD 빠른 선이 느린 선 (황금 십자) 을 넘을 때 MACD 선은 음수 (낮은 수준에서 실행) 이며, 닫기 가격은 200 일 라인 이상, 긴 이동.
포지션에 진입한 후, 진입 가격의 0.5%로 스톱 로스 가격을 설정하고, 진입 가격의 1%로 목표 가격을 설정합니다.
만약 가격이 스톱 로스 또는 타겟 가격에 도달한다면, 스톱 로스로 포지션을 종료하거나 이윤을 취합니다.
매일 오후 3시 15분에 닫기 전에 의무적으로 평평하게 합니다.
거래 시간은 매일 9시부터 15시 15분까지입니다.
MACD 지표로 단기 트렌드 방향과 동력을 판단하고 200일 이동 평균으로 장기 트렌드 방향을 결정함으로써, 운영에 따른 트렌드를 실현할 수 있다. 스톱 로스는 더 작게 설정되고 목표 가격은 이익을 극대화하기 위해 더 크다. 의무적인 일일 출구는 하루종일 위험을 제어할 수 있다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
여러 지표를 결합하면 신호 판단이 더 정확합니다. MACD는 단기 트렌드와 추진력을 판단하고 200 일 MA는 주요 트렌드 방향을 판단합니다.
작은 스톱 로스 범위는 특정 마감에 견딜 수 있습니다. 스톱 로스는 0.5%에 불과하며 중장기 트렌드를 추적하는 데 도움이 됩니다.
높은 수익 목표가 더 많은 수익 공간을 허용합니다. 목표는 입시 가격의 1%이며, 트렌드 전략의 수익 극대화를 충족시킵니다.
의무적으로 매일 휴식을 취하는 것은 엄청난 가격 변동의 하루종일 위험을 피하는 데 도움이 됩니다. 이것은 전반적인 위험을 통제합니다.
전략 논리는 간단하고 명확하고 이해하기 쉽고 재현하기 쉽고 초보자도 배울 수 있습니다.
이 전략은 또한 몇 가지 위험을 안고 있습니다.
고갈 위험. 급격한 상승 후 가격이 하락 할 수 있으며, 시간 내에 손실을 멈추지 못하고 큰 손실을 유발할 수 있습니다. 트레일러 스톱 손실은 실시간으로 스톱 손실 가격을 조정하는 데 사용할 수 있습니다.
트렌드 결정 실패 위험. MACD 및 이동 평균은 잘못된 신호를 제공하여 트렌드가 아닌 시장에서 손실을 초래할 수 있습니다. 트렌드 가속화 단계에서만 입력하도록 필터링을 위해 거래량 지표를 결합하는 것을 고려하십시오.
하루 중 변동 위험은 매일의 휴전 메커니즘에도 불구하고 여전히 존재합니다. 이것은 거래자가 전체 포지션 크기를 제어하면서 일정 수준의 위험을 견딜 수 있도록 요구합니다.
이 전략은 다음 측면에서도 최적화 될 수 있습니다.
실제 동향을 결정하기 위해 거래량 지표를 결합하고, 불안한 통합 중에 잘못 입력하는 것을 피하십시오. 예를 들어, 거래량이 이전 기간보다 10% 증가하도록 입력 규칙을 설정하십시오.
동적 스톱 로스 메커니즘을 설정합니다. 더 많은 이익을 추적하기 위해 가격 움직임에 따라 입력 후 스톱 로스 가격을 지속적으로 조정합니다.
다양한 시장에서 MACD 매개 변수 조합과 테스트 효과를 최적화합니다. 매개 변수는 신호 민감도에 영향을 미칩니다.
다른 이동평균을 테스트해 보세요. 100일선과 150일선처럼요. 어떤 것이 트렌드에 더 잘 맞는지 보죠.
재입구 메커니즘을 추가하십시오. 매일 강제 출구는 후속 트렌드를 놓칠 수 있으므로 재입구 신호는 다음 날 위치를 유지할 수 있습니다.
요약하자면,이 전략은 신호 판단을 위해 MACD와 200 일 MA를 통합합니다. 단기 지표가 지속적인 신호를 제공 할 때 조건적으로 트렌드에 입력되며, 스톱 손실 및 수익을 취하는 메커니즘을 갖추고 있습니다. 의무적인 일일 휴식 또한 하루 하루 위험을 제어합니다. 논리는 초보자들도 쉽게 작동하고 다른 전략에 통합 할 수 있습니다. 그러나 트렌드 결정 실패 위험과 고갈 위험도 있습니다. 다음 단계는 전체 수익 인자를 개선하기 위해 스톱 손실 방법, 매개 변수, 거래량 필터 등과 같은 측면을 최적화 할 수 있습니다.
/*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)