Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1177
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour !
Pouvez-vous m'indiquer comment configurer l'indicateur pour qu'il ne fonctionne qu'à l'ouverture de la barre, et non à chaque tick, et comment faire en sorte qu'il ne s'exécute pas à chaque fois (à chaque nouvelle barre) sur l'ensemble de l'historique ?
Je voudrais utiliser l'indicateur comme indicateur d'ouverture de barre, et je vous remercie d'avance.
Rostislav
Tout d'abord, à propos des barres. Lorsqu'une nouvelle barre est formée, une nouvelle valeur est écrite dans Time[0] - le moment où la barre s'ouvre.
OnCalculate(...)
{
if(Time[0] == t) return(0) ; // Si cette barre est traitée --> exit
t = Time[0] ;
Maintenant pour toute l'histoire : elle va ralentir
date t ;
D'abord, à propos des barres. Lorsque nous formons une nouvelle barre, nous écrivons une nouvelle valeur dans Time[0] - le moment où la barre s'ouvre.
OnCalculate(...)
{
if(Time[0] == t) return(0) ; // si cette barre est traitée --> exit
t = Temps [0] ;
Maintenant, pour toute l'histoire : il va ralentir
Merci pour cette réponse rapide. Ce que je demande, c'est comment faire pour qu'il ne ralentisse pas et ne passe pas par l'historique lorsqu'une nouvelle barre apparaît, mais qu'il traite simplement la nouvelle barre...
Maintenant, il est organisé comme suit : for(int i=limit-1 ; i>=0 ; i--) et tel que je le comprends, cela signifie qu'à chaque ouverture d'une barre, toutes les valeurs sur l'historique entier seront recalculées à nouveau, alors que vous devriez travailler seulement avec la dernière barre...
C'est ainsi qu'il calcule sur la dernière barre :
Examinons d'abord la ligne
pour que ce soit plus clair pour moi, je l'ai réécrit de cette façon.
Aha !!! Maintenant je commence à comprendre... Dans la boucle, la variable a passe de 1 à 6. Avec les valeurs de cette variable 1, 5 et 6, il n'y a pas d'action. Ensuite, juste
Ou dans votre style.
Le résultat sera le même mais il sera plus rapide !
Maintenant, vous devez vous débarrasser de la fonction Statistic, écrire son corps trois fois de suite, remplacer les paramètres formels dans chacune des trois parties par des paramètres réels et supprimer les déclarations de variables dupliquées. Le code total sera un peu plus long mais l'exécution sera plus rapide. Il est logique de lancer print() - qui exactement à ce moment-là va regarder le journal des messages ? - Ou bien remplacez-le par Alert() pour l'afficher à l'écran. De plus, il y a une variable namZz2 - sa valeur change-t-elle ?
Je dois utiliser stats() au lieu de stats(). Stupidement, je sais que je peux réécrire trois fois, comme vous l'avez dit, mais le problème est que le résultat de la collecte de statistiques devra très probablement ajouter d'autres tableaux et que je reviendrai tôt ou tard aux tableaux d'origine. C'est pourquoi je vous propose des moyens simples, que je connais déjà, et qui me mèneront malheureusement au début. C'est pourquoi je regarde devant moi, afin de ne pas avoir à y revenir dans le futur !
comment mettre ce code dans le statisticien !? pour être une procédure unique vous au début comme j'ai énoncé la question s'il vous plaît regarder !
Voici comment il est calculé sur la dernière barre :
Voici un extrait du code de travail ! Comment le collecter en une seule statistique de vide sans statistique de vide intermédiaire ! Je devrais retravailler l'ensemble du code afin de rassembler tous les tableaux en un seul et essayer de le faire à partir de là !
L'extrait de votre code de travail que vous avez cité est soit erroné, soit votre fonction Statistic() ne fait rien d'autre qu'imprimer lorsqu'elle est appelée par Stat().
De toute façon, ça s'arrêtera juste après le retour ;.
Veuillez nous donner le code entier pour comprendre ce que vous voulez.
Pour mémoire. Trop de fils sur le forum pour aider les débutants sur MQL4.
Ce fil de discussion n'est plus pris en charge et est fermé.
Veuillez adresser toutes vos questions à l'un des fils de discussion actifs suivants :
https://www.mql5.com/ru/forum/160683
https://www.mql5.com/ru/forum/160587
Tous les autres messages dans ce fil seront supprimés.