[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 323

 
Diubakin:
Alors... Comment cela fonctionne-t-il ? Si ce n'est pas un secret...
Il y a un moyen, mais ne le dis à personne. C'est un terrible secret.
Faites une recherche google sur le site - trading on nonstandard TF site:mql4.com et des variantes comme "advisor on equi (stand-alone) chart, etc".
Ou attendez que Junko ne le supporte plus et vous l'explique personnellement :))
 
Diubakin:
Alors... COMMENT LE FAIRE ?

Ce n'est pas un secret. Il y a beaucoup d'écrits à ce sujet. Peu importe l'outil utilisé pour créer l'histoire. L'objectif est de mettre à jour le graphique pour que le conseiller expert puisse travailler dessus.

Cela peut être fait au moyen de WinAPI. Il a été décrit ici à de nombreuses reprises. J'ai écrit une bibliothèque. Je l'ai posté ici.

Il contient des fonctions permettant de contrôler la mise à jour autonome de la carte. Il ne nécessite aucun script ou expert. Mais ce n'est pas pour tout le monde. Des fonctions sont également à la disposition de tous pour mettre à jour le graphique à partir d'un Expert Advisor, d'un script ou d'un indicateur. Il est plus difficile de les utiliser. Parce que vous devez déterminer lequel de vos programmes va mettre à jour le tableau. Des exemples sont dans le script de test.

 

Chers programmeurs.

Pouvez-vous nous conseiller sur la façon de configurer les valeurs des niveaux de moyenne mobile affichées sur la barre actuelle ?

Je ne parle pas de la valeur de la moyenne mobile elle-même, mais des valeurs de ses niveaux (écarts par rapport à celle-ci vers le haut et vers le bas, qui sont définis dans l'onglet "Niveaux" du menu МА).

Ces valeurs suivront les niveaux MA et changeront d'elles-mêmes.

La figure est l'une des variantes possibles.

Merci d'avance.



 
Diubakin:


J'ai déjà compris le mystère). J'ai lu les articles et j'ai parcouru le forum et la recherche. Je ne trouve pas la description de l'utilisation des graphiques non standard dans le testeur de stratégie, mais je n'ai pas trouvé d'exemple, que dois-je faire pour permettre au conseiller expert de travailler en temps réel sur un tel graphique.

WinAPI est une forêt sombre pour moi. Existe-t-il un moyen de faire quelque chose dans mql4 à l'intérieur du constructeur ou de son Expert Advisor, ou de combiner le constructeur et l'Expert Advisor ?

Je n'ai aucune idée de la façon dont je pourrais l'utiliser comme conseiller expert à l'avenir.

Quand j'ai dit mystère, je voulais dire le grand mystère de la recherche. Elle réside dans le fait que vous devez LIRE le matériel qu'elle vous montrera. J'ai peur de vous donner les liens, je vais donc vous donner le texte tel quel.

nickbilac 03.09.2007.

...Pour qu'un Conseiller Expert fonctionne sur un graphique autonome, vous devez ajouter :

au début du départ :

int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message") ; //titre à venir pour les EAs

après le premier PostMessageA

PostMessageA(hwnd,MT4InternalMsg,2,1) ; //titre à venir pour les EAs

et dans WinUser32.mqh dans les descriptions des fonctions de user32.dll :

int RegisterWindowMessageA(string lpString) ;

(cette solution a été suggérée par Slava sur le forum anglais)

 
Extrait de la correspondance avec le courtier - "Les graphiques sont utilisés pour donner une idée du marché. Il ne peut pas blâmer ..... pour les mises à jour, car celles-ci sont définies par défaut pour tous les courtiers qui utilisent la plateforme MT4. De quelle fonctionnalité MT4 s'agit-il ? Dans quels cas le prix qui est actuellement affiché sur le graphique et dans l'aperçu du marché ne peut pas être simultanément marché et exécutable ? Veuillez m'aider à comprendre l'essence de cette déclaration. Je fais précéder les liens vers la fonction OrderSend et je cite le code de MTS utilisé pour ouvrir une transaction :

RefreshRates() ;

ticket=OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),0,NormalizeDouble(Ask+15*Point,Digits),0, "test",8,0, red) ;

Je serais très reconnaissant aux développeurs de me faire part de leurs commentaires.
 

granit77:
Когда я говорил о тайне, то имел в виду великую тайну поиска. Она заключается в том. что надо ПРОЧИТАТЬ материалы, на которые он покажет. Ссылки уже боюсь давать, привожу готовый текст.

nickbilac 03.09.2007

... pour que les experts travaillent sur un programme autonome, vous devez ajouter :

au début du départ :

int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message") ; //titre à venir pour les EAs

après le premier PostMessageA

PostMessageA(hwnd,MT4InternalMsg,2,1) ; //titre à venir pour les EAs

Et dans WinUser32.mqh dans les descriptions des fonctions user32.dll ajouter :

int RegisterWindowMessageA(string lpString) ;

Dans ma bibliothèque, il y a une fonction à la place de ce code.
 
Est-ce que le fait de rafraîchir les taux(); ; avant un tick aiderait à réduire les requêtes, même légèrement ?
 
Shniperson:
RefreshRates() ; avant le billet aidera-t-il à réduire un peu les requêtes ?


Cela dépend de la situation. Si vous avez deux commandes consécutives, il est judicieux d'appeler RefreshRates() avant de définir la deuxième commande. Ecoutez, vous envoyez un ordre au serveur pour ouvrir un ordre. Un certain temps s'écoulera pendant que le serveur réagit. Pendant ce temps, les cotes peuvent changer, donc dès que le serveur a répondu, nous devons appeler RefreshRates(), qui met à jour les données dans le terminal. Maintenant nous pouvons donner un ordre pour ouvrir la commande suivante. Si nous vérifions simplement l'existence d'un signal et plaçons immédiatement un ordre, il n'y a aucune raison d'appeler RefreshRates(). La raison est que la fonction de démarrage est appelée à l'arrivée d'un nouveau tick et nous pouvons négliger le temps jusqu'à ce que l'EA vérifie le signal.

Mais qu'est-ce que le billet a à voir avec ça ? Le ticket est le numéro de commande sur le serveur...

 
Eh bien, je voulais dire ticket=OrderSend(......)
 
Shniperson:
Eh bien, je voulais dire ticket=OrderSend(......)

Et qu'est-ce qu'ils t'ont dit ? ...