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

 
Valeriy Yastremskiy #:
Une nouvelle barre apparaît si iTime != OldTime alors Alerte et OldTime =iTime sur décalage/barre zéro.

quelle valeur doit être écrite dans OldTime? O_o

La flèche elle-même est dessinée au moment où la barre de zéro s'ouvre.

J'ai posé cette condition.

 if(iTime(NULL,0,0)!=iTime(NULL,0,1))
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol());
      }

Il ne fonctionne pas correctement - même dans le testeur, il y a beaucoup d'alertes dans le journal.

if(iTime(NULL,0,1)!=iTime(NULL,0,0))
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol());
      }

je reçois aussi un tas d'alertes - je ne sais pas comment écrire ce truc((((

 
DanilaMactep #:

quelle valeur doit être écrite dans OldTime? O_o

La flèche elle-même est dessinée au moment où la barre de zéro s'ouvre.

J'ai posé cette condition.

Il ne fonctionne pas correctement - même dans le testeur, il y a beaucoup d'alertes dans le journal.

Je reçois également un tas d'alertes - je ne comprends pas comment écrire ce truc(((

 
static datetime OldTime=0;
if(iTime(NULL,0,0)!=OldTime)
      {
      Alert("ДИВЕРГЕНЦИЯ НА "+Symbol()); OldTime=iTime(NULL,0,0);
      }

Ainsi, lorsque vous démarrez, vous recevrez également une alerte. Lorsqu'une nouvelle barre apparaît,iTime(NULL,0,0) sera modifié et il n'y aura pas d'égalité une fois, puis il y aura égalité et le if sera faux.

Vous pouvez aussi le faire de cette façon.

static bool FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }

Ou nous pourrions obtenir une nouvelle barre sur n'importe quelle période.

bool FlagNewBarF(int prd, datetime &ArgBarTime,bool &FlagNbar)
  {
   FlagNbar=false;
   if(ArgBarTime!=iTime(NULL,prd,0))
     {
      ArgBarTime=iTime(NULL,prd,0);
      FlagNbar=true;
     }

   return(FlagNbar);
  }

L'appel serait le suivant

 if(FlagNewBarF(1, BarTime1,FlagNewBar1))
     {
      Alert("FlagNbar1 ",FlagNewBar1,"BarTime1 ",TimeToStr(BarTime1,TIME_DATE|TIME_SECONDS));
      
     }

   if(FlagNewBarF(5, BarTime5,FlagNewBar5))
     {
      Alert("FlagNbar5 ",FlagNewBar5,"BarTime5 ",TimeToStr(BarTime5,TIME_DATE|TIME_SECONDS));
     
     }
 
Valeriy Yastremskiy #:

De cette façon, il y aura également une alerte lors du chargement. Lorsqu'une nouvelle barre apparaît,iTime(NULL,0,0) sera modifié et il n'y aura pas d'égalité une fois, puis il y aura égalité et le if sera faux.

Merci beaucoup pour votre aide - je l'ai vissé - il a donné 1 alerte à la compilation - voyons ce qui se passe ensuite :-)
 

"New bar" est un mal, à cet événement vous pouvez obtenir des données de l'indicateur "last bar" c'est-à-dire newbar-1.

Si vous exécutez 3 terminaux sur un serveur et, en fonction de la fréquence de trading, le signal saute dans certains terminaux, c'est-à-dire qu'avant d'envoyer l' impression du jeu d'ordres (signal d'achat par exemple), et la valeur d'impression de l'indicateur montrera la valeur de la barre précédente.

Bien sûr, vous pouvez effectuer quelques vérifications...

 
Valeriy Yastremskiy #:
Le dossier général des méta-citations est le dossier du terminal, il contient les dossiers généraux du terminal, là les logs du terminal, les données et le dossier du testeur, il a ses propres logs et dossiers de fichiers. Le dossier mcl contient les logs des EAs, des scripts, des indicateurs, des fenêtres, des sous-fenêtres.
tout. Spc. Hier, je l'ai nettoyé. Je vais le vérifier à nouveau aujourd'hui. J'ai nettoyé 30 Go. A partir d'une dizaine de terminaux et d'un historique portant essentiellement sur des outils et des rondins...
 
Artyom Trishkin:

Dans ce fil de discussion, je veux commencer à aider ceux qui veulent vraiment comprendre et apprendre la programmation dans le nouveau MQL4 et qui veulent passer facilement à MQL5 - les langages sont très similaires.

Ce blog sera un bon endroit pour discuter des problèmes, des algorithmes de leur solution et de toute autre question concernant la programmation MT d'une manière ou d'une autre.

J'espère que d'autres membres expérimentés de notre forum se joindront à la discussion et que la branche sera intéressante pour tous.

Bonjour, personne ne peut m'aider avec la fonction d'ordre de fermeture, j'essaie ce qui suit,

for (int i=1 ; i<=OrdersTotal() ; i++)

{

si(OrderSelect(i-1,SELECT_BY_POS)==true)

{

si( Ask<= OrderOpenPrice())CloseBay() ;

}

}

Lorsque l'Ask est au-dessus de la baie d'ordre, tout va bien, dès que l'Bid devient au-dessus de la baie d'ordre, l'ordre est supprimé, et devrait être supprimé lorsque l'Ask est en dessous du prix ouvert. Veuillez m'aider, je vous en serai très reconnaissant. Sincèrement Alexander.

 
Alexandr Spravchikov #:

Bonjour, personne ne peut m'aider avec la fonction de clôture de l'ordre, j'essaie de cette façon,

Avez-vous essayé de cette façon ?

void CloseBuy()
{
   for(int i= OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if((OrderSymbol()==_Symbol) && (OrderMagicNumber()==Magic) && (OrderType()==OP_BUY))
         {
            if( Ask<= OrderOpenPrice())
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Green))
            {
               Print("Error closing a buy order!"+  IntegerToString(_Period,0) +" Error code = " + IntegerToString(GetLastError(),0));
            }
         }
      }
   }
   return;
}
 

Salutations. Pouvez-vous m'indiquer comment faire une requête Trade Api pour "BTCUSDT" afin d'indiquer le nombre de lots non pas en BTC mais en USDT ?

 

Bonjour à tous ! Un conseil, s'il vous plaît.


L'idée est simple. Écrire un EA qui ouvrira une position et fermera la position opposée lors du franchissement d'une des frontières du canal global. Le canal est construit par l'indicateur.

J'ai réalisé une variante en utilisant les guides Internet. Ce robot ouvre/ferme des positions dans le testeur de stratégie, mais si vous regardez le graphique, il ne répond pas du tout à mes conditions. J'ai essayé toutes les variables du tampon et vérifié les erreurs. Je n'ai obtenu aucun résultat.


Si quelqu'un peut, s'il vous plaît, me conseiller ce qui ne va pas, dans quelle direction creuser. :3


J'ai joint un fichier avec les variables du tampon, la démonstration de l'indicateur, ses variables initiales, ma variante d'Expert Advisor.

Dossiers :
9.png  14 kb
f2.png  26 kb
second.mq4  15 kb
 
E1Macho1 #:

Bonjour à tous ! Pouvez-vous me donner un indice, s'il vous plaît ?

Quel chemin prendre. :3

Creuser dans le sens de l'utilisation du débogueur