
Strategi ini menghasilkan isyarat perdagangan dengan mengira persilangan purata bergerak indeks 5 hari (EMA) dan purata bergerak mudah 20 hari (SMA). Apabila 5 hari EMA melintasi SMA 20 hari, masuk ke dalam pelbagai pilihan dengan penarikan; apabila perubahan harga mencapai 5% atau -5%, keluar dari kedudukan yang kosong. Strategi ini digabungkan dengan indeks jumlah perdagangan (TII) sebagai penunjuk penilaian tambahan.
Rata-rata bergerak dua indeks adalah satu petunjuk teknikal yang digunakan secara meluas. EMA 5 hari mewakili trend perubahan harga terkini, dan SMA 20 hari mewakili pergerakan harga jangka menengah. Apabila rata-rata jangka pendek melintasi rata-rata jangka panjang, menunjukkan pergerakan harga dengan turun naik, anda boleh masuk lebih banyak; sebaliknya, apabila rata-rata jangka pendek melintasi rata-rata jangka panjang, menunjukkan harga dengan turun naik, anda harus mempertimbangkan untuk keluar.
Strategi ini menetapkan 5 hari EMA dan 20 hari SMA sebagai isyarat perdagangan. Menghasilkan isyarat kedudukan panjang apabila 5 hari EMA melintasi SMA 20 hari. Apabila perubahan harga memegang mencapai 5% atau -5%, dianggap sebagai keuntungan atau kerugian.
Langkah-langkah strategi terperinci adalah seperti berikut:
Strategi ini menggunakan isyarat perdagangan silang emas pada purata bergerak dan mempunyai kelebihan berikut:
Secara keseluruhannya, peraturan strategi ini jelas, mudah difahami dan dilaksanakan, menggunakan petunjuk teknikal yang matang seperti persilangan purata bergerak, langkah-langkah kawalan risiko yang lebih komprehensif, dan merupakan strategi perdagangan kuantitatif yang sesuai untuk digunakan oleh pemula.
Strategi ini juga mempunyai beberapa risiko, terutamanya:
Risiko ini boleh dikurangkan dengan:
Oleh itu, terdapat ruang untuk pengoptimuman strategi ini.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan parameter purata bergerak. Anda boleh menguji kombinasi parameter EMA dan SMA yang lebih pendek atau lebih panjang untuk mencari pasangan parameter yang lebih baik.
Tambah penapis untuk petunjuk lain. Penghakiman tambahan untuk petunjuk seperti MACD, KDJ dan sebagainya dapat mengelakkan beberapa isyarat yang salah.
Menggunakan algoritma pembelajaran mesin. Menggunakan kaedah statistik atau rangkaian saraf untuk memodelkan data sejarah, secara automatik mencari parameter yang lebih baik.
Tetapkan Hentian Kerosakan Dinamik. Mengubah lebar Hentian Kerosakan mengikut tahap turun naik pasaran dan ciri-ciri saham individu dapat mengawal risiko dengan lebih baik.
Perluaskan kepada jenis lain. Peraturan strategi yang sama digunakan untuk jenis lain seperti mata wang asing, mata wang digital.
Dengan melakukan beberapa penambahbaikan di atas, anda dapat meningkatkan kestabilan dan keuntungan strategi anda.
Strategi ini secara keseluruhannya adalah strategi silang purata bergerak yang mudah difahami dan dilaksanakan. Ia menggunakan kelebihan isyarat purata bergerak, dan ditambah dengan indikator TII untuk mencuba menyaring isyarat yang salah.
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true)
// Define the moving averages
ema5 = ta.ema(close, 5)
sma20 = ta.sma(close, 20)
smaVolume10 = ta.sma(volume, 50)
majorLength = input(60, title="Major Length")
minorLength = input(30, title="Minor Length")
src = input(close, title="Source")
smaValue = ta.sma(src, majorLength)
positiveSum = 0.0
negativeSum = 0.0
for i = 0 to minorLength - 1
price = na(src[i]) ? 0 : src[i]
avg = na(smaValue[i]) ? 0 : smaValue[i]
positiveSum := positiveSum + (price > avg ? price - avg : 0)
negativeSum := negativeSum + (price > avg ? 0 : avg - price)
tii = 100 * positiveSum / (positiveSum + negativeSum)
// Buy condition: 5 EMA crosses above 20 SMA
buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1]
//and volume > smaVolume10 //
// Track entry price
var entryPrice = 0.0
if (buyCondition)
entryPrice := close
// Calculate percentage change from entry price
priceChange = close / entryPrice - 1
// Plotting the moving averages on the chart
plot(ema5, color=color.blue, title="5 EMA")
plot(sma20, color=color.red, title="20 SMA")
// Highlighting buy signals and exit signals on the chart
// plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy")
// Strategy entry and exit
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Exit conditions
if (strategy.opentrades > 0)
if (priceChange >= 0.05 or priceChange <= -0.05)
strategy.close("Buy")