[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 172

 
tpg_k156:
Bon après-midi. Une question m'intéresse : est-il possible d'installer deux Metatraders en parallèle, mais sans bousiller le premier. Y a-t-il des risques de conflits entre eux ? Quelles sont les particularités de leur environnement ? J'ai besoin d'une telle chose pour surveiller simultanément une paire de comptes sans aucune manipulation de reconnexion.
Il faut mettre les terminaux dans différents dossiers - vous pouvez en mettre autant que vous voulez. Il n'y aura pas de conflits ni de problèmes.
 
Où serait-il plus correct d'insérer une fonction pour vérifier le commerce
if( IsTradeAllowed() != true ){ return(0); }
Int start() ou int init() ?
 
ruslanchik:
Où serait-il plus correct d'insérer une fonction pour vérifier le commerce
Int start() ou int init() ?
Comme vous voulez (dans le sens de "l'auteur sait mieux que quiconque") ! !! MAIS - si vous y réfléchissez... :)
 

Voici la fonction :

  for (int i=0; i<2; i++)
   {
      signal[i] = SIGNAL_NO;
      
  //    if (UseFiltrMa == false && A > B) continue;
      if (1-ое условие) 
          if (2-ое условие)
          {
            signal[i] = SIGNAL_BUY;
          }

Il y avait une fonction avec la condition 1 et la condition 2. Tout fonctionne. Maintenant, je dois en quelque sorte ajouter une condition au code, que j'ai commenté. Voici l'essentiel :

Il existe une variable booléenne externeUseFiltrMa. SiUseFiltrMa est à True, ce filtre est pris en compte, c'est-à-dire la conditionA > B, et siUseFiltrMa est à False, il n'est pas pris en compte. Comment cela peut-il être fait ?

La difficulté est que la condition doit être exactement dans cette position. Pas ailleurs.

 
Chiripaha:

À en juger par le manque de réponses, soit la question est trop stupide, soit il n'y a pas de réponse. Ou, alternativement, mal demandé.

Corrigez-moi si c'est le cas.

Essayez de décocher "Disable EA on profile change" dans les paramètres, voyez si cela peut aider.
 
hoz:

Voici la fonction :

Il y avait une fonction avec la condition 1 et la condition 2. Tout fonctionne. Maintenant, je dois en quelque sorte ajouter une condition au code, que j'ai commenté. Voici l'essentiel :

Il existe une variable booléenne externeUseFiltrMa. SiUseFiltrMa est à True, ce filtre est pris en compte, c'est-à-dire la conditionA > B, et siUseFiltrMa est à False, il n'est pas pris en compte. Comment cela peut-il être fait ?

La difficulté est que la condition doit être exactement dans cette position. Pas ailleurs.

Pourquoi mettre le signal dans le tableau ? - A des fins de formation ??? Le signal peut être ACHAT et VENTE en même temps ? ??? :)))
 
TarasBY:
Pourquoi mettre le signal dans le tableau ? - A des fins de formation ??? Le signal peut être ACHAT et VENTE en même temps ? ??? :)))

Non. Juste des signaux avec une magie différente. Donc un tas de lingettes... le signal dans des conditions différentes a une magie différente. C'est simple. Tout fonctionne très bien. Mais j'ai décidé d'ajouter un autre filtre. Maintenant, je suis logiquement coincé... C'est pourquoi je demande.
 
hoz:

Non. Juste des signaux avec des magies différentes. Donc un paquet de mash-ups... le signal dans différentes conditions a une magie différente. C'est simple. Tout fonctionne très bien. Mais j'ai décidé d'ajouter un autre filtre. Maintenant, je suis logiquement coincé... C'est pour ça que je demande.

Cette condition change en quelque sorte dans la boucle :

//    if (UseFiltrMa == false && A > B) continue;
...Si non, pourquoi le mettre dans la boucle ?
 
TarasBY:
Pourquoi avons-nous besoin d'inclure le signal dans le tableau ? - A des fins de formation ? Un signal peut-il être ACHAT et VENTE en même temps ? :)))


Non. Juste des signaux avec une magie différente. Donc un tas de lingettes... le signal dans des conditions différentes a une magie différente. C'est simple. Tout fonctionne en fait. Mais j'ai décidé d'ajouter un autre filtre. Maintenant, je suis logiquement coincé... C'est pour ça que je demande.

TarasBY:
Un signal peut-il être ACHAT et VENTE en même temps ? :)))

En fait, oui, d'une certaine manière, dès qu'il y a un signal, il s'ouvre immédiatement. Il peut y avoir plusieurs commandes en même temps. Chacun a un arrêt et un TP. Mais il ne peut y avoir de limite au nombre d'ordres. Là encore, cette valeur est fixée par la variable externe.

 
TarasBY:

Cette condition change en quelque sorte dans la boucle :

...Si "non", pourquoi le mettre dans la boucle ?


Eh bien, l'essentiel est ceci :

Dans les paramètres externes, siUseFiltrMa = TRUE, la condition A > B doit être prise en compte, mais siUseFiltrMa = False, la condition n'est pas prise en compte. Cette condition(A > B) n'apparaît pas ailleurs dans le code. J'ai mis ce filtre à l'intérieur de la boucle puisqu'il était aussi dans la boucle avant. Après tout, nous avons un tableau de tranches. La boucle sélectionne un numéro de séquence d'un masque (son index).

A > B, selon mon code, ressemble à ceci :

MA(g_maHigherTF[0]) > MA(g_maHigherTF[1])

Vous voyez, tout se met en place ici, et vous pouvez voir la raison de la boucle.

Raison: