Caractéristiques du langage mql4, subtilités et techniques - page 32

 
Andrey Khatimlianskii:

Si le cycle de 500 barres et la comparaison de leurs valeurs avec celles stockées devaient être effectués plusieurs fois, et si cela était plus long que de calculer le hachage et de le comparer avec celui stocké dans le même cycle, alors cela aurait un sens.
Mais ce n'est guère le cas.

Qu'est-ce qui vous prend si longtemps pour compter que vous remarquez l'occurrence rare de la réinitialisation de prev_calculated ?

Le conseiller expert appelle l'indicateur toutes les minutes et vérifie ce qui est nouveau. Si prev_calculated=0 est remarqué, alors c'est un recalcul complet, peut-être que ce n'est pas si long, mais quand même. Par exemple, la paire USDCNH n'est pas si rare chez mon courtier reset.
Le temps de réinitialisation (prev_calculé=0) :


P.S. Je suis même curieux de savoir quelle bougie change si la barre maximale dans l'historique/le graphique est fixée à 2000/2000 dans le terminal.
 
Nauris Zukas:

P.S. Je me demande même quelle bougie change si le terminal Max bar dans l'historique/chart est réglé sur 2000/2000.

créer un indicateur avec 4 tampons d'indicateur qui stockent l'OHLC - le remplir lorsque vous exécutez l'indicateur pour la première fois

lorsque prev_calculated=0, écrire dans le fichier journal où il y a une divergence entre l' OHLC et les tampons, puis synchroniser les tampons indicateurs avec le nouvelOHLC.

HH : en principe, il n'y a pas de sens à remplir les tampons au premier démarrage de l'indicateur - cela peut être fait à prev_calculated=0.

 
Nauris Zukas:

Le conseiller expert appelle l'indicateur toutes les minutes et vérifie ce qui est nouveau, si prev_calculated=0 est vu, alors il y a un recalcul complet, cela peut ne pas prendre longtemps à compter mais quand même. Par exemple, la paire USDCNH n'est pas rare chez mon courtier reset.
Temps de réinitialisation (prev_calculé=0) :


P.S. Je me demande même quelle bougie change si la barre maximale dans l'historique/le graphique est fixée à 2000/2000 dans le terminal.

C'est à peine un changement de barre. Il s'agit plutôt d'un service.

Je ne vois pas du tout l'intérêt de s'en préoccuper.

 
Andrey Khatimlianskii:

Plutôt quelque chose d'officiel.

Je n'étais pas au courant de ça. Alors il n'y a pas de raison de s'en préoccuper. Je viens de lire dans le manuel "Si depuis le dernier appel de OnCalculate() les données de prix ont été modifiées (un historique plus profond a été pompé ou des blancs d'historique ont été remplis), alors la valeur du paramètre d'entrée prev_calculated sera mise à zéro par le terminal lui-même".

 
Igor Makanu:

écrire un indicateur avec 4 tampons d'indicateur stockant OHLC - le remplir au premier démarrage de l'indicateur

Lorsque prev_calculated=0, vous écrivez dans le journal où il y a une divergence entre l' OHLC et les tampons, puis vous synchronisez les tampons de l'indicateur avec le nouvelOHLC.

HH : en principe, il est inutile de remplir les tampons d'indicateurs à la première occurrence - vous pouvez le faire à prev_calculated=0.

Oui merci, pour l'intérêt je vais faire un indicateur séparé, vérifier si les bougies changent ou s'il y a un service.

 
OrderModify TP et SL échoue dans une paire (HSI50), toutes les autres paires sont OK en DC. Manuellement, tout change, mais dès que l'on tente de modifier l'ordre, il n'y a pas moyen, même TP et SL ne peuvent être supprimés de l'ordre. L'erreur montre un prix invalide (129). Il est évident que OrderModify y est interdit (je ne sais pas trop pourquoi).
Question, quelqu'un a vérifié pour OrderModify ? Comment le vérifier ?
P.S. La spécification du contrat est HSI50 (accès complet).
 
Bonjour !
Chez un courtier, MarketInfo() s'envole constamment (une ou deux fois par jour), prend la valeur 0 ( spécifiquement MODE_MARGINREQUIRED). C'est plutôt normal, mais en même temps il n'y a aucune tentative d'atteindre l'indicateur iCustom() (connecté par une ressource). Même après que MarketInfo() ait reçu des données, iCustom() reste silencieux. Seul le redémarrage du terminal est utile. Comment accéder à l'indicateur sans redémarrer le terminal, des idées ? L'indicateur peut-il disparaître d'une ressource quelconque ?
 
Nauris Zukas:
Bonjour !
Un courtier fait constamment (une ou deux fois par jour) s'envoler MarketInfo(), obtient la valeur 0 ( MODE_MARGINREQUIRED spécifiquement). C'est plutôt normal, mais en même temps il n'y a aucune tentative d'atteindre l'indicateur iCustom() (connecté par une ressource). Même après que MarketInfo() ait reçu des données, iCustom() reste silencieux. Seul le redémarrage du terminal est utile. Comment accéder à l'indicateur sans redémarrer le terminal, des idées ? L'indicateur peut-il disparaître d'une ressource quelconque ?

C'est la question à laquelle j'aimerais avoir une réponse.

 
Est-il techniquement possible de savoir si le courtier travaille en mode normal ou FIFO sans ouvrir de transactions ? J'ai cherché dans toute la documentation et je n'ai pas trouvé un tel paramètre. Si vous êtes un type de compte de compensation, alors la couverture est désactivée.
 
Bonjour !

Je ne me souviens pas avoir rencontré "array out of range" pour Time[1], mais ce fait s'est produit dans EA. Effectuez-vous une sorte de vérification pour "array out of range" pour les variables de tableau prédéfinies-Timeseries?