Chiến lược này sử dụng sự chéo chéo của hai đường trung bình động theo cấp số nhân (EMA) với các khoảng thời gian khác nhau để tạo ra tín hiệu giao dịch. Khi EMA nhanh vượt qua trên EMA chậm, nó tạo ra tín hiệu mua, và khi EMA nhanh vượt qua dưới EMA chậm, nó tạo ra tín hiệu bán. Chiến lược này có thể được áp dụng cho các công cụ tài chính và khung thời gian khác nhau, chẳng hạn như vàng hiệu quả nhất trên khung thời gian 2 giờ và Bitcoin hiệu quả nhất trên biểu đồ hàng ngày, v.v.
Chiến lược chéo MACD là một chiến lược đơn giản dựa trên việc theo xu hướng. Ưu điểm của nó là sự đơn giản, thực tế và có thể áp dụng rộng rãi, trong khi nhược điểm của nó là khó nắm bắt sự đảo ngược xu hướng và lựa chọn tham số. Thông qua lọc xu hướng, tối ưu hóa các điểm vào và ra, tối ưu hóa tham số và kết hợp các chỉ số khác, hiệu suất của chiến lược này có thể được cải thiện, đáng để nghiên cứu và thử nghiệm thêm.
/*backtest start: 2023-04-12 00:00:00 end: 2024-04-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Advance EMA Crossover Strategy', overlay=true, precision=6) //****************************************************************************// // CDC Action Zone is based on a simple EMA crossover // between [default] EMA12 and EMA26 // The zones are defined by the relative position of // price in relation to the two EMA lines // Different zones can be use to activate / deactivate // other trading strategies // The strategy can also be used on its own with // acceptable results, buy on the first green candle // and sell on the first red candle //****************************************************************************// // Define User Input Variables xsrc = input(title='Source Data', defval=close) xprd1 = input(title='Fast EMA period', defval=12) xprd2 = input(title='Slow EMA period', defval=26) xsmooth = input(title='Smoothing period (1 = no smoothing)', defval=1) fillSW = input(title='Paint Bar Colors', defval=true) fastSW = input(title='Show fast moving average line', defval=true) slowSW = input(title='Show slow moving average line', defval=true) plotSigsw = input(title='Plot Buy/Sell Signals?', defval=true) //****************************************************************************// //Calculate Indicators xPrice = ta.ema(xsrc, xsmooth) FastMA = ta.ema(xPrice, xprd1) SlowMA = ta.ema(xPrice, xprd2) //****************************************************************************// // Define Color Zones and Conditions BullZone = FastMA > SlowMA and xPrice > FastMA // Bullish Zone BearZone = FastMA < SlowMA and xPrice < FastMA // Bearish Zone //****************************************************************************// // Strategy Entry and Exit Conditions if (BullZone and not BullZone[1]) strategy.entry("Buy", strategy.long) // Buy on the transition into BullZone if (BearZone and not BearZone[1]) strategy.close("Buy") // Sell on the transition into BearZone //****************************************************************************// // Display color on chart plotcolor = BullZone ? color.green : BearZone ? color.red : color.gray barcolor(color=fillSW ? plotcolor : na) //****************************************************************************// // Plot Fast and Slow Moving Averages plot(fastSW ? FastMA : na, color=color.red, title="Fast EMA", linewidth=2) plot(slowSW ? SlowMA : na, color=color.blue, title="Slow EMA", linewidth=2) //****************************************************************************// // Plot Buy and Sell Signals plotshape(series=plotSigsw and BullZone and not BullZone[1], location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=plotSigsw and BearZone and not BearZone[1], location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal") //****************************************************************************//