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

 
Zhunko:

Le script de test du kit fonctionne-t-il ?


Oui, ça a marché.

Zhunko:

Il y a beaucoup d'erreurs de syntaxe.
C'est étrange... Peut-être que MetaEditor réagit de cette façon au grec ? Au moins, tout se compile avec moi...
 
gyfto:


Laissez-moi l'essayer maintenant. Lorsque nous écrivons

alors dans tous les cas, ces quelques actions seront toujours effectuées, car les deux premières sont similaires à la troisième (vérifier, simplifier l'expression). C'est-à-dire que si ce sont des variables booléennes, nous n'avons pas besoin de mettre ==vrai, ==faux, car elles sont déjà vraies ou fausses par elles-mêmes.


Je l'ai, merci ! Désolé pour le hors sujet. Je me suis abonné à ce fil de discussion dans mon profil et j'ai indiqué qu'il fallait signaler les réponses à mon courrier électronique. Mais pour une raison quelconque, je ne suis pas informé des réponses. Comment puis-je résoudre ce problème ?
 
clubsmi:

Y a-t-il un autre moyen ? ou pouvez-vous me donner un lien où cela se fait, peut-être l'avez-vous déjà vu ?


Non, je n'ai pas utilisé iCustom à l'époque parce que je n'en connaissais pas l'existence. Voici deux exemples, un seul et même algorithme, seulement l'un est dans une sous-fenêtre et l'autre est un signal à l'intersection du premier.
Dossiers :
sst_alert.mq4  3 kb
sst_line.mq4  2 kb
 
gyfto:


Oui, ça marche, ça marche.

C'est bizarre... Peut-être que MetaEditor réagit au grec ? Au moins, tout se compile avec moi...

C'est un soulagement. Nous devons donc rechercher les erreurs dans le code.

Oui. Les personnages grecs apparaissent pour une raison quelconque.

 
alsu:

Si c'est un script et qu'il se trouve dans le dossier scpirts, alors il a été exécuté une fois et supprimé du graphique. Pour le garder de façon permanente, mettez votre code à l'intérieur de ce fichier



Par "script", je voulais dire l'algorithme.

Quelqu'un peut-il m'aider avec l'algorithme ?

Je veux déclencher une alerte lorsque le marché est ouvert et de la même manière lorsque le marché est fermé et que la négociation a cessé Alerte que le marché est fermé !

 
Je crois que j'ai trouvé la raison. Le TF est un second avec des gaps, donc j'ai essayé de former un tableau supplémentaire unidimensionnel d'indices où chaque élément a "nombre de secondes exactes il y a" correspond à l'élément b "indice de cette bougie dans un second TF avec des gaps". La valeur d'indice requise est ensuite calculée à l'aide de la formule n(x)=ind[final]-ind[final-x]+1. Mais comme ce TF n'est pas encore synchronisé, contrairement aux minutes, qui sont automatiquement téléchargées si le terminal est redémarré après avoir été fermé quelques minutes auparavant, par exemple, Δt par sec. TF sera parfois anormalement grande, et c'est ce qui détermine le redimensionnement du tableau supplémentaire, c'est-à-dire que Δt des cellules sont remplies avec la même valeur (indice de cette barre). Dans ce cas, c'est juste MemoryWrite, MemoryRead qui dépasse les bornes. La solution, en principe, est "simple" : commencer à sec. TF sur le VPS, et se synchronise avec lui si le terminal est ouvert à nouveau après une courte période de fermeture. De manière plus réaliste, il est préférable de ne pas travailler avec la bibliothèque avant lundi, et de commencer à construire ce tableau supplémentaire en temps réel le lundi. Ou allez directement de votre ordinateur au VPS, et mettez-le en forme là.
 
pasha5282:

Par "script", j'entends un algorithme.

Quelqu'un peut-il m'aider avec l'algorithme ?

Lorsque le marché s'ouvre, alertez que le marché s'est ouvert et de la même manière, lorsque le marché se ferme et que la négociation s'arrête, alertez que le marché se ferme !


Je ne sais pas, Pasha, pour être honnête, je ne comprends pas ce qui ne va pas. Ce n'est pas un script, mais un morceau de code, non ? Essayez de mettre des parenthèses pour soulager votre conscience :

      if((DayOfWeek()==1) && (Hour()==0) && (Minute()==0) && (Seconds()==1)) Alert("Рынок открылся.");
      if((DayOfWeek()==5) && (Hour()==23) && (Minute()==59) && (Seconds()==59)) Alert("Рынок закрылся.");
 
чтобы при открытии рынка срабатывал Alert что рынок открылся, и аналогично когда рынок закрылся и торговля прекратилась Alert что рынок закрылся!
bool Opened=false;
...
int start()
if( !MarketInfo(Symbol(), MODE_TRADEALLOWED) ){
   if( Opened ){
   Alert("Рынок закрылся.");
   Opened=false;
}  }
else{
   if( !Opened ){
   Alert("Рынок открылся.");
   Opened=true;
}  }
 

Comment puis-je simplifier cette expression ?

provient de l'algorithme ADX de MetaQuotes. Les MetaQuotes eux-mêmes utilisent cette expression :

if(pdm<0) pdm=0;
if(mdm<0) mdm=0;
if(pdm==mdm) { pdm=0; mdm=0; }
  else if(pdm<mdm) pdm=0;
    else if(mdm<pdm) mdm=0;

- comment le simplifier ? De Wiki,

Ici, je vois comme la même fonction, mais avec des paramètres d'entrée différents.

 
gyfto:

Comment puis-je simplifier cette expression ?

provient de l'algorithme ADX de MetaQuotes. Les MetaQuotes eux-mêmes utilisent cette expression :

- comment le simplifier ?


Pourquoi l'option la plus simple ne vous convient-elle pas ?

z=0;
if(y>x && y>0) z=y;
Raison: