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

30 lignes de code vous emmènent dans le monde de l'investissement quantitatif

Créé le: 2016-04-06 10:17:26, Mis à jour le: 2020-01-13 15:17:11
comments   13
hits   7394

Stratégie de 30 lignes pour créer un système de gains positifs

C’est vrai ! Vous avez bien entendu, c’est 30 lignes de code ! J’ai l’habitude d’écrire 30 lignes de code et de regarder le code en entier pour avoir une vue d’ensemble !

Les paramètres de la stratégie sont les suivants:

paramètre décrire taper Par défaut
FastPeriod Cycle de mise sur le marché Type de chiffre 3
SlowPeriod Cycle d’entrée sur le marché Type de chiffre 7
EnterPeriod Période d’observation Type de chiffre 3
ExitFastPeriod Cycle de ligne rapide hors de la ville Type de chiffre 3
ExitSlowPeriod Cycle de délocalisation Type de chiffre 7
ExitPeriod Période d’observation Type de chiffre 1
PositionRatio Pourcentage de positions Type de chiffre 0.8
Interval Cycle de sondage (s) Type de chiffre 10

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

  • Il a été importé.交易类库C’est facile de faire des stratégies sans avoir à faire des listes pour savoir si on va acheter ou vendre.
  • Si vous êtes confus en lisant le code et que vous trouvez des variables non déclarées, répondez en groupe.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • Cette stratégie n’a qu’une seule fonction principale main () et aucun autre module de la fonction. Il n’y a qu’une seule boucle dans la fonction principale.
  • J’ai publié une version annotée du code de cette stratégie dans le groupe QQ, et les étudiants débutants peuvent voir les annotations pour faciliter leur apprentissage.
  • Il n’y a pas de groupe officiel de QQ ici, veuillez vous joindre: 309368835 Inventeur de Quantitative EA Communication (original BotVS). La stratégie est simple: quelques dizaines de lignes de code !
  • Pour les étudiants qui n’ont pas de base en JavaScript, nous allons vous expliquer la grammaire pour éviter qu’ils ne comprennent pas le code.

Déclaration de la variable

En utilisant des mots clésvar+ Nom de la variable, par exemplevar name = “小明”

Le cycle

while(循环条件){
    // 将会重复执行的代码
}

Si la condition de cycle est vraie, le code est exécuté de manière répétée dans {}. Si la condition de cycle est fausse, le code sort du cycle.

Branche conditionnelle

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

C’est très simple, la traduction est si (true) (exécuter ce code) et si (exécuter ce code)

Attribuer une valeur

Une seule.=Le nombre est une attribution, par exemple.

name = “张三”;

C’est en donnant un nom à un nom que l’on confond une valeur avec une équivalence. C’est une comparaison==Deux chiffres égaux. Des exemples“张三”==“李四”Il est clair que Zhang Tsé n’est pas Li Qi.“张三”==“李四”Pourquoi ?

API liée

Avant de démontrer et d’écrire une stratégie, nous avons examiné les API et les fonctions d’exportation de modèles utilisés dans la stratégie. La documentation de l’API et le code source du modèle sont détaillés dans le document Inventor Quantum.

  • Fonction $.GetAccount: une fonction d’exportation de modèle utilisée pour obtenir des informations sur les comptes d’échanges
  • Fonction log: API, utilisée pour exporter des informations vers le journal, afficher des valeurs, etc.
  • $.Cross: Fonction d’exportation du modèle pour détecter le croisement des indicateurs de la ligne moyenne
  • Fonction $.Buy: fonction d’exportation du modèle pour les opérations d’achat
  • Fonction $.Sell: une fonction d’exportation de modèle utilisée pour les opérations de vente
  • Fonction LogProfit: API, utilisée pour la sortie des bénéfices, la fonction peut ajouter d’autres informations à partir du deuxième paramètre
  • La fonction Sleep: API, qui permet à un programme de s’arrêter pendant un certain temps, est unité de paramètre en millisecondes.

Le code de la stratégie utilise également les fonctions de bibliothèque et les méthodes d’objets de Javascript.

  • Math.abs() fonction: renvoie la valeur absolue du paramètre
  • La fonction toFixed () de l’objet Number: conserve les nombres décimaux par paramètre. Notez que la fonction renvoie une chaîne de caractères
  • parseFloat fonction globale: renvoie le nombre de floats des arguments de chaîne de caractères.

Vous trouverez plus d’informations à ce sujet sur le site JavaScript Number Objects http://www.w3school.com.cn/jsref/jsref_obj_number.asp

Le schéma du programme est dessiné à la main sans utiliser d’outils, c’est très amateur.

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

Notre stratégie, pas à pas

Toutes les entrées des programmes de stratégie sont des entrées de type “c’est une erreur”.main()La fonction, c’est-à-dire la stratégie, est exécutée en commençant par la fonction main.

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

Offre ferme

Nous avons déployé le code sur un robot hôte, nous avons créé un système de gestion de base de données, nous avons créé un système de gestion de base de données, nous avons créé un système de gestion de base de données, nous avons créé un système de gestion de base de données. La stratégie de Running! est en cours d’exécution.

30 lignes de code vous emmènent dans le monde de l’investissement quantitatif

Merci à InventorQuantum pour ce code simple, il y a beaucoup de stratégies open source sur InventorQuantum que vous pouvez apprendre et améliorer, et progresser avec beaucoup d’experts en quantification.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

Accompagnement par des vidéos

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

À lire