[TOC]

Comme son nom l’indique, la moyenne mobile adaptative (KAMA) appartient à la catégorie des moyennes mobiles, mais contrairement à la moyenne mobile traditionnelle, elle est très « intelligente ». Nous savons que les moyennes mobiles ordinaires présentent de nombreux défauts. Par exemple, la moyenne mobile à court terme est proche de la tendance des prix et est très sensible, mais il est facile de générer de faux signaux ; la moyenne mobile à long terme est très précise pour juger les tendances, mais il faut souvent un certain temps pour que le marché réagisse.
L’« intelligence » de KAMA réside dans sa capacité à ajuster de manière autonome sa sensibilité en fonction des conditions actuelles du marché, c’est-à-dire de la volatilité. Sa manifestation est la suivante : dans un marché volatil, les variations du KAMA ralentissent considérablement ; lorsqu’une tendance arrive, il réagit rapidement. Dans le trading réel, son avantage est qu’il peut réduire les coûts de transaction causés par « l’encombrement quotidien » et vous permettre d’embarquer à temps lorsque le marché décolle.

Parmi eux, n, n1 et n2 sont tous des paramètres de période. Par défaut, n correspond à 10 périodes, n1 à 2 périodes à court terme et n2 à 30 périodes à long terme. Il s’agit également d’un ensemble de paramètres reconnu par Perry Kaufman, l’auteur de KAMA. n est utilisé pour l’efficacité du calcul de la direction et de la volatilité, n1 et n2 sont les périodes de la moyenne mobile rapide et de la moyenne mobile lente. En théorie, plus le paramètre n1, plus le KAMA est lisse.
La méthode de calcul du KAMA est la suivante : calculer d’abord la direction (DIR) et la volatilité (VIR), puis calculer l’efficacité en fonction du rapport des deux. L’efficacité (ER) est une mesure du degré de variation des prix et se calcule simplement : Direction / Volatilité. Le résultat du calcul est compris entre 0 et 1. Lorsque la valeur ER est plus proche de 0, cela indique que le marché est dans un état volatil. Lorsque la valeur ER est plus proche de 1, cela indique que le marché est dans un état de tendance.
Une fois l’efficacité (ER) calculée, la moyenne mobile rapide et la moyenne mobile lente peuvent être combinées pour dériver la constante de lissage (CS) : efficacité * (rapide - lent) + lent. CS représente la vitesse du mouvement de tendance. Selon la formule de calcul de CS, nous pouvons constater que la variation de CS est toujours proportionnelle à la variation de ER.
Le coefficient (CQ) est ensuite calculé en fonction du pouvoir de lissage, dans le but de faire jouer aux paramètres du cycle lent un rôle plus important dans le calcul, ce qui est également une approche plus conservatrice. Le lissage final de KAMA est déterminé par le coefficient (CQ). Dans le calcul de KAMA, le coefficient (CQ) détermine les paramètres de période des deux derniers lissages de moyenne mobile, à savoir : moyenne pondérée exponentielle (moyenne mobile dynamique (cours de clôture, (coefficient), 2).
Bien que la méthode de calcul du KAMA soit très compliquée, son utilisation est similaire à celle des moyennes mobiles ordinaires. Dans les applications pratiques, il peut non seulement déterminer les tendances du marché, mais également être utilisé pour des points d’achat et de vente précis. Parce qu’il est très « intelligent », il peut être utilisé dans de nombreuses stratégies de trading et vaut même la peine d’être essayé dans les monnaies numériques.
Étape 1 : Calculer le KAMA
Avis! Dans le coin supérieur gauche, sélectionnez le langage de programmation :My语言. Il existe déjà un KAMA prêt à l’emploi dans la bibliothèque talib, mais il n’a qu’un seul paramètre externe (n) period, et n1 et n2 ont par défaut 2 et 30. Les stratégies présentées dans cet article sont fournies à titre indicatif. Les amis qui ont de bonnes compétences pratiques peuvent également rédiger les leurs. Le langage My peut alors être directement mélangé avec le langage JavaScript. Faites attention au code suivant :
%% // 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的标准格式
Étape 2 : Calculer les conditions de trading et passer une commande
%%
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; // 平空
Étape 3 : Définir la méthode de filtrage du signal de stratégie
%%
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; // 启用一开一平信号过滤机制
Afin d’être plus proche de l’environnement de trading réel, nous utilisons un glissement de 2 sauts pour l’ouverture et la fermeture des positions afin de réaliser des tests de stress lors du backtesting. L’environnement de test est le suivant :
Environnement de test
Détails des revenus
Courbe de financement

À en juger par les résultats du backtest ci-dessus, cette stratégie KAMA simple a vraiment répondu aux attentes. Même lors du super marché baissier de la monnaie numérique en 2018, la courbe de capital n’a pas montré de retracement important et le marché était dans une période de volatilité à long terme . L’ouverture et la fermeture de positions dans les deux sens entraîneront des pertes inutiles. Dans le même temps, il a également enregistré de bons résultats lors du marché haussier de 2019.
Une excellente stratégie qui peut être mise en pratique doit avoir été affinée et peaufinée à maintes reprises. Les stratégies présentées dans cet article ont encore beaucoup de marge d’optimisation et de mise à niveau, comme l’ajout de certaines conditions de filtrage, la prise de bénéfices active et le stop-loss. conditions de perte, etc. En tant que type de moyenne mobile, KAMA hérite des avantages et des inconvénients des moyennes mobiles ordinaires et les améliore en même temps. Dans un marché imprévisible, même si un « meilleur paramètre » est fixé, il est difficile de s’adapter aux conditions futures du marché. Par conséquent, cette méthode consistant à suivre la tendance et à évoluer en fonction des conditions du marché peut être un meilleur choix.