Questions des débutants MQL5 MT5 MetaTrader 5 - page 158

 
pronych:

Comment déclencher une mise à jour forcée des indicateurs depuis l'intérieur, c'est-à-dire l'événement OnCalculate ?

Donc, s'il n'est pas réparé (vous trouverez ci-dessous les problèmes qui peuvent survenir).

Ou par minuterie (quelque chose comme ceci).

 
Silent:

Donc, s'il n'est pas réparé (vous trouverez ci-dessous les problèmes qui peuvent survenir).

Ou sur un minuteur (peu importe).

Je vois. )) Avez-vous essayé de demander une fonctionnalité interne ?

 
pronych:

Je vois. )) Avez-vous essayé de demander une fonctionnalité interne ?

Je ne l'ai pas fait, en général oui (je pense que MetaDraiver a écrit à SD), et la question a été soulevée plusieurs fois sur le forum.

La réponse des développeurs, s'il y en a une, je ne la connais pas.

PS peut être utile.

Développement de l'indicateur de volatilité multidevises en MQL5

Le développement d'un indicateur multidevises pour l'analyse de la divergence des prix

Je pense qu'il aurait dû être publié ici, je ne l'ai pas trouvé.

Dans la première, s'il y a une erreur

Ligne 40 de CCanvas canvas ; erreur

Variable statique non résolue "CCanvas::m_default_colors".

ajouter

uint CCanvas::m_default_colors[9]={0} ;

Discuté il y a longtemps, je ne l'ai pas vérifié, qu'est-ce qui a changé ?

Разработка мультивалютного индикатора волатильности на MQL5
Разработка мультивалютного индикатора волатильности на MQL5
  • tol64.blogspot.com
В этой статье рассмотрим разработку мультивалютного индикатора волатильности. Начинающий разработчик на MQL5 может столкнуться с некоторыми сложностями при разработке мультивалютных индикаторов, но после прочтения этой статьи всё станет намного проще. Основные вопросы при разработке мультивалютного индикатора относятся к синхронизации данных...
 

Bien, essayons d'avoir Metadriver. Peut-être pourra-t-il nous éclairer sur les réponses des développeurs. Volodya...

Володя (песня измученного ангольского народа)
Володя (песня измученного ангольского народа)
  • my.mail.ru
Песня посвящена ангольскому революционеру одному из командиров MPLA, убитому в 1975 году (в Луанде в честь него названа одна из улиц). Валодя – это было его боевое прозвище. После 75го года песня про Валодю была очень популярна в Анголе. Где только я ни слышал это имя, Незабываемое для сынов Анголы. Володя, Володя, Володя, славный защитник ангольского народа! Володя, Володя, Володя, противник империалиста, Который собирается установить режим...
 
pronych:

Bien, essayons d'avoir Metadriver. Peut-être pourra-t-il nous éclairer sur les réponses des développeurs. Volodya...

Je n'ai pas bien compris la question. Je n'ai pas demandé un téléscripteur régulier. Comme si Silent au contraire allait ..., bref, nous espérions l'un pour l'autre.

Il y avait un cas indirect - déjà après qu'il a été découvert que la demande de données en dehors de TERMINAL_MAX_BAR provoque le rafraîchissement de tous les indicateurs sur le graphique.

J'ai retravaillé mon reloader de cartes à boutons et l'ai envoyé au Service Desk avec la nouvelle version. J'ai également demandé dans les commentaires si j'espérais que la puce continuerait à fonctionner... Ils n'ont rien dit... J'étais d'accord avec ça... J'en ai fait un film.

;)

--

Eh bien, à proprement parler, ce n'est pas un bug en fait. Le terminal ne plante pas, ne ralentit même pas beaucoup, il met juste à jour les données sur le graphique. Je comprends ce qu'ils font là. Comme : demande en dehors des données existantes -> le terminal essaie de charger les données, puis de mettre à jour le graphique. Simple et efficace. Pourquoi changer s'il n'y a pas de victimes ?

// A propos de "recalculer l'indicateur de l'intérieur", je ne comprends pas le problème. La question n'est pas claire. En interne, l'indicateur est son propre maître, il recalcule ce qu'il veut. Mais s'il utilise un signal externe, c'est une autre affaire. Puis on tourne...

 

Mec, peut-être que tu ne devrais pas.))

La manière dont prev_calculated affecte spécifiquement le rendu des indicateurs n'est pas très claire.

Dans mon cas, la tentative de rafraîchissement se produit à la fois par OnCalculate() et par timer. Multi-instrument.

