Berdasarkan strategi persilangan rata-rata pergerakan ganda

EMA SMA DEMA TEMA WMA VWMA
Tanggal Pembuatan: 2024-05-14 15:37:54 Akhirnya memodifikasi: 2024-05-14 15:37:54
menyalin: 3 Jumlah klik: 697
1
fokus pada
1617
Pengikut

Berdasarkan strategi persilangan rata-rata pergerakan ganda

Ringkasan

Strategi ini menggunakan dua rata-rata bergerak dengan periode yang berbeda sebagai sinyal jual beli, membeli ketika rata-rata jangka pendek melintasi rata-rata jangka panjang, dan menjual ketika rata-rata jangka pendek melintasi rata-rata jangka panjang. Kode strategi ini mendukung beberapa jenis rata-rata bergerak yang umum, seperti rata-rata bergerak sederhana (SMA), rata-rata bergerak indeks (EMA), rata-rata bergerak dua indeks (DEMA), rata-rata bergerak tiga indeks (TEMA), rata-rata bergerak berganda (WMA) dan rata-rata bergerak berganda (VMA), dan dapat secara fleksibel mengatur rata-rata jangka pendek dan rata-rata jangka panjang.

Prinsip Strategi

Prinsip inti dari strategi ini adalah memanfaatkan karakteristik tren dan keterlambatan dua rata-rata bergerak periode yang berbeda untuk menangkap tren harga. Secara umum, rata-rata jangka pendek lebih sensitif terhadap perubahan harga, sedangkan rata-rata jangka panjang relatif tertinggal. Ketika harga berada dalam tren naik, rata-rata jangka pendek akan bergerak ke atas sebelum rata-rata jangka panjang dan akhirnya melintasi rata-rata jangka panjang, membentuk sinyal beli “goldfork”; sebaliknya, ketika harga berada dalam tren turun, rata-rata jangka pendek akan bergerak ke bawah sebelum rata-rata jangka panjang dan akhirnya melintasi rata-rata jangka panjang, membentuk sinyal jual “deadfork”.

Keunggulan Strategis

  1. Sederhana dan mudah digunakan: Strategi crossover moving average ganda adalah strategi perdagangan kuantitatif yang mudah dipahami dan mudah diterapkan yang cocok untuk dipelajari dan digunakan oleh trader pemula.

  2. Keanekaragaman: Strategi ini dapat diterapkan di berbagai pasar keuangan dan indikator perdagangan, seperti saham, futures, forex, cryptocurrency, dll.

  3. Fleksibilitas Parameter: Kode strategi ini mendukung berbagai jenis moving average dan jenis harga yang umum, dan pengguna dapat menyesuaikan parameternya sesuai dengan kebutuhan mereka sendiri, agar sesuai dengan lingkungan pasar dan gaya perdagangan yang berbeda.

  4. Pelacakan tren: Dengan sinyal silang dari dua garis rata-rata berkala yang berbeda, strategi ini dapat menangkap tren utama harga dengan lebih baik, membantu menghindari perdagangan berlawanan arah untuk meningkatkan.

Risiko Strategis

  1. Keterlambatan: Moving Average pada dasarnya adalah indikator trend tracking, ada keterlambatan tertentu, mungkin kehilangan waktu masuk dan keluar yang optimal.

  2. Kegagalan dalam pasar yang bergoyang: Dalam pasar yang bergoyang atau di pasar yang berposisi horizontal, harga berfluktuasi besar dan sinyal persilangan rata-rata sering terjadi, yang dapat menyebabkan strategi sering diperdagangkan, menyebabkan biaya transaksi yang tinggi dan kehilangan dana.

  3. Kesulitan optimasi parameter: Pilihan siklus rata-rata memiliki pengaruh besar terhadap efektivitas strategi, tetapi parameter optimal sering bervariasi karena kondisi pasar yang berbeda, dan sulit untuk menemukan kombinasi parameter optimal yang tepat di mana-mana.

Arah optimasi strategi

  1. Memperkenalkan penyaringan tren: Berdasarkan sinyal persilangan garis rata, penyaringan tren dapat dilakukan dengan indikator tren lainnya seperti MACD, ADX, dan lain-lain, hanya melakukan perdagangan jika tren jelas, dan menghindari perdagangan yang sering terjadi di pasar yang bergolak.

  2. Mengoptimalkan Stop Loss: Menambahkan logika stop loss yang masuk akal ke dalam strategi, seperti stop loss bergerak, stop loss volatilitas, dan lain-lain, untuk mengendalikan risiko perdagangan tunggal dan meningkatkan rasio risiko-keuntungan strategi.

  3. Optimasi parameter dinamis: Untuk lingkungan pasar yang berbeda, parameter seperti siklus rata-rata dapat dioptimalkan secara dinamis secara berkala, sehingga strategi dapat beradaptasi dengan perubahan pasar dan meningkatkan stabilitas.

  4. Kombinasi multi-faktor: menggabungkan sinyal silang moving average ganda dengan faktor-faktor kuantitatif lainnya yang efektif (seperti momentum, nilai, volume transaksi, dll.) untuk membentuk strategi multi-faktor yang lebih stabil dan efektif.

Meringkaskan

Strategi crossover dua rata-rata bergerak adalah strategi pelacakan tren klasik yang sederhana untuk menangkap tren harga melalui sinyal silang dua rata-rata berkala yang berbeda, cocok untuk pasar yang sedang tren. Namun, strategi ini juga memiliki masalah seperti keterbelakangan dan kesulitan pengoptimalan parameter, yang perlu dioptimalkan dan diperbaiki dalam kombinasi dengan metode lain, seperti penyaringan tren, pengoptimalan parameter dinamis, kombinasi multi-faktor, dll, untuk meningkatkan kelayakan dan stabilitas strategi.

Kode Sumber Strategi
/*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")