
Chiến lược này là một hệ thống theo dõi xu hướng dựa trên đường trung bình di chuyển đơn giản 200 chu kỳ (MA200), kết hợp các chỉ số kỹ thuật như chỉ số tương đối mạnh (RSI), chỉ số xu hướng trung bình (ADX) và sóng thực trung bình (ATR) để tạo thành một khung quyết định giao dịch hoàn chỉnh. Chiến lược này thực hiện kiểm soát rủi ro hiệu quả thông qua việc thiết lập mục tiêu dừng lỗ và lợi nhuận động.
Lập luận cốt lõi của chiến lược được xây dựng dựa trên những điểm then chốt sau:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng vững chắc bằng cách kết hợp nhiều chỉ số kỹ thuật. Chiến lược được thiết kế để kiểm soát rủi ro, tăng độ tin cậy giao dịch thông qua các cơ chế dừng động và xác nhận tín hiệu. Mặc dù có một số không gian tối ưu hóa, nhưng nói chung là một chiến lược giao dịch có giá trị thực tế.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=5
strategy("BTC/USD MA200 with RSI, ADX, ATR", overlay=true)
// Definition of the main moving average
ma_trend = ta.sma(close, 200) // Main trend filter
// Definition of RSI and ADX
rsi = ta.rsi(close, 14)
[diplus, diminus, adx] = ta.dmi(14, 14) // Correction for ADX
// Definition of ATR for Stop Loss and Take Profit
atr = ta.atr(14)
// Conditions for crossing of the MA200
crossover_condition = ta.crossover(close, ma_trend)
crossunder_condition = ta.crossunder(close, ma_trend)
// Trend confirmation after 2 bars
buy_confirmation = crossover_condition[2] and (rsi > 40) and (adx > 20) and close > ma_trend
sell_confirmation = crossunder_condition[2] and (rsi < 60) and (adx > 20) and close < ma_trend
// Definition of Stop Loss and Take Profit
take_profit = close * 1.02 // 2% profit
stop_loss = close - (1.5 * atr) // Dynamic stop based on ATR
// Execution of orders
if (buy_confirmation and strategy.opentrades == 0)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=take_profit, stop=stop_loss)
label.new(bar_index, high, "BUY", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.normal)
if (sell_confirmation)
if (strategy.opentrades > 0)
strategy.close("Buy")
label.new(bar_index, low, "SELL", style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal)
// Draw the main moving average
plot(ma_trend, color=color.purple, title="MA 200")