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

 

Bonsoir à tous !

Une question s'est posée à laquelle je n'avais pas vraiment réfléchi auparavant. Qu'est-ce qu'une tique ? Comment est-elle formée ? Lorsque le volume suffisant de transactions est accumulé ? Il ne peut s'agir d'un prix minimum ou d'un pas de temps, car les ticks sont inégaux dans le temps et peuvent répéter les valeurs d'offre et de demande précédentes.

Et comment les métiers fonctionnent-ils en MT ? Par exemple, nous demandons le prix Ask, effectuons les calculs et envoyons un ordre d'achat. Sera-t-elle exécutée au prix Ask que nous avons reçu ou au prix du prochain tick (en supposant que tous les calculs sont effectués avant que nous recevions l'information sur un nouveau tick) ? En d'autres termes, existe-t-il une certaine durée de tic et de quoi dépend-elle, si oui ?

 
AlexeyVik:

En fonction du nombre de lignes, déclarez des tampons indicateurs et écrivez simultanément la valeur dans l'un des tampons où la ligne est tracée. Et ensuite lire cette valeur à partir du Conseiller Expert à travers iCustom().

Elle tient en deux mots.

Savez-vous que lorsque vous tracez la ligne, vous spécifiez respectivement l'heure de début et l'heure de fin ainsi que le prix. Pour le tampon, une boucle doit être dessinée sur toutes les barres. Vous devez d'abord examiner le code et ensuite donner des conseils. Sinon, vos conseils sont inutiles 0......
 
nikelodeon:
Savez-vous que lorsque vous tracez la ligne, vous spécifiez l'heure de début et l'heure de fin et, en conséquence, le prix. Pour le tampon, nous devrions passer en boucle toutes les barres. Vous auriez dû examiner le code d'abord, et ensuite donner des conseils. Sinon, vos conseils sont inutiles 0......

Vous devez mettre le prix dans le tampon.

Et la boucle n'est nécessaire que pour s'assurer que les relevés concernent toutes les barres. Pour être plus précis, c'est juste pour la beauté, et en règle générale, tout le monde travaille avec les lectures des deux dernières mesures, 0 et 1.

Si un indicateur ne contient pas le traitement de toutes les barres, il semble qu'il ne soit pas nécessaire.

Je suis aussi paresseux que beaucoup d'autres pour saisir le code, peut-être même plus paresseux que tous ensemble, et vous me conseillez de regarder le code... de quoi ai-je besoin ? J'ai demandé en quelques mots. Quelle que soit la question, c'est la réponse. Et si mon conseil est inutile, c'est que je conseille la mauvaise personne.

 
AlexeyVik:

C'est le prix qui doit être mis dans le tampon.

Et la boucle n'est nécessaire que pour s'assurer que les relevés concernent toutes les barres. Pour être plus précis, c'est juste pour la beauté, et en règle générale, tout le monde travaille avec les lectures des deux dernières mesures, 0 et 1.

Si votre indicateur ne contient pas le traitement de toutes les barres, vous n'en avez probablement pas besoin.

Je suis aussi paresseux que la plupart des gens pour fouiller dans ce code, et peut-être même plus paresseux qu'eux tous réunis, et vous me conseillez de regarder le code... de quoi ai-je besoin ? J'ai demandé en quelques mots. Quelle que soit la question, c'est la réponse. Et si mon conseil est inutile, c'est que je conseille la mauvaise personne.

Je n'en ai pas vraiment envie, même si je ne suis pas un très bon programmeur, mais j'écris du code, aussi laid soit-il. Et l'essence de la question est la suivante. COMMENT organiser une boucle pour que le tampon affiche les niveaux d'options sur l'historique. Nous pourrons alors travailler avec cet historique, vérifier l'hypothèse et sauvegarder les données. Nous devons organiser une boucle compétente. Je pense que c'est là que la tâche devient intéressante....... Mais je n'ai pas d'idées. .... comment le faire. Je pense qu'il est nécessaire de se lier à des dates et de danser en quelque sorte à partir d'elles. Mais il y a un problème de calendrier. En général, cela s'avère être un problème assez important ..... J'aimerais entendre un avis sur plus de détails. Et le fait que dans le tampon vous devez écrire le prix !!!! Je ne suis pas si bête, crois-moi, pour ne pas le comprendre......

 
Je pense que nous devrions attendre le début de la semaine et voir si les pros reviennent de la campagne et commencent à conseiller......
 
