이 전략은 MACD 지표와 이동 평균을 결합하고, 둘 다 정렬 신호를 줄 때 길게 이동합니다.
논리는 다음과 같습니다.
FAST MACD를 계산합니다. 일반적으로 12일 EMA입니다.
계산 MACD SLOW, 일반적으로 26일 EMA
MACD는 FAST 빼기 SLOW입니다
신호선은 일반적으로 MACD의 9일 MA입니다.
9일 및 26일 MA를 계산
MACD가 신호선을 넘을 때 긴 것을 고려하십시오.
9일 MA가 26일 MA를 넘을 때 장거리
MACD가 신호선 아래로 넘어가고 9일 MA가 26일 MA 아래로 넘어가면 긴 종합
이 전략은 MACD의 과잉 구매 과잉 판매 지표와 MA의 트렌드 다음 능력을 활용하여 더 높은 확률 거래를 위해 둘을 결합합니다.
MACD가 과잉 구매/ 과잉 판매를 판단하고, MA는 추세를 결정합니다.
조합은 높은 확률의 장기 기회를 제공합니다.
적용하기 쉬운 명확한 규칙
최적화를 요구합니다.
단기적 기회만 활용할 수 없는 경우
트렌드 상거래는 손실을 증가시킬 수 있습니다.
이 전략은 시장 리듬을 판단하는 데 MACD와 MA
/*backtest start: 2023-09-06 00:00:00 end: 2023-09-13 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MACD Cross+MA", overlay=true) //@version=4 // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // === INPUT BACKTEST RANGE === FromYear = input(defval = 2019, title = "From Year", minval = 2009) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2009) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //plot plot(sma(close,9),color=color.red) plot(sma(close,26),color=color.green) //Condition BMacdcondition= (macd>signal) SMacdcondition= (macd<signal) longCondition = crossover(sma(close, 9), sma(close, 26)) shortCondition = crossunder(sma(close, 9), sma(close, 26)) //entry if (BMacdcondition) and window() (longCondition) strategy.entry("LONG", strategy.long) if (shortCondition) and window() (SMacdcondition) strategy.close("LONG", qty_percent=100 , comment="หนีตาย")