Memperkenalkan purata bergerak adaptif KAMA

Penulis:Kebaikan, Dicipta: 2019-07-24 14:09:06, Dikemas kini: 2023-11-08 20:42:23

img

Seperti namanya, Moving Average (KAMA) tergolong dalam kategori Moving Average, tetapi tidak seperti Moving Average tradisional, ia jauh lebih pintar daripada MA biasa. Kita tahu bahawa MA mempunyai banyak kekurangan. Sebagai contoh, purata bergerak jangka pendek dekat dengan trend harga, yang sangat sensitif, tetapi mudah menghasilkan isyarat palsu. Purata bergerak jangka panjang sangat tepat dalam menangkap trend, tetapi sering bertindak balas sangat perlahan apabila harga pasaran telah bergerak untuk sementara waktu.

KAMA smartness tercermin dalam hakikat bahawa ia boleh berdasarkan keadaan pasaran semasa, iaitu, turun naik, untuk menyesuaikan kepekaan. Bentuk realisasinya adalah: dalam pasaran kejutan, perubahan KAMA jelas melambatkan; apabila trend datang, ia akan bertindak balas dengan cepat.

Manfaatnya ialah: ia boleh mengurangkan kos transaksi yang disebabkan oleh harga dalam pergerakan hari, dan boleh mendapatkan trend pada masa ketika pasaran lepas landas.

KAMA dalam carta

img

