Développement de la stratégie CTA et de la bibliothèque de classes standard de la plateforme FMZ Quant

Auteur:Je ne sais pas., Créé à partir de:

img

Développement de la stratégie CTA et de la bibliothèque de classes standard de la plateforme FMZ Quant

Le système et la stratégie de négociation de la première génération de CTA

La première génération du système de trading CTA est apparue dans les années 1960 et 1970. En raison de la forte tendance du marché des matières premières à l'époque, la stratégie CTA a réalisé des gains considérables à cette époque. La forte tendance du marché des matières premières pendant cette période peut être attribuée à la croissance économique soutenue et à l'inflation économique croissante après la Seconde Guerre mondiale. Le puissant marché des tendances permet à un système de suivi des tendances simple d'obtenir de meilleurs rendements. Le système de trading CTA de la première génération traite de moins de marchés et de variétés de base, et le système de trading est relativement simple, généralement un système de trading qui suit plusieurs cibles de trading. En raison de la tendance du marché des matières premières à l'époque, cette stratégie a bien fonctionné.

Les stratégies utilisées dans le système de trading de première génération sont celles qui sont familières avec la stratégie de suivi des tendances maintenant, comme le système de moyenne mobile (avec quelques conditions de filtrage simples, comme lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme ou vice versa). Une stratégie de suivi des tendances simple peut jouer une tendance continue des fondamentaux de la cible de trading efficacement. La croissance économique soutenue, l'inflation et la crise pétrolière sont les raisons de cette persistance. Cependant, lorsque de nombreux traders utilisent la même stratégie et que les fondamentaux continuent d'exister, la première génération de stratégies de trading doit être développée pour s'adapter au nouvel environnement.

Le système et la stratégie de négociation de la CTA de deuxième génération

En raison du découplage de l'USD et de l'or, le marché des contrats à terme financiers s'est développé rapidement de 1970 à 1980, permettant au fonds de gestion de contrats à terme de participer à de nombreux marchés à terme, y compris le marché monétaire, le marché obligataire, les contrats à terme de l'indice boursier et les dérivés financiers boursiers.

Sur la base des caractéristiques du marché susmentionnées, le système de négociation et la stratégie CTA de deuxième génération présentent les caractéristiques suivantes par rapport à la stratégie CTA de première génération:

  • L'entrée sur le marché des contrats à terme financiers a rendu la variété des transactions et le marché plus diversifiés.

  • En termes de stratégie de négociation, la stratégie du système de négociation CTA de deuxième génération ne se limite pas au suivi des tendances et à la percée des prix. Il applique plus de modèles mathématiques pour surveiller plusieurs marchés. Que ce soit pour utiliser le suivi des tendances en fonction des différentes conditions du marché ou des stratégies de réponse moyenne. Parce que de nombreuses institutions participent à la liquidité du marché des contrats à terme, la période de faible volatilité continue du marché des contrats à terme est également apparue. Dans ce cas, le système CTA traditionnel de première génération est difficile à réaliser des profits et à s'adapter aux changements du marché. Cette stratégie devient importante.

  • La stratégie CTA de deuxième génération peut effectuer des transactions à court terme à la fenêtre de négociation et le temps de rétention. Contrairement à la stratégie CTA de première génération, la stratégie de deuxième génération a commencé à surveiller les modèles de négociation intraday à court terme et à haute fréquence.

Le système et la stratégie de négociation de la CTA de troisième génération

La troisième génération du système de trading CTA est la diversification, la décentralisation et l'adaptabilité supplémentaires du système de trading de deuxième génération. La troisième génération du système de trading CTA utilise plus de systèmes de trading pour négocier plus de marchés et de variétés. En termes de stratégie, il utilise un modèle de marché plus rentable. Tous ces systèmes sont basés sur la combinaison de plusieurs modèles fonctionnant sur plusieurs marchés.

En raison de l'application large de la stratégie CTA et de la maturité de la stratégie CTA au fil du temps, il s'agit d'un modèle de stratégie classique largement contacté et souhaité par un grand nombre de traders quantitatifs (en particulier pour les débutants).

L'extensibilité est également très pratique. Les commentaires de code sont très clairs et faciles à comprendre. Si vous voulez faire une personnalisation ou une extension en profondeur, vous n'avez qu'à le faire directement dans le framework existant.

Une partie du code source (version JavaScript):

function main() {
    $.CTA(exchanges[0], 0.01, function(r, mp, pair){  // The first parameter is the exchange object to be done, the second parameter 0.01 is the minimum order quantity required by the exchange, the third anonymous function function() {...} is the callback function, and the trading logic is written in the function. The first parameter r of the callback function receives the latest K-line data, the second parameter receives the number of positions, and the third parameter receives the name of the trading pair.

        if (r.length < 20) {   // Determine the number of K-line bars 
            return
        }
        var emaSlow = TA.EMA(r, 20)
        var emaFast = TA.EMA(r, 5)
        var cross = _Cross(emaFast, emaSlow); // To determine the intersection status of indicators, for _Cross, please refer to: https://www.fmz.com/bbs-topic/9116
        if (mp <= 0 && cross > 1) {
            Log(pair, "Buy, Golden Cross period", cross, "mp:", mp);
            return 0.1 * (mp < 0 ? 2 : 1)  // The value returned is the number of positions to be opened, a positive number is to open a long position, a negative number is to open a short position, and 0 is to close all positions.
        } else if (mp >= 0 && cross < -1) {
            Log(pair, "Sell, Bearish Crossover period", cross, "mp:", mp);
            return -0.1 * (mp > 0 ? 2 : 1)
        }
    })
}

img

Pour plus d'informations sur le code source et la bibliothèque de classes, veuillez consulter:https://www.fmz.com/strategy/57267.


Relationnée

Plus de