Fonctions utiles de KimIV - page 99

 
TarasBY писал(а) >>
J'ai remarqué un bug dans la fonction TypeNearPos lorsque la condition est remplie :
Prix du marché = prix de l'ordre ouvert, alors cet ordre n'est pas pris en compte par cette fonction.
J'ai dû ajouter cette simple condition au code.
Cette condition sera également utile dans des fonctions comme TypeNearPos() et PriceOpenNearPos().


Il est plus logique de comparer ti avec zéro dans la condition au lieu de pp
.

if (ti==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
}
Mais si nous laissons la condition telle qu'elle est, nous ferions mieux de sortir de la boucle par break au lieu de return.
if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p)
{
   pp=MathAbs(OrderOpenPrice()-mi)/p;
   ti=OrderTicket();
   if (pp==0)
      break;
}
 
Bonjour, Igor. Bonjour, tout le monde.
Igor, je m'adresse à vous en tant qu'excellent spécialiste et expert dans votre domaine.
L'essence de mon problème est la suivante :
J'utilise cinq indicateurs dans mon TS, l'un d'entre eux est TRAP. Il supprime très bien tous les "bruits" inutiles, mais il est tout aussi "bon". Il dispose de trois tampons de dessin : 0 pour la ligne de signal, 1 et 2 pour le graphique en deux couleurs. Lorsque la ligne de signal TRAP est en bas et qu'un graphique rouge se trouve en dessous - Vendre. Lorsque la ligne de signal monte et que le graphique est bleu - Achetez.
Manuellement, tout va bien, mais lorsque j'essaie de récupérer ses données à partir de l'Expert Advisor, la torture commence, qui se poursuit à ce jour.
La conception...
   TRAPsig0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,0);  // Сигнальная линия,       0 бар
   TRAPsig1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,0,1);  // Сигнальная линия,       1 бар
   TRAPmnR0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,0);  // Буфер цвета 1 (красн.), 0 бар
   TRAPmnR1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,1,1);  // Буфер цвета 1 (красн.), 1 бар
   TRAPmnB0=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,0);  // Буфер цвета 2 (син.),   0 бар
   TRAPmnB1=iCustom(NULL,0,"TRAP",12,5,0,4,0.5,2,1);  // Буфер цвета 2 (син.),   1 бар
...lit les données, mais les données ne sont pas du tout celles que j'attendais. J'ai essayé de lire les données des trois tampons pour les barres 0 à 7 et de les afficher à l'écran. La barre zéro contient 2147483647, la première barre le prix, la deuxième barre le prix, la troisième barre le prix, la quatrième barre encore 2147483647 etc. En même temps, toutes les données ne changent pas au fur et à mesure, mais quand elles changent. Parfois après un laps de temps assez long, parfois rapidement, et ils changent leur contenu selon un système étrange que je n'ai pas encore compris. Si d'abord il y a un prix à cet endroit, alors il peut s'agir de ce nombre mystérieux, ou bien d'un prix différent ou encore du même (bien que la ligne monte et que le prix devrait monter), etc. ...
En bref, toutes mes tentatives de systématisation de ces lectures ont abouti au fait que mon cerveau devrait déjà se consacrer à la systématisation des sanitariens..... :)
Je crie à l'aide... Igor, peut-être pouvez-vous me conseiller sur la façon de battre cet indicateur ?
Ou l'un des gourous qui s'occupent déjà de ce problème.
Aidez-nous s'il vous plaît, tous les coûts de travail...
Merci d'avance !
L'indicateur lui-même est dans la remorque :
Dossiers :
trap.ex4  4 kb
 
ne pas utiliser de barre de zéro.... Il est en cours de formation, ce qui signifie que la valeur de l'indicateur change à chaque tic.....
 

Au fait, où est Igor lui-même ? On ne l'a pas vu depuis quatre ou cinq mois !

 
kharko >>:
не используйте нулевой бар.... Он только формируется, а значит, значение индикатора меняется с каждым тиком....

Le truc, c'est que j'ai essayé la première, la deuxième, la troisième et... J'ai essayé toutes les barres jusqu'à sept sur tous les tampons. Les signaux sont faux. Le signal qui affiche le prix, disons 1,3478 peut être retenu jusqu'à la prochaine hausse du prix au niveau de 1,3478, puis devenir brusquement 1,3486 ou le prix disparaît et une valeur inconnue de 2147483647 apparaît, il peut errer d'une barre à l'autre dans les lectures des trois tampons... Si Dieu le veut... Il peut être présent dans les lectures de trois tampons dans des barres différentes, et lorsque vous changez le prix d'une barre, cette lecture se déplace vers une autre barre ou un autre tampon... Je ne pouvais pas battre sa logique...

 
artmedia70 >>:

вообще цена пропадает и появляется непонятное значение 2147483647...

2147483647 est 0x7FFFFFFFF.

Constantes spéciales utilisées pour indiquer l'état des paramètres et des variables. Peut prendre les valeurs suivantes :

EMPTY_VALUE 0x7FFFFFFFF Valeur par défaut, pointeur vers une valeur vide. Utilisé dans les indicateurs personnalisés
 
artmedia70 писал(а) >>

Le truc, c'est que j'ai essayé la première, la deuxième, la troisième et... J'ai essayé toutes les barres jusqu'à sept sur tous les tampons. Les signaux ne sont pas bons. Le signal qui affiche le prix, disons 1,3478 peut être retenu jusqu'à la prochaine hausse du prix au niveau de 1,3478, puis devenir brusquement 1,3486 ou le prix disparaît et une valeur inconnue de 2147483647 apparaît, il peut errer d'une barre à l'autre dans les lectures des trois tampons... Si Dieu le veut... Il peut être présent dans les lectures de trois tampons dans des barres différentes, et lorsque vous modifiez le prix d'une barre, cette lecture se déplace vers une autre barre ou un autre tampon... Je ne pouvais pas battre sa logique...


Ouvrez la fenêtre de données (Ctrl+D), déplacez la souris sur votre indicateur et voyez ce qu'il a dans les barres. Il n'est pas calculé sur les barres de zéro, et à propos de EMPTY_VALUE on vous a déjà écrit.

 
PapaYozh >>:


откройте окно данных (Ctrl+D), поводите мышью по своему индикатору и посмотрите что он имеет в барах. На нулевом баре он не рассчитан, а про EMPTY_VALUE Вам уже написали.

Oh, merde ! On vit et on apprend ! Et j'avais l'habitude de faire un conseiller expert non commercial, qui traçait ces données sur un graphique... :))) Une théière, et c'était chaud bouillant aussi... :)
Tout s'est avéré si facile... Merci beaucoup !!!!

 
PapaYozh >>:


Логичнее, в условии сравнивать с нулём не pp, a ti

Если же оставить условие как есть, то из цикла лучше выходить не по return, а по break.

Expliquez pourquoi : "il est préférable de sortir de la boucle par break au lieu de return" ? ???
Je quitte une fonction par return, mais je ne peux quitter une boucle que par break. Quelle est l'astuce ?

 

Au secours, s'il vous plaît... J'ai déjà tout essayé... Je ne peux pas....=( Je dois trouver l'intersection des indicateurs... Tous les conseils que l'on m'a donnés ne m'ont pas aidé...=( peut-être pouvez-vous m'aider....

Dossiers :
lastlast.mq4  13 kb