트렌드를 따르는 거래 전략은 MACD, 스토카스틱 및 SMA 이동 평균을 결합한 양적 거래 전략이다. 이 전략은 시장의 트렌드 방향을 파악하고 새로운 트렌드가 시작되면 적시에 시장에 진입하는 것을 목표로합니다. 다음으로 시장에서 언제 빠져나갈지 결정하기 위해 여러 지표의 신호를 조합합니다.
이 전략은 시장 트렌드의 강도와 방향을 판단하기 위해 MACD, 스토카스틱 및 SMA라는 세 가지 기술 지표를 사용합니다. MACD 라인이 신호 라인의 위를 넘을 때, 스토카스틱의 %K 라인이 %D 이상의 위를 넘어서 과잉 매입 수준을 넘고 빠른 SMA가 느린 SMA 이상의 위를 넘을 때 구매 신호가 발생합니다. 반대 상황이 발생하면 판매 신호가 식별됩니다.
여러 지표를 결합 함으로써 가짜 신호를 필터링하여 트렌드의 실제 시작과 끝을 인식 할 수 있습니다. 동시에, 다른 지표는 검증을 형성하고 잘못된 거래의 가능성을 줄일 수 있습니다.
이 전략의 가장 큰 장점은 여러 지표의 조합으로 시장 소음을 효과적으로 필터링하고 트렌드의 실제 시작과 끝을 차단 할 수 있습니다. 단일 MACD, 스토카스틱 또는 SMA를 사용하는 것과 비교하면 인식 효과가 훨씬 좋습니다.
또한, 이 전략은 매개 변수 조정에서 유연하며, 다른 제품과 주기에 맞게 조정될 수 있어 매우 적응력이 있습니다.
이 전략의 주요 위험은 여러 지표의 조합으로 거래 빈도가 증가하고 과잉 거래의 위험이 발생한다는 것입니다. 또한, 잘못된 매개 변수 설정은 또한 잘못된 거래의 위험을 가져올 수 있습니다.
위험을 줄이기 위해 거래 빈도는 적절하게 제어되어야하며, 더 긴 주기를 선택하고 매개 변수를 최적화해야합니다. 필요한 경우 단일 거래 손실을 제어하기 위해 스톱 로스를 고려 할 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
트렌드를 따르는 전략은 여러 지표에 기반하여 지표의 복합 검증을 통해 신호의 정확성을 향상시키고 트렌드의 시작과 끝을 효과적으로 식별 할 수 있습니다. 매개 변수 최적화 및 위험 통제는이 전략의 성공의 열쇠입니다. 일반적으로이 전략은 작은 드로다운과 큰 수익 잠재력을 가지고 있으며 매우 실용적인 양적 거래 전략입니다.
/*backtest start: 2023-01-05 00:00:00 end: 2024-01-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Rule Number 1 Signals", overlay=true) //Calculate MACD crossing or not fastLength = input(8) slowlength = input(17) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) macdDelta = MACD - aMACD //Calculate Stochastic Crossing stochasticLength = input(14, minval=1) stochasticOverBought = input(80) stochasticOverSold = input(20) emaSignal = input(10) smoothK = 5 smoothD = 5 k = sma(stoch(close, high, low, stochasticLength), smoothK) d = sma(k, smoothD) //Crossovers and Over /Under macdCrossOver = crossover(macdDelta, 0) macdCrossUnder = crossunder(macdDelta, 0) macdOver = macdDelta > 0 macdUnder = macdDelta < 0 stochasticCrossOver = crossover(k, d) stochasticCrossUnder = crossunder(k, d) stochasticOver = k > d stochasticUnder = k < d ema = ema(close, emaSignal) smaCrossOver = crossover(close, ema) smaCrossUnder = crossunder(close, ema) smaOver = close > ema smaUnder = close < ema if ((macdCrossOver and stochasticOver and smaOver) or (macdOver and stochasticCrossOver and smaOver) or (macdOver and stochasticOver and smaCrossOver)) strategy.entry("Rule 1 Buy", strategy.long, comment="Rule 1 Buy") if ((macdCrossUnder and stochasticUnder and smaUnder) or (macdUnder and stochasticCrossUnder and smaUnder) or (macdUnder and stochasticUnder and smaCrossUnder)) strategy.entry("Rule 1 Sell", strategy.short, comment="Rule 1 Sell") //Plot the Oversold Study bgcol = k < stochasticOverSold ? green : k > stochasticOverBought ? red : na bgcolor(bgcol)