Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1354

 
Aleksey Verbin:

Bonjour, j'ai un problème.

J'ai des hiéroglyphes à la place des lettres russes.J'ai essayé de changer les paramètres régionaux, mais ça n'a pas aidé. Connaissez-vous des méthodes de travail ?

Où ?
 

Bonsoir à tous !

J'ai une situation dans mon EA. Le conseiller expert ne détermine pas si une transaction se trouve dans un symbole ou non.

Je ne sais pas comment le réparer, car je veux qu'il analyse les transactions pour un certain symbole. Je veux qu'il soit plus précis ! Je ne trouve pas cette fonction (( !)

J'ai essayé d'écrire une telle fonction :

si(OrderSymbol() != "EURUSD")

{

......

}

 
михаил мосинзов:

Bonsoir à tous !

J'ai une situation dans mon EA. Le conseiller expert ne détermine pas si une transaction se trouve dans un symbole ou non.

Je ne sais pas comment le réparer, car je veux qu'il analyse les transactions pour un certain symbole. Je veux qu'il soit plus précis ! Je ne trouve pas cette fonction (( !)

J'ai essayé d'écrire une telle fonction :

si(OrderSymbol() != "EURUSD")

{

......

}

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.03.2008                                                     |
//|  Описание : Возвращает флаг существования позиций                          |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время открытия)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal();
 
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (ot<=OrderOpenTime()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
 
михаил мосинзов:

Bonsoir à tous !

J'ai une situation dans mon EA. Le conseiller expert ne détermine pas si une transaction se trouve dans un symbole ou non.

Je ne sais pas comment le réparer, car je veux qu'il analyse les transactions pour un certain symbole. Je veux qu'il soit plus précis ! Je ne trouve pas cette fonction (( !)

J'ai essayé d'écrire une telle fonction :

si(OrderSymbol() != "EURUSD")

{

......

}

vérifier en boucle chaque commande par rapport à la magie et au symbole

... Dans quel langage avez-vous écrit votre EA, MQL4 ou MQL5 ?

 
Quelle est l'intensité des ressources de la fonction
 Sleep() 

Dans les services, vous voulez qu'ils soient exécutés une fois par heure. Est-ce la bonne solution ou est-il préférable de faire autre chose ?

 

Pourquoi le terminal ne tient-il pas compte de tous les ticks ?

datetime st = 0;
int tics = 0;

//---------------------------------------------------------

ArraySetAsSeries(time,true);
   ArraySetAsSeries(tick_volume,true);
   
   if(prev_calculated == 0) st = time[0];
   
   else if(time[0] != st)
     {
      tics++;
      Alert("T - ",tics," TV - ",tick_volume[0]);
     };


C'est juste que j'ai écrit un grand tableau de calculs et il est important pour moi de savoir combien de ticks sont calculés / manqués.

* C'EST IMPORTANT, car il s'agit d'une stratégie scalper.

 
BillionerClub:
Quelle est l'intensité des ressources de la fonction

dans les services qui veulent être exécutés une fois par heure ? est-ce la bonne solution ou est-il préférable de faire autre chose ?

Mieux comme suit

if(TimeMinute(time[i])==0)
 

Bonjour à tous ! J'ai demandé quelque part plus haut, dois-je supprimer la vérification d'une nouvelle barre pour que l'EA soit exécuté sur les ticks ? On m'a dit que tout devait être vérifié par des tics pour un véritable commerce. À cet égard, j'ai la question suivante. Si la transaction réelle sera exécutée par ticks, les ordres sont ouverts de cette manière maintenant.

void OnTick()
{
//--- АО БАЙ--

   /*УСЛОВИЕ 1*/
   if(flag_screen1==en_vbIkl_screen1 &&flag_screen2==en_vbIkl_screen2)
   { // НАЧАЛО УСЛОВИЕ 1
   if(ao_buy!=EMPTY_VALUE && count_orders_market_buy ==0)
   {
    if(OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl,Bid+tp ,comment_ao_market_buy)) Print("Buy Open"); // ОТКРЫВАЕМ БАЙ ОРДЕР
   }
   } // КОНЕЦ УСЛОВИЕ1


}

Il s'avère que si quelque chose ne va pas, mon conseiller expert va taper sur le serveur à chaque tick et mon compte sera simplement déconnecté de l'auto-trading parce que je ne peux pas bien le comprendre. Quel type de contrôle dois-je faire et comment dois-je le faire, de sorte que si je fais une erreur ou que quelque chose de mal se produit, mon EA ne pilonnera pas le serveur et je ne serai pas banni pour de telles choses ? S'il vous plaît dites-moi ce que l'essence de ce contrôle et comment il fonctionne en mots, et puis le code avec des commentaires s'il vous plaît envoyer. P / S s'il vous plaît ne pas passer par des personnes bien informées, et le même pour aider frère graal dopilivit ;-) Oh_o))))))))

 
DanilaMactep:

Bonjour à tous ! J'ai demandé quelque part plus haut, dois-je supprimer la vérification d'une nouvelle barre pour que l'EA soit exécuté sur les ticks ? On m'a dit que tout devait être vérifié par des tics pour un véritable commerce. À cet égard, j'ai la question suivante. Si la transaction réelle sera exécutée par ticks, les ordres sont ouverts de cette manière maintenant.

Il s'avère que si quelque chose ne va pas, mon conseiller expert va taper sur le serveur à chaque tick et mon compte sera simplement déconnecté de l'auto-trading parce que je ne peux pas bien le comprendre. Quel type de contrôle dois-je faire et comment dois-je le faire, de sorte que si je fais une erreur ou que quelque chose de mal se produit, mon EA ne pilonnera pas le serveur et je ne serai pas banni pour de telles choses ? S'il vous plaît dites-moi ce que l'essence de ce contrôle et comment il fonctionne en mots, et puis le code avec des commentaires s'il vous plaît envoyer. P / S s'il vous plaît ne pas passer par des personnes bien informées, et le même pour aider frère graal dopilivit ;-) Oh_o))))))))

Tout d'abord, déterminez combien d'ordres vous devez ouvrir lorsque la condition

comment il est calculé

count_orders_market_buy 
 
DanilaMactep:

J'ai demandé quelque part plus haut, est-il nécessaire de supprimer la vérification d'une nouvelle barre pour que tout soit exécuté sur les ticks ?

Non, ce n'est pas le cas. Comme vous l'avez fait pour la démo, utilisez-la. Assurez-vous que votre EA envoie correctement les ordres de trading et répond correctement aux codes d'erreur du serveur.