Vérifiez - qu'est-ce que j'ai fait de mal ? - page 7

 
Natalya Smirnova #:

Veuillez me conseiller sur la manière de l'écrire joliment. Afin de ne pas dupliquer les tableaux de codes.
Le conseiller expert utilise 2 indicateurs.
et les conditions d'ouverture de l'ordre ressemblent maintenant à ceci :


Mais je voudrais ajouter le filtre
Utiliser ou non 1 ou 2 indicateurs
Seulement je ne sais pas comment l'implémenter plus correctement.
Cela ressemblerait à ceci :

Que je peux désactiver un indicateur ou un deuxième indicateur dans les paramètres.
Je n'arrive pas à trouver comment le faire sans copier beaucoup de code. .....


extern bool ind1=true;
extern bool ind2=true;

void OnTick(){

        bool buy1=true;
        bool sell=true;
        if(ind1){
                buy1=...
                sell2=...
        }

        bool buy1=true;
        bool sell=true;
        if(ind2){
                buy2=...
                sell2=...
        }       


        bool buy=buy1&&buy2;
        bool sell=sell1&&sell2;
}

Un inconvénient : si tous les indicateurs sont désactivés, les signaux existent toujours. Si c'est important, vous pouvez faire un check in inite et interdire le démarrage de l'expert. Mais le plus souvent, il y a un indicateur qui n'est pas désactivé, et il n'y a donc aucun problème.

 
Dmitry Fedoseev #:


Un inconvénient : si tous les indicateurs sont désactivés, il y a toujours des signaux. Si c'est important, vous pouvez faire une vérification dans l'inite et désactiver l'EA. Mais le plus souvent, il y a un indicateur qui n'est pas désactivé, et il n'y a donc aucun problème.


Elle est résolue par l'initialisation des variables buy1, sell1, buy2, sell2.

extern bool ind1 = true;
extern bool ind2 = true;

void OnTick() {

        bool buy1 = ind1 || ind2;
        bool sell1 = ind1 || ind2;
        if( ind1 ) {
                buy1 = ...
                sell2 = ...
        }

        bool buy2 = ind1 || ind2;
        bool sell2 = ind1 || ind2;
        if( ind2 ) {
                buy2 = ...
                sell2 = ...
        }       


        bool buy = buy1 && buy2;
        bool sell = sell1 && sell2;
}
 

Tout ceci est une sorte d'éloquence.

Tout d'abord, vous devez disposer d'un système de trading performant, puis, si vous ne le souhaitez pas, vous pouvez le rendre agréable et ordonné ... si vous voulez...

Combien de tentatives seront faites - des milliers, des dizaines de milliers, comme par hasard...

Mais il est loin d'être certain que cela se produira.

C'est pourquoi une "belle" charge cérébrale au stade initial du développement d'un système de trading ne sert à rien.

Et les commentaires éloquents, sans aucun succès commercial, sur le thème "faites comme moi" ou "regardez comment je peux programmer" ne sont rien d'autre que des flirts qui n'ont absolument aucune valeur sur le marché financier.

;)