
Chiến lược này là một hệ thống theo dõi xu hướng kết hợp nhiều chỉ số kỹ thuật để xây dựng một khung quyết định giao dịch hoàn chỉnh bằng cách tích hợp các chỉ số như đường trung bình di chuyển (EMA), đường trung bình tương đối mạnh (RSI), đường trung bình di chuyển tương đối phân tán (MACD) và đường băng tròn (BB). Chiến lược này sử dụng phương pháp quản lý rủi ro động, bao gồm thiết lập dừng lỗ dựa trên tỷ lệ phần trăm và dừng thu nhập dựa trên rủi ro, nhằm đạt được lợi nhuận sau khi điều chỉnh rủi ro ổn định.
Chiến lược này dựa trên phân tích thị trường ở nhiều cấp độ:
Chiến lược này tạo ra một hệ thống giao dịch theo dõi xu hướng hoàn chỉnh bằng cách sử dụng nhiều chỉ số kỹ thuật tổng hợp. Với sự quản lý rủi ro nghiêm ngặt và phân tích thị trường đa chiều, chiến lược có khả năng thích ứng và ổn định tốt. Mặc dù có một số không gian để tối ưu hóa, nhưng thiết kế khung tổng thể hợp lý và phù hợp với cơ sở của chiến lược giao dịch trung và dài hạn.
/*backtest
start: 2025-01-10 00:00:00
end: 2025-02-09 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Altcoin Long/Short Strategy", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=200, commission_type=strategy.commission.percent, commission_value=0.1)
// —————— Inputs ——————
emaFastLength = input.int(20, "Fast EMA")
emaSlowLength = input.int(50, "Slow EMA")
rsiLength = input.int(14, "RSI Length")
bbLength = input.int(20, "Bollinger Bands Length")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")
stopLossPerc = input.float(2, "Stop Loss %") / 100
// —————— Indicators ——————
// Trend: EMAs
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
ema200 = ta.ema(close, 200)
// Momentum: RSI & MACD
rsi = ta.rsi(close, rsiLength)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Volatility: Bollinger Bands
basis = ta.sma(close, bbLength)
dev = ta.stdev(close, bbLength)
upperBand = basis + 2 * dev
lowerBand = basis - 2 * dev
// —————— Strategy Logic ——————
// Long Conditions
longCondition =
close > ema200 and // Long-term bullish
ta.crossover(emaFast, emaSlow) and // EMA crossover
rsi > 50 and // Momentum rising
close > lowerBand and // Bounce from lower Bollinger Band
macdLine > signalLine // MACD bullish
// Short Conditions
shortCondition =
close < ema200 and // Long-term bearish
ta.crossunder(emaFast, emaSlow) and // EMA crossunder
rsi < 50 and // Momentum weakening
close < upperBand and // Rejection from upper Bollinger Band
macdLine < signalLine // MACD bearish
// —————— Risk Management ——————
stopLoss = strategy.position_avg_price * (1 - stopLossPerc)
takeProfit = strategy.position_avg_price * (1 + (riskRewardRatio * stopLossPerc))
// —————— Execute Trades ——————
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=stopLoss, limit=takeProfit)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=stopLoss, limit=takeProfit)
// —————— Plotting ——————
plot(emaFast, "Fast EMA", color=color.blue)
plot(emaSlow, "Slow EMA", color=color.orange)
plot(ema200, "200 EMA", color=color.gray)
plot(upperBand, "Upper Bollinger", color=color.red)
plot(lowerBand, "Lower Bollinger", color=color.green)