
Bài viết này sẽ giới thiệu một hệ thống chiến lược giao dịch kết hợp nhiều chỉ số kỹ thuật. Hệ thống này được thiết kế để cung cấp cho các nhà giao dịch một giải pháp giao dịch toàn diện bằng cách tích hợp nhiều phương pháp phân tích kỹ thuật như MACD, EMA, trung bình di chuyển đơn giản và MA100, kết hợp với quản lý rủi ro và bộ lọc thời gian.
Chiến lược này là một hệ thống phân tích kỹ thuật nhiều chiến lược, bao gồm bốn chiến lược con độc lập: chiến lược MACD, chiến lược EMA8, chiến lược MA đơn giản và chiến lược MA100. Hệ thống cho phép các nhà giao dịch có thể lựa chọn các loại chiến lược khác nhau tùy thuộc vào tình hình thị trường, mỗi chiến lược con có logic nhập và thoát riêng và có cơ chế quản lý rủi ro tương ứng.
Chiến lược MACD: Để nắm bắt xu hướng thị trường bằng cách xác định các mô hình tăng và giảm liên tục trên đường thẳng MACD. Khi có ba cột đường thẳng liên tục tăng sẽ kích hoạt tín hiệu mua và hai cột đường thẳng liên tục giảm sẽ kích hoạt tín hiệu bán.
Chiến lược EMA8: kết hợp phân tích hình dạng đường trung bình EMA8, đỉnh trước và đường K. Hệ thống mua khi giá vượt qua đường EMA8 và giá đóng cửa cao hơn đỉnh trước, cùng với đường K mạnh. Chiến lược này có cài đặt dừng lỗ 2%.
Chiến lược MA đơn giản: Xây dựng hệ thống theo dõi xu hướng bằng cách sử dụng moving average của nhiều chỉ số ((chu kỳ 10, 15, 25, 35, 40). Khi đường trung bình ngắn hơn nằm trên đường trung bình dài hơn và giá vượt qua đường trung bình ngắn nhất, kích hoạt tín hiệu mua.
Chiến lược MA100: kết hợp đường trung bình 100 ngày, đường trung bình 8 ngày và đường trung bình 25 ngày, và giới thiệu các chỉ số ngẫu nhiên để đánh giá quá bán. Khi đường trung bình ngắn hạn nằm trên đường trung bình dài hạn và giá dao động gần MA100, hệ thống tìm kiếm cơ hội mua trong khu vực quá bán. Chiến lược này sử dụng thiết lập dừng lỗ 3%.
Hệ thống phân tích kỹ thuật đa phương pháp này cung cấp cho các nhà giao dịch một khuôn khổ quyết định giao dịch toàn diện bằng cách tích hợp nhiều phương pháp phân tích kỹ thuật đã được chứng minh. Ưu điểm chính của hệ thống là tính linh hoạt và khả năng kiểm soát rủi ro, nhưng đồng thời cũng đòi hỏi các nhà giao dịch có hiểu biết sâu sắc hơn về thị trường để sử dụng đúng.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ v5 code implements multiple trading strategies
//@version=5
strategy("Multi-Strategy Trading System", overlay=true)
// Input parameters for customization
strategy_type = input.string("MACD", "Strategy Type", options=["MACD", "EMA8", "SimpleMA", "MA100"])
show_macd = input.bool(true, "Show MACD Signals")
show_ema = input.bool(true, "Show EMA Signals")
show_ma = input.bool(true, "Show MA Signals")
// MACD Strategy Components
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
// Function to detect three consecutive ascending histogram bars
isThreeAscendingBars(hist) =>
not na(hist[3]) and hist[3] < hist[2] and hist[2] < hist[1] and hist[1] < hist[0]
// Function to detect two consecutive descending histogram bars
isTwoDescendingBars(hist) =>
not na(hist[2]) and hist[2] > hist[1] and hist[1] > hist[0]
// EMA Strategy Components
ema8_weekly = request.security(syminfo.tickerid, "W", ta.ema(close, 8))
weeklyHigh = request.security(syminfo.tickerid, "W", high)
previousWeekHigh = weeklyHigh[1]
isStrongCandleWeekly = request.security(syminfo.tickerid, "W", close > open and (close - open) > (high - low) * 0.6)
// Simple MA Strategy Components
ema10 = ta.ema(close, 10)
ema15 = ta.ema(close, 15)
ema25 = ta.ema(close, 25)
ema35 = ta.ema(close, 35)
ema40 = ta.ema(close, 40)
// MA100 Strategy Components
ma100 = ta.sma(close, 100)
ma8 = ta.sma(close, 8)
ma25 = ta.sma(close, 25)
// Corrected Stochastic Oscillator Calculation
stochK = ta.stoch(high, low, close, 14)
stochD = ta.sma(stochK, 3)
isOversold = stochK < 20 and stochD < 20
// MACD Strategy Logic
if strategy_type == "MACD"
// Buy condition: Three ascending histogram bars after lowest
if isThreeAscendingBars(histLine)
strategy.entry("MACD Buy", strategy.long)
// Sell condition: Two descending histogram bars after highest
if isTwoDescendingBars(histLine)
strategy.close("MACD Buy")
// EMA8 Strategy Logic
if strategy_type == "EMA8"
if close > ema8_weekly and close > previousWeekHigh and isStrongCandleWeekly
strategy.entry("EMA8 Buy", strategy.long)
strategy.exit("EMA8 Exit", "EMA8 Buy", stop=low - (low * 0.02))
// Simple MA Strategy Logic
if strategy_type == "SimpleMA"
isUptrend = ema10 > ema15 and ema15 > ema25 and ema25 > ema35 and ema35 > ema40
if isUptrend and close > ema10 and close[1] <= ema10[1]
strategy.entry("MA Buy", strategy.long)
strategy.exit("MA Exit", "MA Buy", stop=low - (low * 0.02))
// MA100 Strategy Logic
if strategy_type == "MA100"
isUptrend = ma8 > ma100 and ma25 > ma100
isPriceNearMA100 = math.abs(close - ma100) / ma100 * 100 < 1
if isUptrend and isPriceNearMA100 and isOversold
strategy.entry("MA100 Buy", strategy.long)
strategy.exit("MA100 Exit", "MA100 Buy", stop=low - (low * 0.03))
// Plotting components for visualization
plot(ma100, "MA100", color=color.blue, linewidth=2)
plot(ema8_weekly, "EMA8 Weekly", color=color.yellow, linewidth=2)
plot(series=histLine, title="MACD Histogram", style=plot.style_histogram, color=histLine > 0 ? color.green : color.red)