MACD, RSI và Chiến lược EMA

Tác giả:ChaoZhangNgày: 2024-03-01 12:23:38
Tags:

img

Tổng quan

Chiến lược này kết hợp trung bình di chuyển đơn giản (SMA), trung bình thực sự (ATR), chỉ số kênh hàng hóa (CCI) và băng Bollinger để xác định xu hướng giá ngắn hạn và trung hạn và hỗ trợ các quyết định giao dịch.

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

Chiến lược này sử dụng bốn đường SMA với các khoảng thời gian khác nhau để nhận ra hướng xu hướng giá, bao gồm các đường 5 ngày, 10 ngày, 50 ngày và 200 ngày. ATR được sử dụng để đo biến động thị trường và thiết lập các điểm dừng lỗ. CCI được sử dụng để xác định các điều kiện mua quá mức và bán quá mức. Các đường ray trên và dưới của Bollinger Bands có thể phục vụ như mức hỗ trợ / kháng cự.

Đi dài khi SMA ngắn hạn (5 ngày và 10 ngày) vượt qua trên SMA dài hạn (50 ngày và 200 ngày). Đi ngắn khi SMA ngắn hạn vượt qua dưới SMA dài hạn. Bán khi CCI lớn hơn 100; Mua khi CCI nhỏ hơn -100. Thiết lập dừng lỗ dựa trên giá trị ATR.

Phân tích lợi thế

Bằng cách kết hợp đánh giá xu hướng của đường trung bình động và đánh giá quá mua / quá bán của CCI, chiến lược này có thể nắm bắt hiệu quả các cơ hội thị trường. Nó hoạt động đặc biệt tốt cho giao dịch trung bình và ngắn hạn. Ngoài ra, kiểm soát rủi ro tương đối khoa học, có thể tối đa hóa việc tránh thua lỗ.

Phân tích rủi ro

Chiến lược này tương đối bảo thủ và có khả năng bỏ lỡ các tín hiệu giao dịch. Khi có thị trường giới hạn trong phạm vi hoặc đảo ngược xu hướng, việc lấy lợi nhuận có thể được kích hoạt sớm. Ngoài ra, cài đặt tham số không đúng cũng có thể ảnh hưởng đến hiệu suất.

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

Cố gắng tối ưu hóa các thông số của SMA để làm cho chúng gần gũi hơn với điều kiện thị trường hiện tại. Khái lệch tiêu chuẩn của Bollinger Bands cũng có thể được điều chỉnh để có hiệu suất tốt hơn như mức hỗ trợ / kháng cự. Ngoài ra, hãy xem xét thêm các chỉ số khác để hỗ trợ phán đoán, chẳng hạn như KDJ, MACD vv. Điều này có thể cải thiện tỷ lệ thắng của chiến lược.

Tóm lại

Kết hợp nhiều công cụ phân tích để đánh giá thị trường, chiến lược này có thể mang lại lợi nhuận đầu tư thỏa đáng khi các tham số được đặt đúng.


/*backtest
start: 2023-02-23 00:00:00
end: 2024-02-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © maizirul959

//@version=4
strategy("MACD,RSI & EMA strategy with MA+PSAR by MAM", overlay=true)

//Input Data
_ema_len1 = input(5, title="EMA1 length")
_ema_len2 = input(20, title="EMA2 length")

_macd_fast = input(12, title="MACD Fast")
_macd_slow = input(26, title="MACD Slow")
_macd_signal_len = input(20, title="MACD Signal length")

//MAM add SMA
_sma_len1 = input(5, title="SMA1 Length")
_sma_len2 = input(10, title="SMA2 Length")
_sma_len3 = input(50, title="SMA3 Length")
_sma_len4 = input(200, title="SMA4 Length")

lineWidth = input(1, minval=1, title="Line width")

src = input(close, title="Source")

SMA1 = if _sma_len1 != 0
    sma(src, _sma_len1)
SMA2 = if _sma_len2 != 0
    sma(src, _sma_len2)
SMA3 = if _sma_len3 != 0
    sma(src, _sma_len3)
SMA4 = if _sma_len4 != 0
    sma(src, _sma_len4)


//__________________________________________________________________________

_rsi_len = input(14, title="RSI length")
_rsi_signal_len = input(20, title="RSI signal length")

//_________________________________________________________________________
//MAM Add PSAR
PSAR_start = input(0.02)
PSAR_increment = input(0.02)
PSAR_maximum = input(0.2)

psar = sar(PSAR_start, PSAR_increment, PSAR_maximum)
//_________________________________________________________________________

_ema1 = ema(close, _ema_len1)
_ema2 = ema(close, _ema_len2)

//_________________________________________________________________________
//MAM add SMA
//_sma1 = ema(close, _sma_len1)
//_sma2 = ema(close, _sma_len2)
//_________________________________________________________________________

_macd = ema(close, _macd_fast) - ema(close, _macd_slow)
_macd_signal = ema(_macd, _macd_signal_len)

_rsi = rsi(close, _rsi_len)
_rsi_signal = ema(_rsi, _rsi_signal_len)


//PLOT SMA
plot(SMA1, color=#B71C1C, title="SMA1", linewidth=lineWidth)
plot(SMA2, color=#FFFF00, title="SMA2", linewidth=lineWidth)
plot(SMA3, color=#5b34ff, title="SMA3", linewidth=lineWidth)
plot(SMA4, color=#d7d7d7, title="SMA4", linewidth=lineWidth)


//PLOT PSAR
plot(psar, "ParabolicSAR", style=plot.style_cross, color=#3A6CA8)

//plot(_rsi, color=color.yellow)
//plot(_rsi_signal, color=color.green)
//plot(_macd, color=color.blue)
//plot(_macd_signal, color=color.red)


longCondition = close > _ema1 and close > _ema2 and _macd > _macd_signal and _rsi > _rsi_signal 
if (longCondition)
    strategy.entry("Buy",strategy.long)
    
shortCondition = close < _ema1 and close <_ema2 and _macd < _macd_signal and _rsi < _rsi_signal
if (shortCondition)
    strategy.entry("Sell",strategy.short)


Thêm nữa