Kaedah pengiraan KAMA

  • Arah (DIR) = harga penutupan - harga penutupan sebelum n hari
  • Volatiliti (VIR) = jumlah ((abs (harga penutupan - harga penutupan hari dagangan sebelumnya), n)
  • Kecekapan (ER) = arah / turun naik
  • Cepat = 2 / (n1 + 1)
  • Perlahan = 2 / (n2 + 1)
  • Lemes (CS) = kecekapan * (cepat - perlahan) + perlahan
  • Pekali (CQ) = halus * halus
  • KAMA = purata berwajaran eksponensial (purata bergerak dinamik (harga penutupan, pekali), 2)

Antara mereka, n, n1, dan n2 adalah parameter berkala. Secara lalai, bilangan kitaran n adalah 10, n1 adalah bilangan kitaran jangka pendek adalah 2, dan n2 adalah bilangan kitaran jangka panjang adalah 30. Ini juga satu set parameter yang dipersetujui oleh pengarang KAMA Perry Kaufman, n digunakan untuk arah dan kecekapan pengiraan turun naik, n1 dan n2 adalah bilangan tempoh purata bergerak pantas dan purata bergerak perlahan. Secara teori, semakin besar parameter n1, semakin lancar KAMA.

KAMA dikira dengan pertama kali mengira arah (DIR) dan turun naik (VIR), kemudian mengira kecekapan secara proporsional mengikut kedua-duanya. Kecekapan (ER) adalah ukuran tahap perubahan harga dan dikira dengan cara yang mudah: arah / turun naik. Hasil pengiraan adalah antara 0 dan 1. Apabila nilai ER lebih dekat dengan 0, pasaran berada dalam keadaan goyangan. Apabila nilai ER lebih dekat dengan 1, pasaran berada dalam keadaan trend.

Apabila mengira kecekapan (ER), konstan pelembap (CS) boleh diperoleh dengan menggabungkan purata bergerak pantas dan purata bergerak perlahan:

kecekapan * (cepat - perlahan) + perlahan

CS mewakili kelajuan operasi trend. Menurut formula pengiraan CS, kita boleh mendapati bahawa perubahan CS sentiasa sebanding dengan perubahan ER.

Kemudian pekali (CQ) dikira mengikut kuasa yang dihaluskan, dan tujuannya adalah untuk membuat parameter kitaran perlahan memainkan peranan yang lebih penting dalam pengiraan, yang juga pendekatan yang lebih konservatif.

Kelembapan akhir KAMA ditentukan oleh pekali (CQ). Dalam pengiraan KAMA, pekali (CQ) menentukan parameter berkala kedua-dua pelembapan purata bergerak terakhir, iaitu: purata tertimbang eksponen (purata bergerak dinamik (harga penutupan, pekali), 2).

Cara menggunakan KAMA

Walaupun kaedah pengiraan KAMA sangat rumit, kaedah penggunaannya serupa dengan purata bergerak biasa. Dalam aplikasi praktikal, ia bukan sahaja dapat menilai trend pasaran, tetapi juga boleh digunakan untuk titik perdagangan yang tepat.

  • Apabila harga lebih besar daripada KAMA dan KAMA naik, kedudukan panjang dibuka.
  • Apabila harga lebih rendah daripada KAMA dan KAMA turun, kedudukan pendek dibuka.
  • Apabila harga adalah kurang daripada KAMA, atau KAMA adalah ke bawah, kedudukan panjang ditutup.
  • Apabila harga lebih besar daripada KAMA, atau KAMA naik, kedudukan pendek ditutup.

Membina strategi perdagangan berdasarkan KAMA

Langkah 1: mengira KAMA

Perhatikan bahawa di sudut kiri atas, sila pilih bahasa pengaturcaraan: Bahasa saya. Sudah ada KAMA siap di perpustakaan talib, tetapi ia hanya mempunyai satu kitaran parameter luaran (n), dan n1 dan n2 telah lalai menjadi 2 dan 30.

Strategi dalam artikel ini hanya digunakan sebagai rujukan. Pembaca yang mempunyai kemahiran pengaturcaraan yang kuat boleh menulis sendiri. Semasa proses pengaturcaraan bahasa Saya, kita juga boleh bercampur dengan bahasa JavaScript, perhatikan kod berikut:

%% // Standard format for JavaScript within My language
scope.KAMA = function() {
    var r = _C(exchange.GetRecords); // Get the K line array
    if (r.length > 140) { // filter the length of the K line
        var kama = talib.KAMA(r, 140); // Call talib library to calculate KAMA
        Return kama[kama.length - 2]; // return the specific value of KAMA
    }
    Return;
}
%% // Standard format for JavaScript within My language

Langkah 2: Mengira syarat dagangan dan meletakkan 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; // Print KAMA on the chart
A:CLOSE; // print the closing price on the chart

K > REF(K, 1) && CLOSE > K,BK; // Open long position
K < REF(K, 1) && CLOSE < K,SK; // Open short position
K < REF(K, 1) || CLOSE < K,SP; // close long position
K > REF(K, 1) || CLOSE > K,BP; // close short position

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; // Enable one open and one close signal filtering mechanism

Ujian belakang strategi

Untuk mendapatkan lebih dekat dengan persekitaran dagangan sebenar, kami menggunakan 2 pip slippage untuk menguji tekanan dalam perdagangan sebenar.

  • Bursa: BitMEX
  • Pelbagai dagangan: XBTUSD
  • Masa: Julai 01, 2017 ~ Julai 01, 2019
  • Kitaran garis K: garis harian
  • Slippage: 2 pips untuk membuka dan menutup kedudukan

Backtest persekitaran

img

Perincian keuntungan

img

Kurva dana

img

Dari hasil backtest di atas, strategi KAMA yang mudah ini benar-benar memenuhi jangkaan. Walaupun dalam pasaran beruang super besar cryptocurrency pada tahun 2018, kurva modal tidak menunjukkan penarikan balik yang besar, dan tidak ada kedudukan terbuka dan dekat berulang kali dalam tempoh kejutan jangka panjang di pasaran yang menyebabkan kerugian yang tidak perlu. Pada masa berikutnya, terdapat prestasi yang sangat baik di pasaran lembu pada tahun 2019.

Kod sumber strategi

Untuk maklumat lanjut, sila hubungi kami di:https://www.fmz.com/strategy/155663

Ringkasan

Strategi yang sangat baik yang boleh menjadi strategi yang teguh mesti dipoles. Strategi dalam artikel ini mempunyai banyak ruang untuk mengoptimumkan dan menaik taraf, seperti menambahkan keadaan penapisan tertentu, keadaan stop-loss aktif dan keadaan stop-loss. Sebagai sejenis purata bergerak, KAMA mewarisi kelebihan dan kekurangan purata bergerak biasa dan pada masa yang sama memulihkan. Dalam pasaran yang tidak dapat diramalkan, walaupun anda menetapkan parameter best, sukar untuk menyesuaikan diri dengan pasaran masa depan. Oleh itu, kaedah ini berubah dengan trend dan berubah dengan pasaran mungkin menjadi pilihan yang lebih baik.


Lebih lanjut