avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada mesej peribadi
4
fokus pada
1271
Pengikut

Sistem dagangan purata bergerak adaptif mata wang digital dan analisis algoritma KAMA - berdasarkan perisian dagangan kuantitatif pencipta

Dicipta dalam: 2019-07-06 16:21:15, dikemas kini pada: 2023-10-24 21:42:44
comments   1
hits   5792

[TOC]

Sistem dagangan purata bergerak adaptif mata wang digital dan analisis algoritma KAMA - berdasarkan perisian dagangan kuantitatif pencipta

Pengenalan kepada Adaptive Moving Average KAMA

Seperti namanya, purata bergerak suai (KAMA) tergolong dalam kategori purata bergerak, tetapi tidak seperti purata bergerak tradisional, ia sangat “pintar”. Kami tahu bahawa purata bergerak biasa mempunyai banyak kekurangan Contohnya, purata bergerak jangka pendek adalah hampir dengan arah aliran harga dan sangat sensitif, tetapi ia adalah mudah untuk menghasilkan isyarat palsu jangka panjang adalah sangat tepat dalam menilai trend, tetapi ia sering mengambil sedikit masa untuk pasaran bertindak balas.

“Kepintaran” KAMA terletak pada keupayaannya untuk menyesuaikan sensitivitinya secara autonomi berdasarkan keadaan pasaran semasa, iaitu turun naik. Manifestasinya ialah: dalam pasaran yang tidak menentu, perubahan dalam KAMA perlahan dengan ketara apabila arah aliran datang, ia bertindak balas dengan cepat. Dalam dagangan sebenar, kelebihannya ialah ia boleh mengurangkan kos urus niaga yang disebabkan oleh “kekacauan harian” dan membolehkan anda masuk tepat pada masanya apabila pasaran berlepas.

KAMA dalam carta

Sistem dagangan purata bergerak adaptif mata wang digital dan analisis algoritma KAMA - berdasarkan perisian dagangan kuantitatif pencipta

kaedah pengiraan KAMA

  • Arah (DIR) = Harga penutupan - Harga penutupan n hari yang lalu
  • Volatiliti (VIR) = jumlah(abs(harga tutup - harga penutupan hari dagangan sebelumnya), n)
  • Kecekapan (ER) = Arah / Volatiliti
  • Cepat = 2 / (n1 + 1)
  • Perlahan = 2 / (n2 + 1)
  • Kelancaran(CS) = Kecekapan * (Cepat - Lambat) + Lambat
  • Pekali(CQ) = Melicin * Melicin
  • KAMA = Purata Wajaran Eksponen (Purata Pergerakan Dinamik (harga penutup, pekali), 2)

Antaranya, n, n1, dan n2 adalah semua parameter tempoh Secara lalai, n ialah 10 tempoh, n1 ialah 2 tempoh jangka pendek, dan n2 ialah 30 tempoh jangka panjang. Ini juga merupakan satu set parameter yang diiktiraf oleh Perry Kaufman, pengarang KAMA n digunakan untuk arah dan kecekapan pengiraan turun naik n1 dan n2 adalah tempoh purata bergerak cepat dan purata bergerak perlahan parameter n1, lebih licin KAMA.

Kaedah pengiraan KAMA ialah: mula-mula mengira arah (DIR) dan turun naik (VIR), dan kemudian mengira kecekapan berdasarkan nisbah kedua-duanya. Kecekapan (ER) ialah ukuran tahap perubahan harga dan dikira secara ringkas: arah / turun naik. Keputusan pengiraan adalah antara 0 dan 1. Apabila nilai ER lebih hampir kepada 0, ia menunjukkan bahawa pasaran berada dalam keadaan tidak menentu Apabila nilai ER lebih hampir kepada 1, ia menunjukkan bahawa pasaran berada dalam keadaan trend.

Setelah kecekapan (ER) dikira, purata bergerak pantas dan purata bergerak perlahan boleh digabungkan untuk memperoleh pemalar pelicinan (CS): kecekapan * (cepat - perlahan) + perlahan. CS mewakili kelajuan pergerakan aliran Mengikut formula pengiraan CS, kita dapati bahawa perubahan CS sentiasa berkadar dengan perubahan ER.

Pekali (CQ) kemudiannya dikira berdasarkan kuasa melicinkan, dengan matlamat menjadikan parameter kitaran perlahan memainkan peranan yang lebih penting dalam pengiraan, yang juga merupakan pendekatan yang lebih konservatif. Kelancaran akhir KAMA ditentukan oleh pekali (CQ) Dalam pengiraan KAMA, pekali (CQ) menentukan parameter tempoh dua pelicinan purata bergerak terakhir, iaitu: purata wajaran eksponen (purata bergerak dinamik (harga penutupan, harga penutupan). pekali), 2).

Cara menggunakan KAMA

Walaupun kaedah pengiraan KAMA adalah sangat rumit, penggunaannya adalah serupa dengan purata bergerak biasa Dalam aplikasi praktikal, ia bukan sahaja boleh menentukan arah aliran pasaran, tetapi juga digunakan untuk mata belian dan jualan yang tepat. Kerana ia sangat “pintar”, ia boleh digunakan dalam banyak strategi perdagangan dan malah patut dicuba dalam mata wang digital.

  • Apabila harga lebih tinggi daripada KAMA dan KAMA menghala ke atas, buka kedudukan beli.
  • Apabila harga kurang daripada KAMA, dan KAMA bergerak ke bawah, kedudukan jual dibuka.
  • Apabila harga kurang daripada KAMA, atau KAMA bergerak ke bawah, kedudukan beli ditutup.
  • Apabila harga lebih besar daripada KAMA, atau KAMA bergerak ke atas, kedudukan jual ditutup.

