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


Ngày tạo: 2024-03-01 12:23:38 sửa đổi lần cuối: 2024-03-01 12:23:38
sao chép: 1 Số nhấp chuột: 691
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

Chiến lược này kết hợp các đường trung bình di chuyển (SMA), đường trung bình thực tế (ATR), đường cong (CCI) và đường Brin để phát hiện xu hướng giá ngắn hạn và trung hạn, hỗ trợ quyết định giao dịch.

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

Chiến lược này sử dụng đường cong SMA của bốn chu kỳ khác nhau để xác định hướng xu hướng của giá cả, bao gồm các đường 5, 10, 50 và 200. ATR được sử dụng để đo lường sự biến động của thị trường và thiết lập điểm dừng. CCI được sử dụng để xác định trường hợp mua quá mức và bán quá mức.

Khi đeo SMA ngắn hạn (đường 5 và 10 ngày) trên SMA dài hạn (đường 50 và 200 ngày), hãy làm nhiều hơn. Khi đeo SMA dài hạn dưới SMA ngắn hạn, hãy làm trắng. CCI lớn hơn 100 giờ bán, nhỏ hơn 100 giờ mua.

Phân tích lợi thế

Chiến lược này kết hợp với phán đoán xu hướng của moving average và phán đoán mua bán quá mức của CCI, có thể nắm bắt cơ hội thị trường một cách hiệu quả. Đặc biệt là hiệu quả giao dịch ngắn hạn và trung hạn tốt hơn. Ngoài ra, kiểm soát rủi ro là khoa học, có thể tránh thiệt hại tối đa.

Phân tích rủi ro

Chiến lược này là bảo thủ hơn, dễ gây ra các tín hiệu bị bỏ lỡ. Khi thị trường biến động hoặc xu hướng đảo ngược, dừng có thể được kích hoạt sớm hơn. Ngoài ra, cài đặt tham số không đúng cũng có thể ảnh hưởng đến hiệu quả.

Hướng tối ưu hóa

Bạn có thể cố gắng tối ưu hóa các tham số của SMA để nó gần gũi hơn với tình trạng thị trường hiện tại. Bạn cũng có thể điều chỉnh chênh lệch chuẩn của Brin để nó phù hợp hơn với ngưỡng kháng cự hỗ trợ. Ngoài ra, bạn có thể xem xét thêm các chỉ số hỗ trợ khác, chẳng hạn như KDJ, MACD, v.v.

Tóm tắt

Chiến lược này tích hợp nhiều công cụ phân tích để đánh giá thị trường, có thể nhận được lợi nhuận đầu tư tốt khi các tham số được thiết lập đúng. Quy tắc dừng lỗ của nó cũng làm cho rủi ro có thể kiểm soát được.

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