Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 570

 
dmitriyriy666:

Merci. A propos de TimeCurrent c'est vrai, mon heure ne correspond pas à l'heure du serveur. Je l'ai réparé, mais ça ne marche toujours pas... N'écrit pas d'erreurs dans le journal.


P.S. Dans mon message précédent, du code sans espace a été inséré. Mais je pense avoir mis toutes les accolades correctement.

Veuillez préciser si vous avez corrigé tout ce que j'ai écrit ou seulement TimeLocal() à TimeCurrent()
 
AlexeyVik:
Précisez, avez-vous corrigé tout ce que j'ai écrit ou seulement TimeLocal() vers TimeCurrent()

.

J'ai corrigé les strings en ints, supprimé les guillemets, et essayé sans décalage - juste au moment de traverser, et essayé avec iTime partout et là pour être. Je ne le comprends pas du tout. Maintenant, je l'ai réécrit pour ouvrir immédiatement la boucle après avoir trouvé le temps, et c'est ce que j'ai obtenu :

extern int Magic = 66622210;
extern double Lot = 400.0;
color Colorrr;
datetime Vremyaaa;
//datetime shi = 120;
color col = Black; 
int operacia;
//-
void OnTick()
{
   int AllObject = ObjectsTotal(); 
   for ( int i = 0; i < AllObject; i++)
   {
    int kolpos = 0;
    string NameObj = ObjectName(i); 
    Colorrr = ObjectGet(NameObj, OBJPROP_COLOR);
    Vremyaaa = ObjectGet(NameObj, OBJPROP_TIME);
    if((Colorrr == Green)||(Colorrr == Aqua)){operacia = OP_BUY;}
    if((Colorrr == Red)||(Colorrr == Purple)){operacia = OP_SELL;}
    if(Vremyaaa == TimeCurrent())
      {
       for (int pos = 0; pos < OrdersTotal(); pos++)
          {
           if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
             {
              if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
                {
                 kolpos++;
                }
             }   
          }
          
       if(kolpos == 0)
         {
           printf("otkrivaem order");
           int ticket = OrderSend(Symbol(), operacia, Lot, Bid, 10, 0, 0, "5", Magic, 0, col);
         }  
              
            
      }
    }
 
}

Peut-être est-ce parce que iTimeCurrent donne l'heure en secondes et glisse dans un temps pair ?

 

Existe-t-il une fonction ou une variable qui renvoie le statut d'arrêt forcé de l'EA (c'est-à-dire lorsque l'on appuie sur "Stop") en mode test?

 
dmitriyriy666:

J'ai corrigé les strings en ints, supprimé les guillemets, et je l'ai essayé maintenant sans shift - juste au moment de traverser, et j'ai essayé d'utiliser iTime partout et là pour le faire. Je ne le comprends pas du tout. Maintenant, je l'ai réécrit pour ouvrir immédiatement la boucle après avoir trouvé le temps, et c'est ce que j'ai obtenu :

Peut-être que le problème est que TimeCurrent donne le temps aux secondes et glisse même le temps ?

Oui, très probablement, je n'y ai pas prêté attention. Il vaut mieux définir Time[0] ou vous pouvez utiliser . plusieurs conversions TimeCurrent() de la chaîne de caractères en minutes et inversement de la chaîne de caractères en datetime
 
qomment:

Existe-t-il une fonction ou une variable qui renvoie le statut d'arrêt forcé de l'EA (c'est-à-dire lorsque l'on appuie sur "Stop") en mode test ?

IsStopped()
 
AlexeyVik:
Oui, je n'ai probablement pas fait attention à ça. Il vaut mieux mettre Time[0] ou vous pouvez passer par . plusieurs conversions TimeCurrent() de la chaîne de caractères en minutes et inversement de la chaîne de caractères en datetime


Time[0] n'a pas fonctionné non plus. J'ai besoin de temps sans secondes - comment y parvenir ? J'ai essayé if(Vremyaaa == TimeToString(TimeCurrent(), TIME_DATE|TIME_MINUTES)) ne fonctionne pas...
 
existe-t-il un indicateur de tick qui affiche l'heure de chaque tick au lieu d'afficher les ticks comme un mt4 normal ?
 

Bon après-midi,

Je reçois un avertissement pendant la compilation

perte éventuelle de données due à la conversion de type

sur la ligne :

int Stop_Loss = MarketInfo(Symbol(),MODE_STOPLEVEL) ;

La description de MarketInfo indique qu'il retourne le type double.

Mais le niveau d'arrêt est un nombre entier et je veux l'utiliser

comme un nombre entier...

Est-ce la faute des développeurs, ou l'avertissement est-il correct et je ne le comprends pas ?

 

Bon temps, messieurs, j'ai décidé de commencer à poster dans ce sujet débile, si quelqu'un a un conseil à donner.

MT4 perd le réseau - l'horloge du serveur ne fait pas tic-tac, mais le "statut de connexion" montre que tout est OK. L'Internet est garanti et n'est pas occupé de quelque manière que ce soit.

Cela se produit plusieurs fois par jour, le changement de courtier ne change rien à la situation. Le terminal reste bloqué dans une certaine position et on a l'impression qu'il peut rester dans cette position pour toujours.

Tout conseil serait apprécié.

 

Bon après-midi.

Pouvez-vous me dire quel courtier a le délai minimum (ping) sur MT4 ?