
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng kết hợp hai chỉ số kỹ thuật MACD và RSI. Nó nắm bắt sự thay đổi của xu hướng giá thông qua chỉ số MACD, đồng thời sử dụng chỉ số RSI để xác nhận quá mua quá bán, thực hiện xác nhận tín hiệu kép. Chiến lược sử dụng phương pháp quản lý tiền cố định để kiểm soát vị trí và trang bị cơ chế dừng lỗ di động để bảo vệ lợi nhuận.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Đây là một chiến lược theo dõi xu hướng dựa trên các chỉ số kỹ thuật cổ điển, sử dụng sự kết hợp của MACD và RSI để tạo ra một cơ chế tạo tín hiệu giao dịch đáng tin cậy hơn. Chiến lược tổng thể được thiết kế đơn giản và thực tế, có giá trị thực tế tốt. Bằng cách tối ưu hóa tham số hợp lý và mở rộng chức năng, chiến lược này có khả năng đạt được hiệu suất giao dịch ổn định trong các môi trường thị trường khác nhau.
/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-11 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cryptohitman09
//@version=6
strategy("MACD + RSI 交易系统 - 110 美金买入", overlay=true)
// MACD 設定
fastLength = input.int(6, title="MACD Fast Length")
slowLength = input.int(13, title="MACD Slow Length")
signalSmoothing = input.int(5, title="MACD Signal Smoothing")
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// RSI 設定
rsiLength = input.int(14, title="RSI Length") // RSI 計算週期
rsiValue = ta.rsi(close, rsiLength) // 計算 RSI 值
rsiThresholdHigh = input.int(70, title="RSI 超買閾值") // RSI 超買閾值
rsiThresholdLow = input.int(30, title="RSI 超賣閾值") // RSI 超賣閾值
// 做多信号条件:MACD 線突破信号線,且 RSI 不低於 30
buySignal = (macdLine > signalLine) and (rsiValue >= rsiThresholdLow) // 只有 RSI 大於或等於 30 時才觸發買入
// 计算每次交易的仓位(每次交易目标为 110 美金的买入金额)
tradeAmount = 20010 // 每次买入110 美金
orderSize = tradeAmount / close // 根据当前价格计算仓位大小
// 移动止损(Trailing Stop)
enableTrailingStop = input.bool(true, title="启用移动止损")
trailingStopDistance = input.float(2, title="移动止损距离 (%)") / 89500 // 增加移动止损的距离
longTrailingStop = strategy.position_avg_price * (1 - trailingStopDistance)
// 交易逻辑:仅做多
if buySignal
strategy.entry("买入", strategy.long, qty=orderSize)
if enableTrailingStop
strategy.exit("卖出", from_entry="买入", trail_price=longTrailingStop, trail_offset=trailingStopDistance * close)
// 绘制 MACD 指标
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
// 绘制 RSI 值
plot(rsiValue, color=color.orange, title="RSI Value")
hline(rsiThresholdHigh, "RSI 超买", color=color.red)
hline(rsiThresholdLow, "RSI 超卖", color=color.green)
// 绘制买入信号
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="买入信号", text="BUY")
// 如果触发买入信号,则发送警报
if buySignal
alert('{"secret": "eyJhbGciOiJIUzI1NiJ9.eyJzaWduYWxzX3NvdXJjZV9pZCI6MTAwMDAyfQ.G1wLNjNyUPlTqYWsIqXSWnn_M4pRCKerBm7eTpyCiH8", "max_lag": "300", "timestamp": "{{timenow}}", "trigger_price": "{{close}}", "tv_exchange": "{{exchange}}", "tv_instrument": "{{ticker}}", "action": "{{strategy.order.action}}", "bot_uuid": "493b76f0-8a3c-4633-8b2b-90c02659dd4d", "strategy_info": {"market_position": "{{strategy.market_position}}", "market_position_size": "{{strategy.market_position_size}}", "prev_market_position": "{{strategy.prev_market_position}}", "prev_market_position_size": "{{strategy.prev_market_position_size}}"}, "order": {"amount": "{{strategy.order.contracts}}", "currency_type": "base"}}', alert.freq_once_per_bar_close)