Chiến lược chỉ số mạnh gấp đôi

Tác giả:ChaoZhang, Ngày: 2023-11-20 09:47:41
Tags:

img

Tổng quan

Chiến lược này kết hợp chỉ số Divergence Convergence Moving Average (MACD) và chỉ số Relative Strength Index (RSI) để thiết lập các điều kiện mua và bán để nắm bắt các cơ hội đảo ngược.

Chiến lược logic

  1. Tính toán chỉ số MACD, bao gồm đường nhanh, đường chậm và đường tín hiệu.

  2. Tính toán chỉ số RSI và thiết lập giá trị ngưỡng mua quá mức và bán quá mức.

  3. Kết hợp các tín hiệu chéo từ MACD và các bài đọc mua quá mức / bán quá mức từ RSI để xây dựng các điều kiện mua và bán:

    • Điều kiện mua: Đường nhanh MACD vượt qua trên đường chậm (đường vàng) trong khi chỉ số RSI chỉ giảm từ vùng mua quá mức, báo hiệu một sự đảo ngược.

    • Điều kiện bán: Đường nhanh MACD vượt qua dưới đường chậm (đường chết) trong khi chỉ số RSI bước vào vùng mua quá mức, báo hiệu một sự đảo ngược.

  4. Điều này cho phép sử dụng điểm mạnh của cả hai chỉ số mạnh để mua và bán chính xác tại các điểm đảo ngược.

Phân tích lợi thế

  1. MACD có thể xác định xu hướng và cơ hội giao dịch. Chỉ số RSI đo điều kiện mua quá mức / bán quá mức. Sử dụng cả hai cải thiện độ chính xác.

  2. Sử dụng hai chỉ số lọc ra các tín hiệu sai có thể xảy ra với một chỉ số duy nhất.

  3. MACD kết hợp với RSI cho phép mua trước khi đảo ngược và bán sau khi đảo ngược để nắm bắt các lượt.

  4. Chiến lược có tần suất vừa phải, theo dõi xu hướng và bắt sự đảo ngược một cách linh hoạt.

Phân tích rủi ro

  1. MACD có thể cung cấp tín hiệu sai trong các thị trường hỗn loạn. Các thông số RSI cần tối ưu hóa để tránh các tín hiệu sai.

  2. Sự biến động ngắn hạn có thể ngăn chặn các vị trí, gây ra tổn thất.

  3. Các thông số RSI và MACD cần tối ưu hóa để tránh quá nhiều hoặc quá ít tín hiệu.

  4. Quản lý rủi ro và tiền bạc nghiêm ngặt là rất quan trọng cho giao dịch trực tiếp.

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

  1. Tối ưu hóa các thông số đường MACD nhanh / chậm để kết hợp tốt nhất.

  2. Tối ưu hóa ngưỡng mua quá mức / bán quá mức RSI để ngăn chặn các tín hiệu sai.

  3. Thêm stop loss để kiểm soát rủi ro giao dịch duy nhất.

  4. Xem xét thêm các bộ lọc như Bollinger Bands hoặc KDJ để xác nhận thêm.

  5. Kiểm tra các chiến lược nhập / ra khác nhau như đột phá hoặc theo xu hướng.

Tóm lại

Chiến lược này kết hợp các điểm mạnh của MACD và RSI để đảo ngược. Nhưng điều chỉnh tham số, kiểm soát rủi ro và quản lý tiền là chìa khóa cho hiệu suất trực tiếp. Sự linh hoạt làm cho nó phù hợp với các điều kiện thị trường khác nhau và đáng để thử nghiệm và theo dõi trực tiếp.


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

//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)

//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought



[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)

avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na

strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)



Thêm nữa