MACD, RSI dan Strategi EMA

Penulis:ChaoZhang, Tarikh: 2024-03-01 12:23:38
Tag:

img

Ringkasan

Strategi ini menggabungkan Purata Bergerak Sederhana (SMA), Julat Benar Purata (ATR), Indeks Saluran Komoditi (CCI) dan Bollinger Bands untuk mengenal pasti trend harga jangka pendek dan sederhana dan memberikan sokongan untuk keputusan perdagangan.

Prinsip Strategi

Strategi ini menggunakan empat garis SMA dengan tempoh yang berbeza untuk mengenali arah trend harga, termasuk garis 5 hari, 10 hari, 50 hari dan 200 hari. ATR digunakan untuk mengukur turun naik pasaran dan menetapkan titik stop-loss. CCI digunakan untuk mengenal pasti keadaan overbought dan oversold. Rel atas dan bawah Bollinger Bands boleh berfungsi sebagai tahap sokongan / rintangan.

Pergi panjang apabila SMA jangka pendek (garis 5 hari dan 10 hari) melintasi di atas SMA jangka panjang (garis 50 hari dan 200 hari). Pergi pendek apabila SMA jangka pendek melintasi di bawah SMA jangka panjang. Jual apabila CCI lebih besar daripada 100; Beli apabila CCI kurang daripada -100. Tetapkan stop loss berdasarkan nilai ATR.

Analisis Kelebihan

Dengan menggabungkan pertimbangan trend garis purata bergerak dan pertimbangan overbought / oversold CCI, strategi ini dapat dengan berkesan merebut peluang pasaran. Ia berfungsi dengan baik untuk perdagangan jangka sederhana dan pendek. Di samping itu, kawalan risiko agak saintifik, yang dapat memaksimumkan mengelakkan kerugian.

Analisis Risiko

Strategi ini agak konservatif dan cenderung untuk terlepas isyarat perdagangan. Apabila terdapat pasaran yang terikat julat atau pembalikan trend, pengambilan keuntungan mungkin dicetuskan lebih awal. Di samping itu, tetapan parameter yang tidak betul juga boleh mempengaruhi prestasi.

Arahan pengoptimuman

Cuba untuk mengoptimumkan parameter SMA untuk menjadikannya lebih dekat dengan keadaan pasaran semasa. Penyimpangan standard Bollinger Band juga boleh diselaraskan untuk prestasi yang lebih baik sebagai tahap sokongan / rintangan. Di samping itu, pertimbangkan untuk menambah penunjuk lain untuk membantu penghakiman, seperti KDJ, MACD dll. Ini boleh meningkatkan kadar kemenangan strategi.

Ringkasan

Mengintegrasikan pelbagai alat analisis untuk menilai pasaran, strategi ini boleh menghasilkan pulangan pelaburan yang memuaskan apabila parameter ditetapkan dengan betul. Peraturan stop loss juga menjadikan risiko terkawal.


/*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)


Lebih lanjut