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

 
polycomp:

Veuillez me dire ce qui pourrait causer le problème suivant.

Il existe un indicateur qui utilise des fonctions externes. Le code de la bibliothèque compilée est situé dans le dossier des bibliothèques, les descripteurs - dans include.

Connexion #include <lib_Zemckikh.mqh>. Lors de la première exécution de l'indicateur, toutes les fonctions de la bibliothèque fonctionnent normalement, l'indicateur est affiché sur le graphique. Après un changement de paramètres (après un nouveau calcul de l'indicateur), les fonctions de la bibliothèque ne sont pas appelées, l'indicateur n'est pas affiché, il n'y a pas d'entrées dans l'onglet "Experts" après le changement de paramètres.

Si vous excluez la connexion de la bibliothèque et placez les fonctions requises dans le fichier indicateur (compilé directement avec les fonctions), tout fonctionne bien.

Je ne comprends pas ce qui ne va pas. Je ne veux pas polluer le forum, je ne joins pas les codes. Si vous en avez besoin, je vous l'enverrai en personne.


Tout d'abord, imprimez quelque chose des fonctions de la bibliothèque dans Print, afin de savoir si elles sont appelées ou non.

 
solnce600:

Bonsoir à tous !

Quelle fonction renvoie l'heure de fixation du dernier ordre en suspens (c'est-à-dire pas la transformation d'un ordre en suspens en un ordre au marché, mais l'heure de fixation d'un ordre en suspens) ?

J'ai examiné attentivement toutes les fonctions de Kim, mais je ne pense pas qu'il dispose d'une telle fonction.

Merci.


Autant que je m'en souvienne, nous devons mémoriser ce temps lors de la mise en place d'un ordre en attente. Vous pouvez vous en souvenir directement dans le commentaire de l'ordre (ou en magik, comme une perversion spéciale :).
 
borilunad:


La connaissance ne s'acquiert qu'avec un effort adéquat de votre part ! Mettez-vous au travail quotidien de curiosité ! Bonne chance !



Bien dit !
 
Konstebl:

Veuillez me conseiller sur la manière d'écrire correctement la condition :

1.si ordre symbole = symbole et ordre magik = 135

2.s'il n'y a pas d'ordre BAYSTOP en attente.

3.s'il n'y a pas d'ordres ouverts BAY OU (s'il y en a) stoploss>prix d'ouverture

4.si le prix est entre la MA et la fractale vers le haut

PLACER UN ORDRE D'ACHAT STOP EN ATTENTE

ÉCRIT COMME ÇA :

NE FONCTIONNE PAS ! DITES-MOI QUELLE EST L'ERREUR !

Vous devez simplifier la logique en décomposant tout en actions élémentaires. Essayez de décomposer la condition imbriquée en plusieurs conditions consécutives, comme ceci :

0. Si (NewBar ()==false), alors vous n'avez rien à faire du tout, n'est-ce pas ? Donc exit tout court, rien pour charger le processeur : return (0) ou comme on veut.

1. entrez les variables buy_flag=false, buystop_flag=false, pour le prix d'ouverture et le prix d' arrêt.

2. for(int i=0;i<total-1;i++)

{

Nous avons sélectionné une commande et vérifié le symbole et la magie ;

Vérifier le type : si l'ordre est un achat ou un bystop, nous activons le drapeau approprié, nous mémorisons son ticket, son stoploss et son prix ouvert et nous sortons de la boucle ;

}

Si (buy_flag == false AND (buy_flag == false OR stoploss>op price) )

{

Si le prix se situe entre la MA et la fractale

{

{ {

}

}

 
alsu:

Tout d'abord, imprimez quelque chose à partir des fonctions de la bibliothèque dans Print, afin de savoir si elles sont appelées

Les objets graphiques sont créés dans les fonctions de la bibliothèque. Après le premier appel, les objets sont créés et affichés dans la fenêtre du terminal.

Au deuxième appel, ils ne sont pas présents dans la liste des objets, ce qui suggère que les fonctions externes ne fonctionnent pas pendant le recalcul de l'indicateur pour une raison quelconque, et le terminal ne dit rien à ce sujet.

 
Ce n'est pas le terminal qui est silencieux, c'est vous. Et ce n'est pas le terminal qui a cessé d'afficher ces objets, c'est vous.
 
tara:
Ce n'est pas le terminal qui est silencieux, c'est vous. Et ce n'est pas le terminal qui arrête d'afficher ces objets, c'est vous.

Alors peut-être pouvez-vous me dire pourquoi au premier appel ces mêmes fonctions dessinent des objets, mais qu'au deuxième appel elles refusent ?

De plus, les mêmes fonctions compilées dans le même fichier avec l'indicateur (sans utiliser la bibliothèque) fonctionnent bien.

 
polycomp:
Alors peut-être pourrez-vous me dire pourquoi ces mêmes fonctions dessinent des objets la première fois qu'elles sont appelées, mais refusent de le faire la deuxième fois ?


Je le ferai, bien sûr.

Où sont les fonctions, où sont les objets ?

 
tara:


Je vais vous donner un indice, bien sûr.

Où sont les fonctions, où sont les objets ?

Ce sont les fonctions, et les objets sont les rectangles qui apparaissent sur le graphique.
Dossiers :
 
polycomp:
Ce sont les fonctions, et les objets sont les rectangles qui apparaissent sur le graphique.

Dossiers :