[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 632
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
Par exemple, vous devez calculer une moyenne mobile simple avec PeriodSMA. Pour calculer la SMA, additionnez les valeurs des dernières barres de la PeriodSMA et divisez par la PeriodSMA. Il est évident que pour les barres avec les numéros Bars-1, Bars-2, ..., Bars-PeriodSMA+1, cela ne fonctionnera pas, car nous n'avons tout simplement pas le nombre de barres nécessaires pour le calcul (la barre la plus à gauche a l'indice Bars-1). Par conséquent, nous devons commencer le calcul de l'indicateur non pas avec la dernière barre du graphique, mais avec la barre avec l'indice Bars-PeriodSMA.
Pourquoi écrivent-ils cette valeur, et non une valeur arbitraire ? C'est parce que ce décalage du début du calcul nous permet de calculer la quantité maximale de barres sans préjudice de l'exactitude du calcul.
Mais n'oubliez pas qu'il s'agit du cas le plus simple. Parfois, le code ne permet pas de savoir immédiatement de combien de barres précédentes le programme a besoin pour le calcul et d'où provient exactement ce décalage. Eh bien, vous devriez probablement demander au développeur qui a écrit le code. Mais en général, il y a un moyen universel - il suffit de regarder le code, ce qu'en principe l'indice maximal de la barre peut être obtenu en utilisant les données de prix et les données des tampons d'index pendant le fonctionnement du programme, généralement déjà à ce stade il devient clair ....
Merci pour cette précision !
Et juste pour clarifier, si j'ajoute mécaniquement 0, est-ce que TP et SL fonctionneront dans ce type de terminal ?
Ils le feront, bien sûr qu'ils le feront.
C'est à ça qu'ils servent, des variables externes, pour fixer n'importe quelle valeur.
Mais il est plus facile de placer dans le module d'initialisation ce qui vous a été conseillé.
Ou sous cette forme :
Les variables seront ajustées automatiquement, et pour d'autres besoins, utilisez le multiplicateur "décimal".
Спасибо за разъяснения!
И просто чтобы уточнить, если я механическим путем добавлю 0, то TP и SL будут работать в данном типе терминалов?
prorab:
Ils le feront, bien sûr.C'est à ça qu'ils servent, des variables externes, pour fixer n'importe quelle valeur.
Mais il est encore plus facile de mettre ce que l'on vous a conseillé de faire dans le module d'initialisation.
Ou sous cette forme :
Les variables seront automatiquement ajustées, et pour d'autres besoins, utilisez le multiplicateur "décimal".
Cette tâche doit être clarifiée :
Bon après-midi...
SOS! !! BONNES GENS, À L'AIDE !!! Je suis un débutant en programmation en général (je suis autodidacte), et en MQL en particulier. J'ai écrit un indicateur simple : RSI + Bandes de Bollinger en une seule personne. Mais voici le problème : si je ne spécifie pas expressément la quantité d'éléments dans le tableau Buf_std_dev (c'est-à-dire que la ligne de déclaration du tableau ressemble à ceci : double Buf_std_dev[]), lorsque j'affiche cet indicateur dans la fenêtre du terminal client(CT), j'obtiens l'image suivante :
Explication de la photo :
a) en haut se trouve le RSI, qui est disponible dans le jeu d'indicateurs fourni avec CT, et les bandes de Bollinger ont été glissées dans la fenêtre de ce RSI par glisser et drop) ;
b) en bas se trouve le RSI, qui est programmé par moi ;
Le compilateur ne détecte aucune erreur ou avertissement.
Si, par contre, lors de la déclaration du tableau Buf_std_dev, je spécifie explicitement le nombre d'éléments qu'il contient (c'est-à-dire que la ligne de déclaration du tableau ressemble à ceci : double Buf_std_dev[5502], où 5502 est le nombre de barres, qui est obtenu à l'aide de la variable Bars), alors tout rentre dans l'ordre (comme on peut le voir en comparant les deux indicateurs : toutes les valeurs sont les mêmes) :
Pouvez-vous me dire ce qu'il faut faire pour sauvegarder l'image, comme sur la deuxième image, mais en évitant explicitement de définir le nombre d'éléments dans le tableau Buf_std_dev.
P.S. Merci d'avance pour la réponse.
Code joint (sans certaines parties - ne peut pas tenir dans 4 MB !!!):
Afficher tous les codes
Veuillez me dire s'il existe des moyens de transférer le code de plus de 4Mb ici (ou de le transférer ici en plusieurs parties ?) ?
Si votre Buf_std_dev n'est pas un tampon indicateur (un des huit), vous devez spécifier sa taille, ou n'importe quelle taille (si vous avez l'intention de la changer (taille) dans le futur) lors de sa déclaration.
C'est vrai, ce n'est pas... Si je peux me permettre, deux autres questions d'un coup :
1. Si je lui attribue un tampon (le tableau Buf_std_dev) , cela signifie qu'il sera également affiché dans la fenêtre de l'indicateur ?
Si je ne lui attribue pas de tampon, alors (si je comprends bien) la situation suivante se produira : supposons que j'ai spécifié une taille de 100 barres. Ensuite, lorsque de nouvelles barres apparaissent (c'est-à-dire si par exemple Bars=101), nous effectuerons les calculs uniquement pour les 100 dernières barres que nous avons spécifiées (c'est-à-dire que la barre la plus ancienne - 101 - sera écartée). Ainsi, lors du chargement de l'historique, la taille du tableau sera toujours égale à 100 barres seulement (ou une autre valeur, que je préciserai lors de la déclaration) ?