Lors d'une tentative infructueuse d'obtenir des lignes, la fonction est interrompue jusqu'au prochain tick ou timer, aucun dessin n'a lieu, mais des valeurs non initialisées (comme il semble) apparaissent sur le graphique de quelque part.

Bien que dans Init() ArrayInitialize(Buffer ,...) soit présent.

Peut-être que j'ai un bug quelque part. Cela arrive assez rarement et il est difficile de l'attraper.

Il me semble que la fonction normale de mise en file d'attente forcée à OnCalculate() permettrait de minimiser le jeu de tambourin dans les indices multi-instruments pour les graphiques à ticks rares.

D'ailleurs, c'est écrit dans l'aide ;)

Все необходимые расчеты пользовательских индикаторов необходимо размещать в предопределенной функции OnCalculate().

PS. J'ai compris pour la "puce".

PSPS/ J'ai le sentiment que dans le cas donné il est plus fiable d'utiliser le calcul des valeurs sans utiliser d'indicateur pour un EA. Et séparément un indicateur pour la visualisation.

Mais alors je devrais calculer la même chose deux fois.

 
MetaDriver:

Je n'ai pas bien compris la question. Je n'ai pas demandé à l'habitué des tics de le faire. Je pensais que Silent allait..., bref, on comptait l'un sur l'autre.

...

Je veux dire ceci.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Erreurs, bogues, questions

MetaDriver, 2013.08.03 17:55

"

Si vous voulez être sûr d'avoir un signal d'entrée pour les indicateurs, vous devriez utiliser la suggestion de Pascal.

Pour mes besoins, ce n'est pas toujours approprié, mais dans le cas général, beaucoup de "problèmes de week-end" seraient éliminés.

Pour les experts en trading, en systèmes de trading automatisés et en tests de stratégies de trading.

Bugs, bugs, questions

MetaDriver, 2013.08.03 18:02

Je suis d'accord.

Une "commande" permettant de réinitialiser de force tous les prev_calculs pour le symbole sélectionné serait également utile. Avec la génération ultérieure de tiques, ce serait un bon combo.



 

Pendant le test visuel, au moment où l'indicateur est réinitialisé dans l'Expert Advisor, l'indicateur avec les anciens paramètres continue à être affiché sur le graphique dans le testeur (en fait, à chaque fois pendant la réinitialisation, une "ligne parallèle" supplémentaire est ajoutée). J'ai essayé de faire IndicatorRelease à chaque fois avant d'obtenir une nouvelle poignée - cela n'aide pas.

Obtenez de nouvelles poignées dans le code.

void f_indicator_reinit()
 { 
    
   IndicatorRelease(firstHandle);
   IndicatorRelease(secondHandle);
   IndicatorRelease(thirdHandle);
   IndicatorRelease(fourthHandle);  

   bughelper=bughelper+1;
   
   firstHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,HotPink,HotPink,10,MODE_SMA,PRICE_CLOSE,1);
   secondHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,White,White,10,MODE_SMA,PRICE_CLOSE,2);   
   thirdHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Red,Red,10,MODE_SMA,PRICE_CLOSE,3);   
   fourthHandle=iCustom(NULL,0,"indicatorname.ex5",12+bughelper,ind_s,Gold,Gold,10,MODE_SMA,PRICE_CLOSE,4); 
 }  

J'ai introduit la variable bughelper parce que l'indicateur ne se recalculait pas sans changer ses paramètres d'entrée.

 
Silent:

C'est ce que je veux dire.

J'ai résolu le problème du recalcul en demandant les données en dehors de TERMINAL_MAX_BAR.

Et puisque le graphique est mis à jour en général, il importe peu que la demande soit faite à partir de l'indicateur ou d'un programme externe. L'essentiel est que le programme (demandeur) demande des données pour ce symbole et cette période précis.

En fait, je n'ai pas rencontré de cas où je devais mettre à jour le graphique "sur la machine". Je suis entièrement satisfait de mon bouton // voir le lien ci-dessus.

Avec la génération de ticks ( sans mise à jour du graphique) le problème n'est pas résolu, mais je ne l'ai pas beaucoup résolu - il peut être évité dans la plupart des cas de plusieurs façons (principalement avec un timer).

 
IndicatorRelease(firstHandle);
Функция возвращает ошибку 4014 - 

ERR_FONCTION_NON_AUTORISÉE

4014

Fonction système non autorisée à être appelée

Veuillez m'indiquer la raison pour laquelleIndicatorRelease() n'est pas appelé.