Questions des débutants MQL5 MT5 MetaTrader 5 - page 1503

 
psihodelit #:

Comment comprendre dans quelle direction aller, par où commencer et comment. Je n'ai pratiquement aucune connaissance...

  1. Le code des deux Expert Advisors est-il disponible pour édition ?
    Oui.
  2. Les conseillers laissent-ils des traces de leur activité dans les variables globales ?
    Je ne peux pas le dire avec certitude.
  3. Possédez-vous au moins des compétences de base en codage
    Un peu du tout.

Tout d'abord, répondez à ces trois questions pour vous-même. Si vous ne pouvez pas répondre, vous devez remplir, étudier. Il s'agit de comprendre dans quelle direction aller.

Si l'essentiel de la question, vous avez besoin des dossiers des conseillers que vous voulez mélanger, ils vous montreront ce qu'il est possible de faire. Si vous ne pouvez ou ne voulez pas les télécharger, vous pouvez regarder les captures d'écran des endroits nécessaires.

 
Sergey Voytsekhovsky #:
Les Expert Advisors laissent-ils des traces de leur activité dans les Variables Globales
Je n'en suis pas sûr.

Commencez ici - Dans le terminal, dans le ruban, dans le dossier Tools, il y a un élément GlobalVariables. Trouvons-le.

 
Sergey Voytsekhovsky #:

C'est par là qu'il faut commencer - Dans le terminal, dans le ruban, dans le dossier Tools, il y a un élément GlobalVariables. Trouvons-le.

Il est vide.

 
Sergey Voytsekhovsky #:

C'est par là qu'il faut commencer - Dans le terminal, dans le ruban, dans le dossier Tools, il y a un élément GlobalVariables. Trouvons-le.

Si je vous comprends bien, je suis moi-même un ignorant. Il m'arrive de ne pas saisir une phrase ou une logique, même les plus simples. Et je suis constamment en train de demander et de lire. C'est pourquoi je vous rappelle. Vous m'avez aidé ici récemment, juste au-dessus - beaucoup, merci.

 
psihodelit #:
Il est vide.

Nous n'interrompons donc rien.

Ouvrez le code de l'EA dont les relevés vous intéressent. Vous avez écrit que l'autre conseiller devrait effectuer certaines actions en fonction des relevés du premier. C'est par là qu'il faut commencer.

Dans un endroit qui vous convient, préparez une ligne vide et tapez GlobalVariableCheck(), puis mettez en surbrillance et appuyez sur F1. La page d'information s'ouvrira, ce n'est pas difficile.

Et l'essence de l'idée incarnée - Créer une variable globale dans l'Expert Advisor qui traduit, et laisser celui qui reçoit lire à partir d'elle, à certaines lectures la condition sera déclenchée, et plus loin en fonction du scénario.

 
Sergey Voytsekhovsky #:
préparez une ligne vide et tapez GlobalVariableCheck(),

N'oubliez pas de l'effacer par la suite, c'était juste un moyen rapide d'obtenir l'aide nécessaire. Brûlez-le après l'avoir lu.

 

Bonjour, s'il existe une formule (code) pour le prix moyen pondéré d'ouverture d'une position sur un compte de couverture. Je vous remercie.

Je ne comprends pas, quelle est la formule pour fermer les cas de trades opposés ?

Pср = (Open Price 1 × Lot 1 + Open Price 2 × Lot 2 + ... + Open Price X × Lot X) / (Lot 1 + Lot 2 + ... + Lot X)

Celle-ci ne semble pas fonctionner ?

 
leonerd ouverture d'une position sur un compte de couverture. Je vous remercie.

Je ne comprends pas, quelle est la formule pour clôturer les cas de trades opposés ?

Celle-ci ne semble pas fonctionner ?

Je ne me souviens plus où je l'ai copiée, mais elle fonctionne bien.

   double NLb = 0, NLs = 0;

   long OT;
   int b = 0, s = 0;
   double PB = 0, PS = 0, OL = 0, LS = 0, LB = 0, OOP = 0;
   for(int i = 0; i < PositionsTotal(); i++)
     {
      if(_Symbol == PositionGetSymbol(i))
        {
         OL  = PositionGetDouble(POSITION_VOLUME);
         OOP = PositionGetDouble(POSITION_PRICE_OPEN);
         OT  = PositionGetInteger(POSITION_TYPE);
         if(OT == POSITION_TYPE_BUY)
           {
            PB += OOP * OL;
            LB += OL;
            b++;
           }
         if(OT == POSITION_TYPE_SELL)
           {
            PS += OOP * OL;
            LS += OL;
            s++;
           }
        }
     }
   if(LB != 0)
      NLb = PB / LB;
   if(LS != 0)
      NLs = PS / LS;

C'est la même chose que ce que vous avez écrit, seulement séparé par des indications de position.

Jepense que c'est ce dont vous avez besoin .

 
Aleksandr Slavskii #:

Je ne me souviens plus où je l'ai copié, mais il fonctionne bien.

C'est la même chose que ce que vous avez écrit, seulement séparée par des indications de position.

Jepense que c'est ce dont vous avez besoin .

Je ne comprends pas si c'est la même chose si vous prenez simplement les shorts avec un volume négatif et que vous additionnez les valeurs absolues dans le dénominateur ?

Vous voudrez peut-être ajouter une vérification de la division par 0 à la fin.

 
leonerd #:

Je ne comprends pas si c'est la même chose si l'on prend simplement les shorts avec un volume négatif et que l'on additionne les valeurs absolues dans le dénominateur ?

La fonction calcule le prix moyen séparément pour l'achat et séparément pour la vente.

Je ne comprends pas très bien votre tâche. Je ne comprends pas cette phrase : "fermer les cas de transactions opposées".

leonerd #:

Il serait bon d'ajouter une vérification de la division par 0 à la fin.

Il y a une vérification.