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

 
Graall:

Merci, j'ai collé ce code dans EA, la compilation donne '(' - function definition unexpected après bool ExistOrders, il y a une parenthèse supplémentaire ou quelque chose...


Retirer la fonctionExistOrders de la fonction start .
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

Oui, j'ai compris, la fonctionExistOrders est une fonction personnalisée, je l'ai retirée de la fonction de démarrage, l'erreur est la même, elle se bat contre quelque chose dans la première partie de l'EA, je la colle complètement.


//+------------------------------------------------------------------+

//| 1.mq4 |
//| Oleg 2013 |
//| |
//+------------------------------------------------------------------+
#define Magic 123

//--- paramètres d'entrée
extern int TakeProfit = 100 ;
extern double Lots = 0.1 ;
extern int Shag = 100 ;
string sy ;
int ty ;
int op ;
int mn ;
int k ;
int i ;
//--------------------------------------------------------------------------------------------
int start()
{
// recherche du premier élément zéro
int total=OrdersTotal() ;
si (total==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red) ;
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,",123,0,Blue) ;
for (int i=0;i<OrdersTotal();i++)//Voir tous les ordres ouverts
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;
si ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0) ;
si ( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0) ;
}
}
for (int k=0;k<OrdersTotal();k++)//Voir parmi tous les ordres ouverts
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES) ;
si (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red) ;

//----
retour(0) ;
}
//+------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty ;
si (sy=="0") sy=Symbole() ;
pour (i=0 ; i<k ; i++)
{
si (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType() ;
si (ty<6)
{
si ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
si (mn<0 || OrderMagicNumber()==mn) return(True) ;
}}}} retourner(Faux) ;
}
 
Graall:



Vérifiez l'appariement des parenthèses {} (avec soin). L'erreur signifie qu'il manque au moins une fermeture dans la fonction start ().
 
alsu:

Vérifiez l'appariement des crochets {} (avec soin). L'erreur signifie qu'il manque au moins une fermeture dans la fonction start ().


à droite, après

for (int k=0;k<OrdersTotal();k++)//Regardez parmi tous les ordres ouverts

{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES) ;
si (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,",123,0,Red) ;

manqués } Merci !

 
Bonjour, mon heure dans le terminal ne coïncide pas avec l'heure réelle, maintenant si je mets le curseur sur la bougie M5 montre 18.45, et en fait en Ukraine 19.45, comment changer l'heure ?
 
sanktum:
Bonjour, mon heure dans le terminal ne coïncide pas avec l'heure réelle, maintenant si vous survolez le chandelier M5 montre 18.45, mais en fait en Ukraine 19.45, comment changer l'heure ?

Aucun. L'heure sur les chandeliers est l'heure du serveur.

 

Bon après-midi.

J'écris des données dans un fichier à chaque ouverture d'une nouvelle barre:

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

J'ai besoin d'un indicateur pour lire ces données et construire un graphique sur les intervalles de temps enregistrés.

Je veux avoir un indicateur qui lit ces données et les trace sur le graphique à chaque ouverture d'une nouvelle barre.

 

J'ai installé MT4 (Version : 4.00 Build 451) et j'ai remarqué que dans le dossier Experts Logs il n'y a qu'un seul fichier daté du jour de l'installation du terminal, c'est-à-dire le 13. Pas d'autres fichiers log, bien que j'aie allumé et éteint la plateforme à plusieurs reprises.

Tout commentaire sur ce phénomène serait apprécié.

 
Geowind64:

J'ai installé MT4 (Version : 4.00 Build 451) et j'ai remarqué que dans le dossier Experts Logs il n'y a qu'un seul fichier daté du jour de l'installation du terminal, c'est-à-dire le 13. Pas d'autres fichiers log, bien que j'aie allumé et éteint la plateforme à plusieurs reprises.

Tout commentaire sur ce phénomène serait apprécié.


Je dois exécuter au moins un expert/indicateur/script, ce sont ceux qui écrivent dans ce dossier.
 

Est-il possible que lorsque la communication avec le serveur est perdue/apparue, le Conseiller Expert se réinitialise lui-même ?

Le résultat est un échec épique. IsConnected n'a pas le temps pour le ping.

IsConnected n'a pas de temps. Y a-t-il un moyen de travailler avec ping ?

Raison: