Chiến lược biểu đồ MACD của chỉ số RSI

Tác giả:ChaoZhang, Ngày: 2023-12-25 11:45:10
Tags:

img

Tổng quan

Chiến lược này tạo ra các tín hiệu giao dịch dựa trên chỉ số MACD của chỉ số RSI. Nó kết hợp khả năng của chỉ số RSI để đánh giá mức mua quá mức và bán quá mức trên thị trường, cũng như lợi thế của MACD trong việc xác định xu hướng thị trường và thay đổi động lực, để thiết kế một chiến lược sử dụng nhiều chỉ số để cung cấp tín hiệu giao dịch.

Chiến lược logic

Chiến lược đầu tiên tính toán chỉ số RSI, sau đó tính toán MACD dựa trên chỉ số RSI. Chỉ số RSI có thể xác định các điều kiện mua quá mức và bán quá mức trên thị trường, trong khi MACD nắm bắt những thay đổi trong xu hướng và động lực thị trường.

Cụ thể, chiến lược đầu tiên tính toán chỉ số RSI 14 giai đoạn. Sau đó dựa trên chỉ số RSI, chỉ số MACD được tính toán, bao gồm EMA 12 và 26 giai đoạn, cũng như đường tín hiệu 9 giai đoạn.

Khi biểu đồ MACD vượt trên 0, một tín hiệu mua được tạo ra. Khi biểu đồ MACD vượt dưới 0, một tín hiệu bán được kích hoạt. Bằng cách này, chiến lược sử dụng RSI để đánh giá mức mua quá mức / bán quá mức, đồng thời sử dụng MACD để xác định xu hướng và động lực thay đổi, để tạo ra tín hiệu giao dịch.

Ưu điểm của Chiến lược

Chiến lược này kết hợp các điểm mạnh của cả chỉ số RSI và MACD, cho phép đánh giá toàn diện hơn về điều kiện thị trường, dẫn đến các tín hiệu đáng tin cậy hơn.

  1. Sử dụng chỉ số RSI để đánh giá mức mua quá mức / bán quá mức giúp lựa chọn cổ phiếu và ngăn chặn sự phá vỡ sai.

  2. Phán quyết của MACD về xu hướng và sự thay đổi động lực làm cho các tín hiệu giao dịch rõ ràng hơn.

  3. Sự kết hợp của RSI và MACD, với các phán đoán dựa trên nhiều yếu tố, giúp lọc các tín hiệu sai.

Rủi ro của chiến lược

  1. Cài đặt tham số cho RSI và MACD ảnh hưởng đến hiệu suất chiến lược và yêu cầu điều chỉnh và tối ưu hóa.

  2. Sự kết hợp của nhiều chỉ số làm tăng sự phức tạp của chiến lược và khả năng mắc lỗi.

  3. Các tín hiệu giao dịch MACD có thể chậm lại và cần phải được bổ sung bằng các chỉ số khác.

Hướng dẫn tối ưu hóa

  1. Tối ưu hóa các thông số RSI và MACD để tìm kết hợp thông số tốt nhất.

  2. Kết hợp các chỉ số khác như KDJ, Bollinger Bands để tạo thành một cụm chỉ số và cải thiện độ chính xác tín hiệu.

  3. Kết hợp các chiến lược dừng lỗ để kiểm soát lỗ trên mỗi giao dịch.

  4. Tối ưu hóa logic vào và ra để ngăn chặn các tín hiệu xung đột.

Kết luận

Chiến lược này sử dụng các điểm mạnh kết hợp của các chỉ số RSI và MACD để hình thành các tín hiệu giao dịch, đánh giá mức mua quá mức / bán quá mức trong khi cũng xem xét các yếu tố xu hướng và động lực, lọc hiệu quả các tín hiệu sai và cung cấp các tín hiệu chất lượng.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "MACD of RSI", overlay = false)
//////////////////////// RSI ///////////////////////////

src = close, len = input(14, minval=1, title="Length")

up = sma(max(change(src), 0), len)

down = sma(-min(change(src), 0), len)

rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//////////////////////// RSI   //////////////////////////

//////////////// MACD  ////////////////////////////

sourcemacd = rsi

fastLength = input(12, minval=1), slowLength=input(26,minval=1)

signalLength=input(9,minval=1)


fastMA = ema(sourcemacd, fastLength)

slowMA = ema(sourcemacd, slowLength)

macd = fastMA - slowMA

signal = ema(macd, signalLength)

delta=macd-signal

swap1 = delta>0?green:red


plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)

p1 = plot(macd,color=blue,title='MACD Line')

p2 = plot(signal,color=red,title='Signal')

fill(p1, p2, color=blue)

hline(0)

/////////////////////////MACD  //////////////////////////

// Conditions

longCond = na

sellCond = na

longCond :=  crossover(delta,0)

sellCond :=  crossunder(delta,0)

monthfrom =input(6)

monthuntil =input(12)

dayfrom=input(1)

dayuntil=input(31)

if (  longCond   )

    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")

else

    strategy.cancel(id="BUY")

if ( sellCond   )

    strategy.close("BUY")

Thêm nữa