이동 평균 크로스오버 거래 전략은 빠른 EMA (fastLength) 와 느린 EMA (slowLength) 라인의 크로스오버를 계산하여 구매 및 판매 신호를 생성합니다. 빠른 라인이 느린 라인의 위를 넘을 때 구매 신호가 생성됩니다. 빠른 라인이 느린 라인을 넘을 때 판매 신호가 생성됩니다. 이 전략은 간단하고 실용적이며 중장기 및 단기 거래에 적합합니다.
이 전략은 두 개의 이동 평균 라인, 빠른 라인 및 느린 라인을 사용합니다. 빠른 라인 매개 변수 EMAfastLength는 9 일 라인에 기본 설정되며 느린 라인 매개 변수 EMAslowLength는 26 일 라인에 기본 설정됩니다. 시장 구매 및 판매 신호를 결정하기 위해 두 EMA 라인의 교차를 계산하십시오:
특정 거래 신호와 전략 규칙은 다음과 같습니다.
그래서 이 전략은 두 이동평균선의 황금 십자와 죽은 십자 위에 기반을 두고 거래합니다.
위험을 해결하기 위해 최적화 할 수있는 매개 변수에는 이동 평균 사이클, 거래 다양성, 수익 취득 및 중지 손실 비율 등이 포함됩니다. 위험을 줄이기 위해 광범위한 테스트가 필요합니다.
이 전략의 이동 평균 크로스오버 아이디어는 간단하고 실용적입니다. 다음 방법으로 최적화 될 수 있습니다.
이러한 최적화 테스트를 통해 전략의 실질적 효과와 안정성이 크게 향상될 수 있습니다.
이동 평균 크로스오버 전략의 아이디어는 간단하지만 실제 적용에는 지속적인 최적화가 필요합니다. 이 전략은 거래 신호와 기본 거래 규칙을 생성하는 논리를 제공합니다. 이러한 기초에 따라 활용 가능한 양적 전략이 될 수 있습니다. 이동 평균의 응용은 또한 혁신하고 개선 할 수있는 전략에 대한 아이디어를 제공합니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA Cross by MarketAlpha", overlay=true) EMAfastLength = input(defval = 9, minval = 2) EMAslowLength = input(defval = 26, minval = 2) Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05) StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05) profitpoints = close*Targetpercentage stoplosspoints = close*StopLosspercentage price = close FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) 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" emafast = ema(price, EMAfastLength) emaslow = sma(price, EMAslowLength) plot(emafast,color=green) plot(emaslow,color=red) enterLong() => crossover(emafast, emaslow) strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong()) strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints) enterShort() => crossunder(emafast, emaslow) strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort()) strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)