avatar of 发明者量化-小小梦 发明者量化-小小梦
Suivre Messages privés
4
Suivre
1271
Abonnés

Système de trading adaptatif à moyenne mobile de monnaie numérique et analyse de l'algorithme KAMA - basé sur le logiciel de trading quantitatif de l'inventeur

Créé le: 2019-07-06 16:21:15, Mis à jour le: 2023-10-24 21:42:44
comments   1
hits   5792

[TOC]

Système de trading adaptatif à moyenne mobile de monnaie numérique et analyse de l’algorithme KAMA - basé sur le logiciel de trading quantitatif de l’inventeur

Introduction à la moyenne mobile adaptative KAMA

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.

KAMA dans le graphique

Système de trading adaptatif à moyenne mobile de monnaie numérique et analyse de l’algorithme KAMA - basé sur le logiciel de trading quantitatif de l’inventeur

Méthode de calcul KAMA

  • Direction (DIR) = Cours de clôture - Cours de clôture il y a n jours
  • Volatilité (VIR) = somme (abs (cours de clôture - cours de clôture du jour de négociation précédent), n)
  • Efficacité (ER) = Direction / Volatilité
  • Rapide = 2 / (n1 + 1)
  • Lent = 2 / (n2 + 1)
  • Douceur (CS) = Efficacité * (Rapide - Lent) + Lent
  • Coefficient (CQ) = Lissage * Lissage
  • KAMA = Moyenne pondérée exponentielle (Moyenne mobile dynamique (cours de clôture, coefficient), 2)

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).

Comment utiliser KAMA

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.

  • Lorsque le prix est supérieur à KAMA et que KAMA pointe vers le haut, ouvrez une position longue.
  • Lorsque le prix est inférieur à KAMA et que KAMA évolue à la baisse, une position courte est ouverte.
  • Lorsque le prix est inférieur à KAMA, ou que KAMA baisse, les positions longues sont fermées.
  • Lorsque le prix est supérieur à KAMA, ou que KAMA augmente, la position courte est fermée.

Construire une stratégie de trading basée sur KAMA

É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;  // 启用一开一平信号过滤机制

Backtesting de stratégie

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 :

  • Bourse d’échange : BitMEX
  • Type de marché : XBTUSD
  • Instrument de trading : XBTUSD
  • Période : 1er juillet 2017 ~ 1er juillet 2019
  • Cycle K-line : quotidien
  • Glissement : 2 sauts pour l’ouverture et la fermeture des positions

Environnement de test Système de trading adaptatif à moyenne mobile de monnaie numérique et analyse de l’algorithme KAMA - basé sur le logiciel de trading quantitatif de l’inventeur Détails des revenus Système de trading adaptatif à moyenne mobile de monnaie numérique et analyse de l’algorithme KAMA - basé sur le logiciel de trading quantitatif de l’inventeur Courbe de financement Système de trading adaptatif à moyenne mobile de monnaie numérique et analyse de l’algorithme KAMA - basé sur le logiciel de trading quantitatif de l’inventeur

À 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.

Code source de la stratégie

Cliquez pour copier le code source complet de la stratégie, basé sur My language, adapté aux contrats à terme sur matières premières et aux devises numériques

Résumer

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.