Strategi dua rata-rata bergerak mengikuti tren menghitung rata-rata bergerak eksponensial ganda harga untuk membentuk garis cepat dan lambat. Ini mengidentifikasi tren harga berdasarkan persilangan dua garis untuk menerapkan tren mengikuti perdagangan. Strategi ini termasuk dalam strategi perdagangan kuantitatif berdasarkan tren mengikuti.
Strategi ini pertama-tama menghitung rata-rata bergerak eksponensial ganda dari harga, termasuk garis cepat dan lambat. Garis cepat memiliki periode 4, dan garis lambat memiliki periode 8. Sinyal perdagangan dihasilkan ketika dua garis menyeberang. Ketika garis cepat melintasi di atas garis lambat, sinyal beli dihasilkan. Ketika garis cepat melintasi di bawah garis lambat, sinyal jual dipicu. Selain itu, strategi juga menghitung indikator MACD untuk memberikan sinyal perdagangan tambahan.
Pertama, strategi ini diperdagangkan di sepanjang tren harga untuk menghindari biaya transaksi. Kedua, rata-rata bergerak ganda menyaring beberapa kebisingan harga dan menangkap tren harga dengan lancar. Juga, optimasi parameter yang fleksibel dari rata-rata bergerak dan MACD membuat strategi dapat disesuaikan dengan produk dan lingkungan yang berbeda. Akhirnya, logika yang sederhana dan jelas membuat strategi ini mudah dipahami dan diimplementasikan, cocok untuk desain algoritma perdagangan kuantitatif.
Strategi ini sangat bergantung pada optimasi parameter. Pengaturan parameter yang tidak tepat dapat menghasilkan banyak sinyal palsu. Selain itu, sifat tertinggal dari rata-rata bergerak ganda dapat menyebabkan titik balik yang hilang. Strategi yang mengikuti tren juga cenderung mengejar tren naik dan membunuh tren turun, yang menimbulkan risiko tertentu. Selain itu, likuiditas produk perdagangan dan biaya transaksi juga akan mempengaruhi profitabilitas strategi. Untuk mengurangi risiko, parameter dapat dioptimalkan, filter tambahan dapat ditambahkan, dan ukuran posisi dapat dikendalikan.
Aspek-aspek berikut dari strategi dapat ditingkatkan:
Optimalkan periode dari rata-rata bergerak ganda untuk menemukan kombinasi yang optimal.
Tambahkan indikator lain seperti RSI dan KD untuk menyaring sinyal dan meningkatkan kualitas.
Menggabungkan strategi stop loss untuk keluar dari perdagangan pada pembalikan tren.
Sesuaikan ukuran posisi secara dinamis berdasarkan kondisi pasar untuk mengendalikan risiko.
Mengoptimalkan parameter untuk produk perdagangan yang berbeda.
Masukkan strategi canggih seperti pembelajaran mesin untuk meningkatkan kinerja.
Secara singkat, ini adalah strategi yang sederhana dengan dua trend moving average. Logika strategi ini mudah dan mudah diterapkan. Penyesuaian parameter yang fleksibel membuatnya cocok sebagai strategi perdagangan kuantitatif pendahuluan. Namun, risiko mengejar tren dan keterlambatan sinyal perlu ditangani melalui peningkatan lebih lanjut untuk meningkatkan stabilitas dan pengendalian risiko. Secara keseluruhan, strategi ini memberikan kesempatan belajar yang besar bagi pemula dan membentuk dasar untuk strategi lanjutan.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 12/11/2017 // The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by // William Blau, except the SMI includes a signal line. The SMI uses double moving averages // of price minus previous price over 2 time frames. The signal line, which is an EMA of the // SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine // tune these signals. The user may change the input (close), method (EMA), period lengths // and guide values. // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // // WARNING: // - For purpose educate only //////////////////////////////////////////////////////////// strategy(title="SMI Ergodic Oscillator") fastPeriod = input(4, minval=1) slowPeriod = input(8, minval=1) SmthLen = input(3, minval=1) TopBand = input(0.5, step=0.1) LowBand = input(-0.5, step=0.1) reverse = input(false, title="Trade reverse") // hline(0, color=gray, linestyle=dashed) // hline(TopBand, color=red, linestyle=line) // hline(LowBand, color=green, linestyle=line) xPrice = close xPrice1 = xPrice - xPrice[1] xPrice2 = abs(xPrice - xPrice[1]) xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod) xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod) xSMI = xSMA_R / xSMA_aR xEMA_SMI = ema(xSMI, SmthLen) pos = iff(xEMA_SMI < xSMI, -1, iff(xEMA_SMI > xSMI, 1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xSMI, color=green, title="Ergotic SMI") plot(xEMA_SMI, color=red, title="SigLin")