Dual Moving Average Crossover adalah strategi perdagangan kuantitatif yang umum. Strategi ini menggunakan dua moving average dengan periode yang berbeda sebagai sinyal beli dan jual. Strategi ini membeli ketika moving average jangka pendek melintasi di atas moving average jangka panjang dan menjual ketika moving average jangka pendek melintasi di bawah moving average jangka panjang.
Prinsip inti dari strategi ini adalah untuk menangkap tren harga dengan memanfaatkan karakteristik tren dan lag dari dua rata-rata bergerak dengan periode yang berbeda. Secara umum, rata-rata bergerak jangka pendek lebih sensitif terhadap perubahan harga, sementara rata-rata bergerak jangka panjang relatif tertinggal. Ketika harga berada dalam tren naik, rata-rata bergerak jangka pendek akan bergerak ke atas sebelum rata-rata bergerak jangka panjang dan akhirnya melintasi di atasnya, membentuk sinyal
Sederhana dan mudah digunakan: Dual Moving Average Crossover Strategy adalah strategi perdagangan kuantitatif yang sederhana, mudah dimengerti, dan mudah diterapkan, cocok untuk para pedagang pemula untuk belajar dan menggunakan.
Penerapan luas: Strategi ini dapat diterapkan pada berbagai pasar keuangan dan instrumen perdagangan, seperti saham, berjangka, forex, cryptocurrency, dll., Dengan fleksibilitas yang kuat.
Parameter Fleksibel: Kode strategi mendukung berbagai jenis rata-rata bergerak dan jenis harga, memungkinkan pengguna untuk mengatur parameter secara fleksibel sesuai dengan kebutuhan mereka untuk beradaptasi dengan kondisi pasar dan gaya perdagangan yang berbeda.
Pelacakan tren: Dengan menggunakan sinyal silang dari dua rata-rata bergerak dengan periode yang berbeda, strategi ini dapat secara efektif menangkap tren utama harga, yang membantu mengikuti tren dan menghindari perdagangan kontra-tren.
Lag: Rata-rata bergerak pada dasarnya merupakan indikator yang mengikuti tren dan memiliki lag tertentu, yang mungkin kehilangan waktu masuk dan keluar terbaik.
Tidak efektif di pasar yang terikat kisaran: Di pasar yang terikat kisaran atau sisi, fluktuasi harga besar, dan sinyal crossover rata-rata bergerak sering terjadi, yang dapat menyebabkan perdagangan yang sering dan mengakibatkan biaya perdagangan yang tinggi dan kerugian modal.
Kesulitan dalam pengoptimalan parameter: Pemilihan periode rata-rata bergerak memiliki dampak yang signifikan pada kinerja strategi, tetapi parameter optimal sering bervariasi tergantung pada kondisi pasar, sehingga sulit untuk menemukan kombinasi parameter optimal yang berlaku secara universal.
Memperkenalkan filter tren: Selain sinyal crossover rata-rata bergerak, indikator tren lain seperti MACD dan ADX dapat dimasukkan untuk penyaringan tren, hanya diperdagangkan ketika tren jelas untuk menghindari perdagangan yang sering di pasar yang terikat kisaran.
Mengoptimalkan take-profit dan stop-loss: Mengintegrasikan logika take-profit dan stop-loss yang masuk akal ke dalam strategi, seperti trailing stop-loss dan volatility-based stop-loss, untuk mengendalikan risiko perdagangan tunggal dan meningkatkan rasio risiko-manfaat strategi.
Optimasi parameter dinamis: Untuk lingkungan pasar yang berbeda, secara berkala melakukan optimasi dinamis pada parameter seperti periode rata-rata bergerak untuk memungkinkan strategi untuk beradaptasi dengan perubahan pasar dan meningkatkan ketahanan.
Kombinasi multi-faktor: Gabungkan sinyal crossover rata-rata bergerak ganda dengan faktor kuantitatif efektif lainnya (seperti momentum, nilai, volume, dll.) untuk membentuk strategi multi-faktor yang lebih kuat dan efektif.
Dual Moving Average Crossover Strategy adalah strategi sederhana dan klasik yang mengikuti tren yang menangkap tren harga melalui sinyal crossover dari dua moving average dengan periode yang berbeda, cocok untuk pasar tren. Namun, strategi ini juga memiliki masalah seperti lag dan kesulitan dalam optimasi parameter, yang membutuhkan kombinasi dengan metode lain untuk optimasi dan perbaikan, seperti penyaringan tren, optimasi parameter dinamis, kombinasi multi-faktor, dll., untuk meningkatkan penerapan dan ketahanan strategi. Secara keseluruhan, Dual Moving Average Crossover Strategy dapat berfungsi sebagai salah satu strategi mendasar dalam perdagangan kuantitatif, layak untuk dipelajari dan diteliti oleh penggemar kuantitatif.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SustainableInvestment //@version=5 strategy("Moving average strategy (이동평균선 전략)", overlay=true) // === INPUTS === basisType = input.string(defval = "EMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA ",options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA"]) shortLen = input.int(defval = 1, title = "Short MA Period", minval = 1) longLen = input.int(defval = 20, title = "Long MA Period", minval = 1) price = input.string(defval = "Typical", title = "Price Type : Close, High, Open, Low, Typical, Center ",options=["Close", "High", "Open", "Low", "Typical", "Center"]) // === BASE FUNCTIONS === // 가격 종류 설정 priceType(price) => Typical = (high+low+close)/3 Center = (high+low) / 2 price=="High"?high : price=="Low"?low : price=="Open"?open : price=="Typical"?Typical : price=="Center"?Center : close // 이동평균선 종류 설정 variant(type, src, len) => v1 = ta.sma(src, len) // Simple v2 = ta.ema(src, len) // Exponential v3 = 2 * v2 - ta.ema(v2, len) // Double Exponential v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len) // Triple Exponential v5 = ta.wma(src, len) // Weighted v6 = ta.vwma(src, len) // Volume Weighted type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : v1 longCondition = ta.crossover(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen)) if (longCondition) strategy.entry("Long Entry", strategy.long) exitCondition = ta.crossunder(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen)) if (exitCondition) strategy.close("Long Entry","Long Exit")