[TOC]
Seperti namanya, rata-rata yang menyesuaikan diri (KAMA) adalah dalam kategori purata bergerak (Moving Average), tetapi tidak seperti rata-rata bergerak tradisional, ia sangat pintar. Kami tahu bahawa rata-rata biasa mempunyai banyak kelemahan, seperti: rata-rata jangka pendek dekat dengan pergerakan harga, sangat sensitif, tetapi mudah menghasilkan isyarat palsu; rata-rata jangka panjang sangat tepat dalam penilaian trend, tetapi sering berlaku satu tempoh sebelum ia bertindak balas.
Kemahiran KAMA adalah bahawa ia boleh menyesuaikan sensitiviti utama mengikut keadaan pasaran semasa, iaitu kadar turun naik. Bentuknya ialah: perubahan KAMA secara ketara melambatkan dalam pasaran yang bergelora; apabila trend datang, ia bertindak balas dengan cepat.
Di antaranya, n, n1 dan n2 adalah parameter kitaran, dengan keadaan lalai n adalah 10, n1 adalah bilangan kitaran pendek, dan n2 adalah bilangan kitaran panjang 30. Ini juga merupakan satu set parameter yang diiktiraf oleh pengarang KAMA Perry Kaufman, n digunakan untuk mengira arah dan kecekapan kadar gelombang, n1 dan n2 adalah bilangan kitaran rata-rata pantas dan rata-rata lambat, secara teori, semakin besar parameter n1, semakin licin KAMA.
Kaedah pengiraan KAMA adalah: pertama mengira arah (DIR) dan kadar turun naik (VIR), kemudian mengira kecekapan dalam nisbah kedua-duanya. Kecekapan (ER) adalah ukuran perubahan harga, dan kaedah pengiraan adalah mudah: arah / kadar turun naik. Hasil pengiraan adalah antara 0 hingga 1, apabila nilai ER lebih dekat kepada 0 menunjukkan bahawa pasaran berada dalam keadaan goyah, apabila nilai ER lebih dekat kepada 1 menunjukkan bahawa pasaran berada dalam keadaan trend.
Apabila mengira kecekapan (ER), kita boleh menggabungkan garis purata pantas dan garis purata lambat untuk menghasilkan konstanta licin (CS): kecekapan * (cepat - perlahan) + perlahan. CS mewakili kelajuan trend yang dijalankan, dan berdasarkan formula pengiraan CS, kita dapat mendapati bahawa perubahan CS sentiasa berbanding lurus dengan perubahan ER.
Koefisien (CQ) kemudian dikira berdasarkan perkalian yang licin, yang bertujuan untuk menjadikan parameter kitaran perlahan memainkan peranan yang lebih penting dalam pengiraan, yang juga merupakan amalan yang lebih konservatif. KAMA menentukan tahap kelancaran akhir oleh koefisien (CQ), yang dalam pengiraan KAMA menentukan parameter kitaran dua kali terakhir yang licin secara linear, iaitu: purata indeks ditambah dengan purata bergerak (moving average), harga penutupan, koefisien, 2);
Walaupun kaedah pengiraan KAMA sangat rumit, kaedah penggunaannya serupa dengan garis purata biasa, dan dalam aplikasi praktikal, ia bukan sahaja dapat menentukan pergerakan pasaran tetapi juga digunakan untuk membeli dan menjual titik yang tepat. Oleh kerana ia sangat pintar, ia boleh digunakan dalam banyak strategi perdagangan, bahkan dalam mata wang digital.
Langkah 1: Mengira KAMAPerhatikan! Di sudut kiri atas, pilih bahasa pengaturcaraan:My语言
│ terdapat KAMA sedia ada dalam perpustakaan talib, tetapi ia hanya mempunyai satu parameter luaran (n) kitaran, n1 dan n2 telah lalai 2 dan 30 │ strategi dalam artikel ini hanya digunakan untuk membuang keriting langsung, rakan-rakan yang lebih mahir boleh menulis sendiri │ maka dalam bahasa My juga boleh langsung bercampur dengan bahasa JavaScript, perhatikan kod di bawah:
%% // 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: Mengira syarat transaksi dan membuat 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 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; // 启用一开一平信号过滤机制
Untuk menghampiri persekitaran dagangan yang sebenar, kami menggunakan dua titik geser untuk menguji tekanan pada masa pengulangan, dengan keadaan seperti berikut:
Kawasan Ujian Keuntungan yang jelas Curve Kewangan
Dari hasil pengamatan semula di atas, strategi KAMA yang mudah ini tidak menjanjikan, walaupun dalam pasaran beruang super besar mata wang digital pada tahun 2018, tidak ada kemunduran yang besar dalam kurva modal, dan dalam tempoh yang lama dalam pasaran yang bergolak, tidak membuka kedudukan yang tidak perlu, menyebabkan kerugian yang tidak perlu; pada masa yang sama, ia juga berjalan dengan baik di pasaran lembu pada tahun 2019.
Satu strategi yang baik yang boleh digunakan secara sebenar mestilah telah disempurnakan, dan strategi dalam artikel ini masih mempunyai banyak ruang untuk mengoptimumkan peningkatan, seperti menambah keadaan penapisan tertentu, keadaan penghentian dan penghentian rugi secara inisiatif, dan sebagainya. Sebagai jenis garis rata, KAMA mewarisi kelebihan dan kekurangan garis rata biasa, tetapi juga menaikkan harga. Dalam pasaran yang tidak dapat dipastikan, walaupun menetapkan paras terbaik yang paling baik adalah sukar untuk menyesuaikan diri dengan pasaran masa depan, oleh itu, kaedah yang serba boleh, perubahan perubahan perubahan pasaran mungkin merupakan pilihan yang lebih baik.
xaifer48Tuhan, tolong ajar saya, bagaimana kod untuk langkah terakhir kama ditulis? KAMA = purata indeks ditambah purata dinamik (harga penutupan, faktor), 2) adalah ini. Saya mencari beberapa mengatakan ia ditulis sebagai KAMA = KAMA sebelumnya + faktor * (harga semasa - KAMA sebelumnya). Masalahnya adalah apabila mengira nilai KAMA pertama pada mulanya, tidak ada tanda tanda KAMA sebelumnya.