Membina strategi perdagangan berdasarkan KAMA

Langkah 1: Kira KAMA Perhatikan! Di sudut kiri atas, pilih bahasa pengaturcaraan:My语言. Sudah ada KAMA siap dalam pustaka talib, tetapi ia hanya mempunyai satu parameter luaran (n) tempoh, dan n1 dan n2 telah lalai kepada 2 dan 30. Strategi dalam artikel ini hanya untuk rujukan Rakan yang mempunyai kemahiran hands-on yang baik juga boleh menulis sendiri. Kemudian bahasa saya juga boleh terus dicampur dengan bahasa JavaScript Perhatikan kod berikut.

%%  // My语言内JavaScript的标准格式
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);  // 获取K线数组
    if (r.length > 140) {  // 过滤K线长度
        var kama = talib.KAMA(r, 140);  // 调用talib库计算KAMA
        return kama[kama.length - 2];  // 返回KAMA的具体数值
    }
    return;
}
%%  // My语言内JavaScript的标准格式

Langkah 2: Kira syarat dagangan dan buat pesanan

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        return kama[kama.length - 2];
    }
    return;
}
%%

K^^KAMA;  // 把KAMA打印到图表上
A:CLOSE;  // 把收盘价打印到图表上

K > REF(K, 1) && CLOSE > K,BK;  // 开多
K < REF(K, 1) && CLOSE < K,SK;  // 开空
K < REF(K, 1) || CLOSE < K,SP;  // 平多
K > REF(K, 1) || CLOSE > K,BP;  // 平空

Langkah 3: Tetapkan kaedah penapisan isyarat strategi

%%
scope.KAMA = function() {
    var r = _C(exchange.GetRecords);
    if (r.length > 140) {
        var kama = talib.KAMA(r, 140);
        return kama[kama.length - 2];
    }
    return;
}
%%

K^^KAMA;
A:CLOSE;

K > REF(K, 1) && CLOSE > K,BK;
K < REF(K, 1) && CLOSE < K,SK;
K < REF(K, 1) || CLOSE < K,SP;
K > REF(K, 1) || CLOSE > K,BP;

AUTOFILTER;  // 启用一开一平信号过滤机制

Ujian Balik Strategi

Untuk lebih dekat dengan persekitaran dagangan sebenar, kami menggunakan 2 lompatan untuk membuka dan menutup kedudukan untuk melakukan ujian tekanan semasa ujian belakang.

  • Pertukaran: BitMEX
  • Jenis pasaran: XBTUSD
  • Instrumen dagangan: XBTUSD
  • Masa: 1 Julai 2017 ~ 1 Julai 2019
  • Kitaran K-line: setiap hari
  • Gelinciran: 2 lompatan untuk membuka dan menutup kedudukan

Persekitaran ujian Sistem dagangan purata bergerak adaptif mata wang digital dan analisis algoritma KAMA - berdasarkan perisian dagangan kuantitatif pencipta Butiran Hasil Sistem dagangan purata bergerak adaptif mata wang digital dan analisis algoritma KAMA - berdasarkan perisian dagangan kuantitatif pencipta Keluk pembiayaan Sistem dagangan purata bergerak adaptif mata wang digital dan analisis algoritma KAMA - berdasarkan perisian dagangan kuantitatif pencipta

Berdasarkan keputusan ujian belakang di atas, strategi mudah KAMA ini benar-benar menepati jangkaan Walaupun dalam pasaran super bear mata wang digital pada tahun 2018, keluk modal tidak menunjukkan anjakan yang besar, dan pasaran berada dalam tempoh yang tidak menentu jangka panjang. . Membuka dan menutup kedudukan bolak-balik akan menyebabkan kerugian yang tidak perlu. Pada masa yang sama, ia juga menunjukkan prestasi yang baik dalam pasaran lembu pada 2019.

Kod sumber strategi

Klik untuk menyalin kod sumber strategi lengkap, berdasarkan Bahasa Saya, sesuai untuk niaga hadapan komoditi dan mata wang digital

ringkaskan

Strategi yang sangat baik yang boleh dipraktikkan mestilah telah diperhalusi melalui percubaan dan kesukaran berulang Strategi dalam artikel ini masih mempunyai banyak ruang untuk pengoptimuman dan peningkatan, seperti menambah syarat penapisan tertentu, pengambilan untung aktif dan henti rugi. syarat, dsb. Sebagai sejenis purata bergerak, KAMA mewarisi kelebihan dan kekurangan purata bergerak biasa dan menambah baiknya pada masa yang sama. Dalam pasaran yang tidak dapat diramalkan, walaupun “parameter terbaik” ditetapkan, adalah sukar untuk menyesuaikan diri dengan keadaan pasaran masa hadapan Oleh itu, kaedah mengikuti arah aliran dan berubah mengikut keadaan pasaran mungkin merupakan pilihan yang lebih baik.