nikelodeon:

Je ne suis pas vraiment un programmeur, mais j'écris quand même du code, même s'il est tordu. Et l'essence même de la question est. COMMENT organiser une boucle pour que le tampon affiche les niveaux d'options sur l'historique. Nous pourrons alors travailler avec cet historique, vérifier l'hypothèse et sauvegarder les données. Nous devons organiser une boucle compétente. Je pense que c'est là que la tâche devient intéressante....... Mais je n'ai pas d'idées. .... comment le faire. Je pense qu'il est nécessaire de se lier à des dates et de danser en quelque sorte à partir d'elles. Mais il y a un problème de calendrier. En général, cela s'avère être un problème assez important ..... J'aimerais entendre un avis sur plus de détails. Et le fait que dans le tampon vous devez écrire le prix !!!! Je ne suis pas si bête, crois-moi, pour ne pas le comprendre......

Et voilà, toute la boucle est en place et organisée correctement et les tampons se remplissent.

 for(i=limit; i>=0; i--){  
      if ((Close[i+5]>Level1)&&(Open[i+5]>Level1)&&(Close[i]>Level1)&&(Open[i]>Level1)&&(Close[i+1]>Level1)&&(Open[i+1]>Level1)&&(Close[i+2]>Level1)&&(Open[i+2]>Level1)&&(Close[i+3]>Level1)&&(Open[i+3]>Level1)&&(Close[i+4]>Level1)&&(Open[i+4]>Level1)) qLevel1=Level1+EnterUP;  
      if ((Close[i+5]<Level1)&&(Open[i+5]<Level1)&&(Close[i]<Level1)&&(Open[i]<Level1)&&(Close[i+1]<Level1)&&(Open[i+1]<Level1)&&(Close[i+2]<Level1)&&(Open[i+2]<Level1)&&(Close[i+3]<Level1)&&(Open[i+3]<Level1)&&(Close[i+4]<Level1)&&(Open[i+4]<Level1)) qLevel1=Level1-EnterDw;  
      if ((Close[i+5]>Level2)&&(Open[i+5]>Level2)&&(Close[i]>Level2)&&(Open[i]>Level2)&&(Close[i+1]>Level2)&&(Open[i+1]>Level2)&&(Close[i+2]>Level2)&&(Open[i+2]>Level2)&&(Close[i+3]>Level2)&&(Open[i+3]>Level2)&&(Close[i+4]>Level2)&&(Open[i+4]>Level2)) qLevel2=Level2+EnterUP;  
      if ((Close[i+5]<Level2)&&(Open[i+5]<Level2)&&(Close[i]<Level2)&&(Open[i]<Level2)&&(Close[i+1]<Level2)&&(Open[i+1]<Level2)&&(Close[i+2]<Level2)&&(Open[i+2]<Level2)&&(Close[i+3]<Level2)&&(Open[i+3]<Level2)&&(Close[i+4]<Level2)&&(Open[i+4]<Level2)) qLevel2=Level2-EnterDw;  
      if ((Close[i+5]>Level3)&&(Open[i+5]>Level3)&&(Close[i]>Level3)&&(Open[i]>Level3)&&(Close[i+1]>Level3)&&(Open[i+1]>Level3)&&(Close[i+2]>Level3)&&(Open[i+2]>Level3)&&(Close[i+3]>Level3)&&(Open[i+3]>Level3)&&(Close[i+4]>Level3)&&(Open[i+4]>Level3)) qLevel3=Level3+EnterUP;  
      if ((Close[i+5]<Level3)&&(Open[i+5]<Level3)&&(Close[i]<Level3)&&(Open[i]<Level3)&&(Close[i+1]<Level3)&&(Open[i+1]<Level3)&&(Close[i+2]<Level3)&&(Open[i+2]<Level3)&&(Close[i+3]<Level3)&&(Open[i+3]<Level3)&&(Close[i+4]<Level3)&&(Open[i+4]<Level3)) qLevel3=Level3-EnterDw;  
      if ((Close[i+5]>Level4)&&(Open[i+5]>Level4)&&(Close[i]>Level4)&&(Open[i]>Level4)&&(Close[i+1]>Level4)&&(Open[i+1]>Level4)&&(Close[i+2]>Level4)&&(Open[i+2]>Level4)&&(Close[i+3]>Level4)&&(Open[i+3]>Level4)&&(Close[i+4]>Level4)&&(Open[i+4]>Level4)) qLevel4=Level4+EnterUP;  
      if ((Close[i+5]<Level4)&&(Open[i+5]<Level4)&&(Close[i]<Level4)&&(Open[i]<Level4)&&(Close[i+1]<Level4)&&(Open[i+1]<Level4)&&(Close[i+2]<Level4)&&(Open[i+2]<Level4)&&(Close[i+3]<Level4)&&(Open[i+3]<Level4)&&(Close[i+4]<Level4)&&(Open[i+4]<Level4)) qLevel4=Level4-EnterDw;  
      if ((Close[i+5]>Level5)&&(Open[i+5]>Level5)&&(Close[i]>Level5)&&(Open[i]>Level5)&&(Close[i+1]>Level5)&&(Open[i+1]>Level5)&&(Close[i+2]>Level5)&&(Open[i+2]>Level5)&&(Close[i+3]>Level5)&&(Open[i+3]>Level5)&&(Close[i+4]>Level5)&&(Open[i+4]>Level5)) qLevel5=Level5+EnterUP;  
      if ((Close[i+5]<Level5)&&(Open[i+5]<Level5)&&(Close[i]<Level5)&&(Open[i]<Level5)&&(Close[i+1]<Level5)&&(Open[i+1]<Level5)&&(Close[i+2]<Level5)&&(Open[i+2]<Level5)&&(Close[i+3]<Level5)&&(Open[i+3]<Level5)&&(Close[i+4]<Level5)&&(Open[i+4]<Level5)) qLevel5=Level5-EnterDw;  
      if ((Close[i+5]>Level6)&&(Open[i+5]>Level6)&&(Close[i]>Level6)&&(Open[i]>Level6)&&(Close[i+1]>Level6)&&(Open[i+1]>Level6)&&(Close[i+2]>Level6)&&(Open[i+2]>Level6)&&(Close[i+3]>Level6)&&(Open[i+3]>Level6)&&(Close[i+4]>Level6)&&(Open[i+4]>Level6)) qLevel6=Level6+EnterUP;  
      if ((Close[i+5]<Level6)&&(Open[i+5]<Level6)&&(Close[i]<Level6)&&(Open[i]<Level6)&&(Close[i+1]<Level6)&&(Open[i+1]<Level6)&&(Close[i+2]<Level6)&&(Open[i+2]<Level6)&&(Close[i+3]<Level6)&&(Open[i+3]<Level6)&&(Close[i+4]<Level6)&&(Open[i+4]<Level6)) qLevel6=Level6-EnterDw;  
      if ((Close[i+5]>Level7)&&(Open[i+5]>Level7)&&(Close[i]>Level7)&&(Open[i]>Level7)&&(Close[i+1]>Level7)&&(Open[i+1]>Level7)&&(Close[i+2]>Level7)&&(Open[i+2]>Level7)&&(Close[i+3]>Level7)&&(Open[i+3]>Level7)&&(Close[i+4]>Level7)&&(Open[i+4]>Level7)) qLevel7=Level7+EnterUP;  
      if ((Close[i+5]<Level7)&&(Open[i+5]<Level7)&&(Close[i]<Level7)&&(Open[i]<Level7)&&(Close[i+1]<Level7)&&(Open[i+1]<Level7)&&(Close[i+2]<Level7)&&(Open[i+2]<Level7)&&(Close[i+3]<Level7)&&(Open[i+3]<Level7)&&(Close[i+4]<Level7)&&(Open[i+4]<Level7)) qLevel7=Level7-EnterDw;  
      if ((Close[i+5]>Level8)&&(Open[i+5]>Level8)&&(Close[i]>Level8)&&(Open[i]>Level8)&&(Close[i+1]>Level8)&&(Open[i+1]>Level8)&&(Close[i+2]>Level8)&&(Open[i+2]>Level8)&&(Close[i+3]>Level8)&&(Open[i+3]>Level8)&&(Close[i+4]>Level8)&&(Open[i+4]>Level8)) qLevel8=Level8+EnterUP;  
      if ((Close[i+5]<Level8)&&(Open[i+5]<Level8)&&(Close[i]<Level8)&&(Open[i]<Level8)&&(Close[i+1]<Level8)&&(Open[i+1]<Level8)&&(Close[i+2]<Level8)&&(Open[i+2]<Level8)&&(Close[i+3]<Level8)&&(Open[i+3]<Level8)&&(Close[i+4]<Level8)&&(Open[i+4]<Level8)) qLevel8=Level8-EnterDw;  
      if ((Close[i+5]>Level9)&&(Open[i+5]>Level9)&&(Close[i]>Level9)&&(Open[i]>Level9)&&(Close[i+1]>Level9)&&(Open[i+1]>Level9)&&(Close[i+2]>Level9)&&(Open[i+2]>Level9)&&(Close[i+3]>Level9)&&(Open[i+3]>Level9)&&(Close[i+4]>Level9)&&(Open[i+4]>Level9)) qLevel9=Level9+EnterUP;  
      if ((Close[i+5]<Level9)&&(Open[i+5]<Level9)&&(Close[i]<Level9)&&(Open[i]<Level9)&&(Close[i+1]<Level9)&&(Open[i+1]<Level9)&&(Close[i+2]<Level9)&&(Open[i+2]<Level9)&&(Close[i+3]<Level9)&&(Open[i+3]<Level9)&&(Close[i+4]<Level9)&&(Open[i+4]<Level9)) qLevel9=Level9-EnterDw;  
      if ((Close[i+5]>Level10)&&(Open[i+5]>Level10)&&(Close[i]>Level10)&&(Open[i]>Level10)&&(Close[i+1]>Level10)&&(Open[i+1]>Level10)&&(Close[i+2]>Level10)&&(Open[i+2]>Level10)&&(Close[i+3]>Level10)&&(Open[i+3]>Level10)&&(Close[i+4]>Level10)&&(Open[i+4]>Level10)) qLevel10=Level10+EnterUP;  
      if ((Close[i+5]<Level10)&&(Open[i+5]<Level10)&&(Close[i]<Level10)&&(Open[i]<Level10)&&(Close[i+1]<Level10)&&(Open[i+1]<Level10)&&(Close[i+2]<Level10)&&(Open[i+2]<Level10)&&(Close[i+3]<Level10)&&(Open[i+3]<Level10)&&(Close[i+4]<Level10)&&(Open[i+4]<Level10)) qLevel10=Level10-EnterDw;  
      
Buffer1[i]=qLevel1;      
Buffer2[i]=qLevel2;      
Buffer3[i]=qLevel3;      
Buffer4[i]=qLevel4;      
Buffer5[i]=qLevel5;      
Buffer6[i]=qLevel6;      
Buffer7[i]=qLevel7;      
Buffer8[i]=qLevel8;      
Buffer9[i]=qLevel9;           
Buffer10[i]=qLevel10;  
//Buffer11[i]=LevelsVerticalShift;
 }

