[TOC]

Seperti namanya, rata-rata bergerak adaptif (KAMA) termasuk dalam kategori rata-rata bergerak, tetapi tidak seperti rata-rata bergerak tradisional, ia sangat “pintar”. Kita tahu bahwa moving average biasa memiliki banyak kekurangan. Misalnya, moving average jangka pendek mendekati tren harga dan sangat sensitif, tetapi mudah menghasilkan sinyal palsu; moving average jangka panjang sangat akurat dalam menilai tren, tetapi sering kali butuh waktu beberapa saat bagi pasar untuk bereaksi.
“Kecerdasan” KAMA terletak pada kemampuannya untuk secara otomatis menyesuaikan sensitivitasnya berdasarkan kondisi pasar saat ini, yaitu volatilitas. Manifestasinya adalah: di pasar yang fluktuatif, perubahan KAMA melambat secara signifikan; ketika tren datang, ia bereaksi dengan cepat. Dalam perdagangan sesungguhnya, keuntungannya adalah dapat mengurangi biaya transaksi yang disebabkan oleh “kekacauan harian” dan memungkinkan Anda untuk ikut serta tepat waktu ketika pasar mulai bergerak.

Di antaranya, n, n1, dan n2 semuanya adalah parameter periode. Secara default, n adalah 10 periode, n1 adalah 2 periode jangka pendek, dan n2 adalah 30 periode jangka panjang. Ini juga merupakan seperangkat parameter yang diakui oleh Perry Kaufman, penulis KAMA. n digunakan untuk efisiensi perhitungan arah dan volatilitas. n1 dan n2 adalah periode rata-rata bergerak cepat dan rata-rata bergerak lambat. Secara teori, semakin besar parameter n1, semakin halus KAMA.
Metode perhitungan KAMA adalah: pertama menghitung arah (DIR) dan volatilitas (VIR), lalu menghitung efisiensi berdasarkan rasio keduanya. Efisiensi (ER) adalah ukuran tingkat perubahan harga dan dihitung secara sederhana: Arah / Volatilitas. Hasil perhitungannya berada di antara 0 dan 1. Bila nilai ER mendekati 0, berarti pasar dalam kondisi volatil. Bila nilai ER mendekati 1, berarti pasar dalam kondisi tren.
Setelah efisiensi (ER) dihitung, rata-rata pergerakan cepat dan rata-rata pergerakan lambat dapat digabungkan untuk mendapatkan konstanta penghalusan (CS): efisiensi * (cepat - lambat) + lambat. CS merupakan representasi kecepatan pergerakan tren. Berdasarkan rumus perhitungan CS, kita dapat menemukan bahwa perubahan CS selalu proporsional terhadap perubahan ER.
Koefisien (CQ) kemudian dihitung berdasarkan daya penghalusan, dengan tujuan membuat parameter siklus lambat memainkan peran lebih penting dalam perhitungan, yang juga merupakan pendekatan yang lebih konservatif. Kelancaran akhir KAMA ditentukan oleh koefisien (CQ). Dalam perhitungan KAMA, koefisien (CQ) menentukan parameter periode dari dua pemulusan rata-rata pergerakan terakhir, yaitu: rata-rata tertimbang eksponensial (rata-rata pergerakan dinamis (harga penutupan, koefisien), 2).
Meskipun metode perhitungan KAMA sangat rumit, penggunaannya mirip dengan moving average biasa. Dalam aplikasi praktis, KAMA tidak hanya dapat menentukan tren pasar, tetapi juga dapat digunakan untuk menentukan titik beli dan jual yang tepat. Karena sangat “cerdas”, ia dapat digunakan dalam banyak strategi perdagangan dan bahkan patut dicoba dalam mata uang digital.
Langkah 1: Hitung KAMA
Melihat! Di sudut kiri atas, pilih bahasa pemrograman:My语言. Sudah ada KAMA yang siap pakai di pustaka talib, tetapi hanya memiliki satu parameter eksternal (n) periode, dan n1 dan n2 secara default bernilai 2 dan 30. Strategi dalam artikel ini hanya sebagai referensi. Teman-teman yang memiliki keterampilan praktis juga dapat menuliskan strategi mereka sendiri. Kemudian bahasa saya juga dapat langsung dicampur dengan bahasa JavaScript. Perhatikan kode 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: Hitung kondisi perdagangan dan tempatkan 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 metode penyaringan sinyal 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; // 启用一开一平信号过滤机制
Agar lebih mendekati lingkungan perdagangan yang sebenarnya, kami menggunakan slippage 2 lompatan untuk membuka dan menutup posisi guna melakukan stress testing selama backtesting. Lingkungan pengujiannya adalah sebagai berikut:
Lingkungan pengujian
Rincian Pendapatan
Kurva pendanaan

Dilihat dari hasil backtest di atas, strategi KAMA yang sederhana ini benar-benar sesuai dengan harapan. Bahkan di pasar mata uang digital yang sangat bearish pada tahun 2018, kurva modal tidak menunjukkan retracement yang besar, dan pasar berada dalam periode volatilitas jangka panjang. Membuka dan menutup posisi bolak-balik akan menyebabkan kerugian yang tidak perlu. Pada saat yang sama, kinerjanya juga baik pada pasar bullish tahun 2019.
Strategi yang sangat baik yang dapat dipraktikkan harus disempurnakan dan diasah berulang kali. Strategi dalam artikel ini masih memiliki banyak ruang untuk pengoptimalan dan peningkatan, seperti menambahkan kondisi penyaringan tertentu, pengambilan untung aktif, dan penghentian kondisi kehilangan, dll. Sebagai jenis rata-rata bergerak, KAMA mewarisi kelebihan dan kekurangan rata-rata bergerak biasa dan sekaligus menyempurnakannya. Di pasar yang tidak dapat diprediksi, bahkan jika “parameter terbaik” sudah ditetapkan, sulit untuk beradaptasi dengan kondisi pasar di masa mendatang. Oleh karena itu, metode mengikuti tren dan berubah mengikuti kondisi pasar ini mungkin merupakan pilihan yang lebih baik.