
쌍평평선 교차 거래 전략은 트렌드 추적 전략이다. 그것은 빠른 이동 평균 (MACD) 과 느린 이동 평균의 교차를 구매 및 판매 신호로 사용합니다. 빠른 이동 평균이 아래에서 느린 이동 평균을 스캔 할 때 구매 신호를 생성; 빠른 이동 평균이 위에서 아래로 느린 이동 평균을 스캔 할 때 판매 신호를 생성한다.
이 전략은 MACD 지표에 기초한다. MACD 지표는 가격의 동적 변화를 반영하는 두 가지 다른 변수의 이동 평균의 차이다. 구체적으로, 빠른 이동 평균 (설정된 변수는 12 일선) 을 빼고 느린 이동 평균 (설정된 변수는 26 일선) 을 얻는 차이는 MACD 기둥이라고 한다. 흔들림을 없애기 위해 MACD 지표에는 DEA 선 또는 신호 선이 도입되며, 일반적으로 MACD의 9 일 중화 이동 평균이다.
MACD 기둥이 DEA 선을 아래로 돌파하여 긍정적 영역에 진입하면, 단기 평균선 위에 장기 평균선을 닦아주는 것을 나타내며, 주가 트렌드가 상승으로 전환되어 구매 신호를 발생시킨다. MACD가 DEA 선을 위쪽으로 내려가며, 마이너스 영역에 진입하면, 단기 평균선 아래에 장기 평균선을 닦아주는 것을 나타내며, 주가 트렌드가 하향으로 전환되어 판매 신호를 발생시킨다.
이 전략은 MACD 기둥과 DEA 선의 교차를 이용하여 구매와 판매의 시간을 판단하는 것이다. MACD 기둥 위에 DEA 선을 때 구매하고, 아래에 DEA 선을 때 판매한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위험을 줄이기 위해, 적절하게 파라미터를 조정할 수 있습니다, 또는 다른 지표와 결합하여 사용할 수 있습니다. 예를 들어, 물가 지표, 변동률 지표 등. 또한, 합리적인 중지 손실 및 중지 전략도 중요합니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
매개 변수 최적화. 다양한 매개 변수 조합을 테스트하여 최적의 매개 변수를 찾을 수 있다. 그러나 과잉 최적화를 피하는 것을 주의한다.
다른 지표들과의 조합. 수량 지표, 변동률 지표 등을 도입하여 더 강력한 조합 전략을 형성할 수 있다.
손해 차단 전략. 합리적인 손해 차단 지점을 설정하여 위험을 효과적으로 제어 할 수 있습니다.
적응성 최적화. 이 전략은 실제 상황에 따라 조정할 수 있습니다.
쌍평선 교차 전략은 가격 추세의 변화를 포착하여 저비용의 트렌드 추적 거래를 실현한다. 그것은 간단하고 실용적이며, 구현하기 쉬운, 초보자에게 적합한 입문 전략이다. 그러나 이 전략에는 또한 결함이 있으며 위험을 예방하는 데 주의를 기울여야 한다. 지속적인 최적화와 개선으로 이 전략의 실제 효과를 더 좋게 만들 수 있으며, 권장된다.
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("MACD Strategy by Forbes",default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)
fastLength = input(20)
slowlength = input(40)
MACDLength = input(4)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2011, 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() => true // create function "within window of time"
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
f1 = plot(MACD,color=red)
s1 = plot(aMACD,color=blue)
plotColor = if delta > 0
delta > delta[1] ? lime : green
else
delta < delta[1] ? maroon : red
plot(delta, color=plotColor, style=columns)
if (crossover(delta, 0))
strategy.entry("Buy", true, when=window(), comment="Buy")
if (crossunder(delta, 0))
strategy.close_all(when=window())
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)