Mais il doit y avoir un fichier pour cet indicateur. On ne sait pas ce qu'il devrait contenir.

 
nikelodeon:

Enregistrez les valeurs des lignes de tendance (segments horizontaux) dans des variables Terminal, qui pour chaque ligne peuvent prendre la forme d'éléments de tableau (si vous voulez les lire dans une boucle) : {Ligne[0][0], Ligne[0][1], Ligne[0][2]..}, {Ligne[1][0], Ligne[1][1], Ligne[1][2]..}, etc. Un autre terme variable "Status 0/1" est utilisé pour indiquer à un autre indicateur/conseiller quand les paramètres d'une nouvelle ligne doivent être lus, après quoi "Status" doit revenir à sa position initiale. Si les lignes ne sont pas lues en une fois, mais au fur et à mesure qu'elles arrivent, vous pouvez vous contenter d'un seul ensemble Line[][].
 
AlexeyVik:

Et voilà, toute la boucle est en place et organisée correctement et les tampons se remplissent.

Mais il doit y avoir un fichier pour cet indicateur. On ne sait pas ce qu'il devrait contenir.

Qui fait des choses si horribles. L'auteur ne peut pas y réfléchir ?
 
Vinin:
Qui fait des choses aussi effrayantes ? L'auteur ne peut pas y réfléchir ?
Et moi, alors ? Je ne suis pas l'auteur... Je n'ai même pas pris un verre avec lui.
 
DD ! Je ne peux pas ouvrir une fenêtre dans le terminal. C'est gelé jusqu'à la moelle. Un indicateur reste en place et ne permet pas d'ouvrir la fenêtre. Veuillez m'indiquer comment je peux voir quels indicateurs sont définis sur ce graphique. Je veux l'utiliser comme base pour mon robot de trading.