
Chiến lược giao dịch chéo MACD đa thời gian là một chiến lược theo dõi xu hướng. Nó tạo ra tín hiệu giao dịch khi giá vượt qua các chỉ số MACD bằng cách tính toán các chỉ số khác nhau, thực hiện giao dịch tự động cho các sản phẩm tài chính như cổ phiếu, chỉ số, ngoại hối.
Chiến lược này tính toán 3 đường trung bình di chuyển cùng một lúc: một đường trung bình di chuyển có trọng lượng WMA và hai đường trung bình di chuyển chỉ số EMA. Các tham số của ba đường trung bình di chuyển được đặt khác nhau, lần lượt là 25 ngày, 50 ngày và 100 ngày. Điều này cho phép đường trung bình di chuyển bao gồm các chu kỳ chuyển động giá khác nhau.
Sau khi tính toán đường trung bình di chuyển, chiến lược sẽ theo dõi xem giá có phá vỡ hoặc phá vỡ một đường trung bình di chuyển không. Nếu giá phá vỡ hoặc phá vỡ tất cả 3 đường trung bình di chuyển cùng một lúc, thì sẽ tạo ra tín hiệu giao dịch.
Ví dụ, một tín hiệu mua được tạo ra khi giá cao hơn tất cả 3 đường trung bình di chuyển cùng một lúc; một tín hiệu bán được tạo ra khi giá thấp hơn tất cả 3 đường trung bình di chuyển cùng một lúc. Việc theo dõi mối quan hệ giữa giá và đường trung bình di chuyển có thể xác định điểm biến của xu hướng giá.
Bằng cách đánh giá chéo các chỉ số trên nhiều thời gian, bạn có thể lọc ra một số tín hiệu giả, làm cho tín hiệu giao dịch đáng tin cậy hơn.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược giao dịch chéo MACD đa trục thời gian có tư duy tổng thể rõ ràng, đánh giá xu hướng giá bằng đường trung bình di chuyển nhiều chu kỳ, tạo tín hiệu giao dịch khi giá biến đổi đáng kể. Có nhiều không gian tối ưu hóa chiến lược, có thể điều chỉnh tham số cho các loại khác nhau và chu kỳ thị trường để có được hiệu quả giao dịch tốt. Chiến lược này phù hợp cho giao dịch theo quy trình đối với cổ phiếu, chỉ số và ngoại hối có xu hướng.
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("TC - MACDoscillator v2", overlay=true)
// ___________ .__ _________ .__ __ .__
// \__ ___/____ | | ____ ____ \_ ___ \_____ ______ |__|/ |______ | |
// | | \__ \ | | / ___\ / _ \ / \ \/\__ \ \____ \| \ __\__ \ | |
// | | / __ \| |__/ /_/ > <_> ) \ \____/ __ \| |_> > || | / __ \| |__
// |____| (____ /____/\___ / \____/ \______ (____ / __/|__||__| (____ /____/
// \/ /_____/ \/ \/|__| \/
//
// MACDoscillator Strategy v2
// Josh Breitfeld 2016
//
/// INPUTS START ///
//tradeSize = input(title="Shares Per Trade", defval=2500, step=1)
WMALength = input(title="WMA Length", defval=25, step=1)
EMA1Length = input(title="EMA1 Length", defval=50, step=1)
EMA2Length = input(title="EMA2 Length", defval=100, step=1)
//security = input(title="Alternate Security", type=string, defval="SPX500")
//inverse = input(title="Inverse Signals", type=bool, defval=true)
/// INPUTS END ///
/// ALGORITHM START ///
/// Define calculations
WMA = wma(close,WMALength)
EMA1 = ema(close,EMA1Length)
EMA2 = ema(close,EMA2Length)
/// Grab values from alternate security
dWMA = WMA
dEMA1 = EMA1
dEMA2 = EMA2
aClose = close
/// Crossover signal system
/// Long crosses
lc1 = aClose > dWMA ? true : false
lc2 = aClose > dEMA1 ? true : false
lc3 = aClose > dEMA2 ? true: false
/// Short crosses
sc1 = aClose < dWMA ? true : false
sc2 = aClose < dEMA1 ? true : false
sc3 = aClose < dEMA2 ? true : false
//plot(lc1,color=green)
//plot(lc2,color=green)
//plot(lc3,color=green)
//plot(sc1,color=red)
//plot(sc2,color=red)
//plot(sc3,color=red)
/// ALGO ORDER CONDITIONS START ///
pBuyToOpen = (lc1 and lc2 and lc3 ? true : false)
pSellToOpen = (sc1 and sc2 and sc3 ? true : false)
pSellToClose = (lc1 ? true : false) and not pBuyToOpen
pBuyToClose = (sc1 ? true : false) and not pSellToOpen
//plot(pBuyToOpen,color=lime)
//plot(pBuyToClose,color=lime)
//plot(pSellToOpen,color=red)
//plot(pSellToClose,color=red)
/// INVERT SIGNALS
//buyToOpen = inverse ? -pBuyToOpen : pBuyToOpen
//sellToOpen = inverse ? -pBuyToOpen : pSellToOpen
//sellToClose = inverse ? -pSellToClose : pSellToClose
//buyToClose = inverse ? -pBuyToClose : pBuyToClose
/// ALGO ORDER CONDITIONS END ///
/// ALGORITHM END ///
/// DEFINE PLOTS ///
plot(dWMA,"WMA",lime,1,line)
plot(dEMA1,"EMA1",blue,2,line)
plot(dEMA2,"EMA2",red,3,line)
//plot(aClose,"Close",orange,4,line)
/// PLOTS END ///
/// ORDER BLOCK ///
//strategy.entry("My Long Entry Id", strategy.long)
/// OPENING ORDERS START ///
if(pBuyToOpen)
strategy.entry("BTO", strategy.long, comment="BTO")
if(pSellToOpen)
strategy.entry("STO", strategy.short, comment="STO")
/// OPENING ORDERS END ///
/// CLOSING ORDERS START ///
strategy.close("BTO", pBuyToClose)
strategy.close("STO", pSellToClose)
/// CLOSING ORDERS END ///
/// END ORDER BLOCK ///
// Josh Breitfeld - Talgo Capital 2016
/// STRATEGY END ///