Chiến lược giao dịch giá giới hạn động kết hợp nhiều chỉ báo SMA-RSI-MACD

SMA RSI MACD EMA
Ngày tạo: 2024-12-11 15:15:49 sửa đổi lần cuối: 2024-12-11 15:15:49
sao chép: 2 Số nhấp chuột: 435
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch giá giới hạn động kết hợp nhiều chỉ báo SMA-RSI-MACD

Tổng quan

Chiến lược này là một hệ thống giao dịch kết hợp nhiều chỉ số kỹ thuật, chủ yếu dựa trên xác nhận tín hiệu EMA trung bình, bán tháo RSI và MACD Gold Forks, để quản lý rủi ro thông qua các cơ chế nhập cảnh và thoát nhiều lần. Chiến lược sử dụng chỉ số trung bình di chuyển 9 chu kỳ và 21 chu kỳ (EMA) làm chỉ số xu hướng chính, kết hợp với chỉ số tương đối yếu (RSI) và xu hướng trung bình di chuyển ngược lại chỉ số (MACD) để lọc tín hiệu giao dịch, kiểm soát rủi ro bằng cách đặt khoảng cách giá giới hạn và số điểm dừng cố định.

Nguyên tắc chiến lược

Các logic giao dịch cốt lõi của chiến lược bao gồm các phần quan trọng sau:

  1. Tín hiệu nhập cảnh được kích hoạt khi vượt qua 21 chu kỳ EMA dựa trên 9 chu kỳ EMA
  2. Giá nhập cảnh đặt giá giới hạn với số điểm được chỉ định bên dưới EMA 9 chu kỳ
  3. Việc xác nhận giao dịch cần phải đáp ứng RSI thấp hơn ngưỡng thiết lập và MACD Gold Fork
  4. Các tín hiệu xuất phát bao gồm MACD dead fork, số điểm dừng cố định và lệnh đóng cửa.
  5. Thời gian giao dịch được giới hạn từ sau 9h30 sáng đến trước 3h10 chiều.

Chiến lược này sử dụng một lần nhập vào giá giới hạn, có thể đặt vị trí ở vị trí giá tốt hơn để tăng độ chính xác của giao dịch thông qua sự kết hợp của nhiều chỉ số kỹ thuật.

Lợi thế chiến lược

  1. Hệ thống xác nhận đa tín hiệu giúp tăng độ tin cậy giao dịch
  2. Thẻ nhập cảnh giá giới hạn có thể giúp bạn có được giá tốt hơn.
  3. Số điểm dừng cố định giúp kiểm soát rủi ro
  4. Cung cấp cho các nhà đầu tư các quyền hạn và quyền lợi của họ.
  5. Thời gian giao dịch hạn chế để tránh biến động mở cửa
  6. Chỉ số EMA phản ứng nhanh hơn với xu hướng
  7. Sự kết hợp giữa RSI và MACD có thể lọc các tín hiệu giả

Rủi ro chiến lược

  1. Xác nhận đa tín hiệu có thể dẫn đến việc bỏ lỡ một số cơ hội giao dịch
  2. Các đơn đặt hàng có thể không thành công vì giá tăng nhanh
  3. Lưu ý rằng các điểm dừng cố định có thể bị mất nhiều hơn trong thời gian biến động cao.
  4. MACD có thể bị chậm
  5. Chiến lược không tính đến ảnh hưởng của sự biến động của thị trường
  6. Có thể có rủi ro quá phù hợp với tối ưu hóa tham số

Hướng tối ưu hóa chiến lược

  1. Tiến hành các điểm dừng lỗ tự điều chỉnh theo biến động của thị trường
  2. Tăng số lượng giao dịch như một tín hiệu xác nhận phụ trợ
  3. Xem xét thêm bộ lọc cường độ xu hướng
  4. Phương pháp tính toán tối ưu hóa khoảng cách đơn giá giới hạn, có thể xem xét sử dụng điều chỉnh động ATR
  5. Thêm các chỉ số cảm xúc thị trường để lọc ra các tình huống bất lợi
  6. Tham gia cơ chế quản lý kho, điều chỉnh số lượng mở kho theo cường độ tín hiệu

Tóm tắt

Đây là một chiến lược giao dịch đa chỉ số có cấu trúc, logic rõ ràng, xác định xu hướng thông qua hệ thống thống nhất định, các tín hiệu lọc RSI và MACD, lệnh giới hạn và nhiều cơ chế dừng lỗ để kiểm soát rủi ro. Ưu điểm của chiến lược là tín hiệu đáng tin cậy cao, kiểm soát rủi ro hoàn hảo, nhưng cũng có các vấn đề như tín hiệu chậm trễ và tối ưu hóa tham số.

Mã nguồn chiến lược
/*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"}]
*/

//@version=5
strategy("SMA 9 & 21 with RSI and MACD Buy Strategy", overlay=true)

// Inputs for Simple Moving Averages
sma_short = ta.ema(close, 9)
sma_long = ta.ema(close, 21)

// Plotting SMA
plot(sma_short, color=color.green, title="SMA 9")
plot(sma_long, color=color.red, title="SMA 21")

// RSI Calculation
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.int(70, title="RSI Threshold")
rsi = ta.rsi(close, rsi_length)

// MACD Calculation
macd_fast = input.int(8, title="MACD Fast Length")
macd_slow = input.int(18, title="MACD Slow Length")
macd_signal = input.int(6, title="MACD Signal Length")
[macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)

// Inputs for Limit Order Offset
limit_offset = input.int(50, title="Limit Order Offset", minval=1)  // 50 points below 9 EMA

// User input for specific date
simulationStartDate = input(timestamp("2024-12-01 00:00"), title="Simulation Start Date", group = "Simulation Dates")
simulationEndDate = input(timestamp("2024-12-30 00:00"), title="Simulation End Date", group = "Simulation Dates")

// Declare limit_price as float
var float limit_price = na

// Calculate Limit Order Price
if (sma_short[1] < sma_long[1] and sma_short > sma_long)  // 9 EMA crosses above 21 EMA
    limit_price := sma_short - limit_offset

// Buy Signal Condition (only on the specified date)
buy_condition = not na(limit_price) and rsi < rsi_threshold and ta.crossover(macd_line, signal_line) 

// Sell Signal Condition (MACD crossover down)
sell_condition = ta.crossunder(macd_line, signal_line)

// Track Entry Price for Point-Based Exit
var float entry_price = na

if (buy_condition )
    strategy.order("Buy", strategy.long, comment="Limit Order at 9 EMA - Offset", limit=limit_price)
    label.new(bar_index, limit_price, "Limit Buy", style=label.style_label_up, color=color.green, textcolor=color.white)
    entry_price := limit_price  // Set entry price

// Exit Conditions
exit_by_macd = sell_condition
exit_by_points = not na(entry_price) and ((close >= entry_price + 12) or (close <= entry_price - 12))  // Adjust as per exit points

// Exit all positions at the end of the day
if hour == 15 and minute > 10 and strategy.position_size > 0
    strategy.close_all()  // Close all positions at the end of the day
    strategy.cancel_all()  

// Exit based on sell signal or point movement
if (exit_by_macd or exit_by_points  and strategy.position_size > 0 )
    strategy.close("Buy")
    label.new(bar_index, close, "Close", style=label.style_label_down, color=color.red, textcolor=color.white)