[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 52

 

Voici ma fonction de modification de l'ordre en attente. Lors de la modification, je fixe un nouveau prix et un nouveau stoploss. La fonction fonctionne partiellement, mais pour une raison quelconque, le testeur obtient des erreurs 1.

Ma fonction est-elle écrite correctement ?

void MovingPendingOrders(/*int ticket, double newPrice*/)
{
  double priceS = NormalizeDouble((Low[1] - i_thresholdFromInput*pt),Digits);           // Новая цена открытия для OP_SELLSTOP
  double priceB = NormalizeDouble((High[1] + i_thresholdFromBasedSL*pt),Digits);        // Новая цена открытия для OP_BUYSTOP
  bool b_mod, s_mod;
  
  int total = OrdersTotal() - 1;
  int s_ticket, b_ticket;

  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() != i_myMagic) continue;
      {
        if(OrderType() == OP_BUYSTOP)
        {
          b_ticket = OrderTicket();
          b_mod = true;
        }
        if(OrderType() == OP_SELLSTOP)
        {
          s_ticket = OrderTicket();
          s_mod = true;
        }
      }
  }
  
  if(IsTradeAllowed())
  {
    if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
    if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);
  }
  Print("MovingPendingOrders переоткрыл ордер по новой цене");
}
 
hoz:

Ma fonction est-elle écrite correctement ?

 bool b_mod = false; 
 bool s_mod = false;
 
hoz:

Voici ma fonction de modification de l'ordre en attente. Lors de la modification, je fixe un nouveau prix et un nouveau stoploss. La fonction fonctionne partiellement, mais pour une raison quelconque, le testeur obtient des erreurs 1.

Ma fonction est-elle écrite correctement ?

...et à chaque tic tu modifies encore et encore. ? !
 
BeerGod:

Comment faire pour qu'un EA affiche un commentaire au dessus d'un cadre qui recouvre le graphique pour le rendre lisible ? J'ai vu que cela était implémenté mais je ne sais pas comment.

Je ne sais pas comment faire maintenant :

Ça devrait être comme ça :

On devrait utiliser une sorte de police. Peut-être même créer le vôtre.
 
silatyt:
...et à chaque tic tu modifies encore et encore. ? !

Je ne savais pas où le mettre, je me suis trompé dans la logique de l'Expert Advisor par inexpérience. Pour vérifier le fonctionnement, je l'ai mis dans le démarrage... Oui, c'était à chaque fois, d'où l'erreur. Ensuite, après la fonction définissant une nouvelle barre, je l'ai mise en place et j'ai corrigé le code commeTheXpert me l'a dit et tout s'est passé comme il le fallait.
 

Bon après-midi. Pourriez-vous me dire à quoi devrait ressembler un morceau de code EA responsable de ce qui suit :

1. Passe en revue les paramètres un par un (dans une plage donnée, par exemple de 10 à 20) de l'indicateur, sur lequel l'EA est basé, jusqu'à ce que la condition d'ouverture de la transaction ne soit pas remplie.

2. Si la condition après la recherche n'est pas remplie - attendez 5 minutes.

 
Bon après-midi. Savez-vous s'il est possible d'envoyer l'exécution de code de la ligne 35 à la ligne 18 (lignes par exemple) avec les outils standards de mql4. Une sorte de saut dans le code.
 
tpg_k156:
Bon après-midi. Savez-vous s'il est possible d'envoyer l'exécution de code de la ligne 35 à la ligne 18 avec les outils standards de mql4 (lignes par exemple). Une sorte de saut dans le code.

Commutateur d'opérateurs / si - sinon

et fonctions

 
sergeev:

opérateurs switch / if - else

et fonctions



il est donc possible de forcer le même corps de fonction à s'exécuter à nouveau ? comme par exemple
int Gipo()                   // Пользовательская функция  
{
всякая фигня
if(получили-что-надо)
 {
 return(что-надо);
 }
else
 {
 Gipo();
 }
}
???
 
tpg_k156:

il est donc possible de forcer le même corps de fonction à s'exécuter à nouveau ? comme par exemple


Oui. Ça s'appelle la récursion.



Raison: