Discussion de l'article "Développer un Expert Advisor à partir de zéro (partie 11) : Système d’ordre croisés"

 

Un nouvel article Développer un Expert Advisor à partir de zéro (partie 11) : Système d’ordre croisés a été publié :

Dans cet article, nous allons créer un système d’ordres croisés. Il existe un type d'actifs qui rend la vie des traders très difficile : les contrats à terme. Mais pourquoi ?

L'image de gauche est un contrat à terme (future) typique. Il s'agit ici du MINI DOLLAR FUTURE, qui a commencé il y a quelques jours, comme on peut le voir sur le graphique. Le graphique de droite montre le même contrat et contient des données supplémentaires représentant les valeurs des contrats expirés, de sorte que le graphique de droite est un graphique historique. Le graphique de droite est plus adapté à l'analyse des niveaux de support et de résistance. Mais un problème se pose pour le trading. Voici :

          

Auteur : Daniel Jose

 

Félicitations pour cet excellent article, Daniel.


Je pense que le seul problème se posera au tournant de l'année, lorsque la fonction "CurrentSymbol" devra rechercher le nom du symbole de l'année suivante. Il me semble que la valeur de i1 renverra toujours le numéro de l'année en cours (22), mais en décembre nous commençons déjà à utiliser le symbole se terminant par 23.


 
Guilherme Mendonca nom du symbole de l'année suivante. Il me semble que la valeur de i1 renverra toujours le numéro de l'année en cours (22), mais en décembre nous commençons déjà à utiliser le symbole se terminant par 23.


En réalité, ce problème ne se pose pas et c 'est la raison pour laquelle la boucle se termine par.....

                                for (int i0 = 0, i1 = mdt1.year - 2000;;)
                                {
                                        m_Infos.szSymbol = StringFormat("%s%s%d", sz0, StringSubstr(sz1, i0, 1), i1);
                                        m_Infos.szFullSymbol = StringFormat("%s%s%d", sz2, StringSubstr(sz1, i0, 1), i1);
                                        if (i0 < StringLen(sz1)) i0++; else
                                        {
                                                i0 = 0;
                                                i1++;
                                        }
                                        if (macroGetDate(dt) < macroGetDate(SymbolInfoInteger(m_Infos.szSymbol, SYMBOL_EXPIRATION_TIME))) break;
                                }

Ce n'est que lorsque cette condition est remplie que la boucle se termine, et la valeur de i1 sera toujours incrémentée... ainsi, lorsque l'année est modifiée, l'actif est automatiquement modifié ....

 
Daniel Jose #:

En fait, ce problème ne se produira pas et c'est la raison pour laquelle le TIE se termine.....

Ce n'est que lorsque cette condition mise en évidence est atteinte que la boucle se termine, et la valeur de i1 sera toujours incrémentée... ainsi, lorsque l'année est changée, l'actif est modifié automatiquement ....

Vous avez raison.

Je n'avais pas fait attention à la ligne incrémentant la valeur de i1.