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

 
Tapochun:
Tout dépend de la logique de l'indicateur. Le plus souvent - oui, dans la fonction OnCalculate().
Lafonction "OnCalculate()" est appelée uniquement dans les indicateurs personnalisés lorsqu'il est nécessaire de calculer les valeurs de l'indicateur par l'événementCalculate. Cela se produit généralement lorsqu'un nouveau tick arrive pour un symbole" - comment alors faire en sorte que le calcul ne soit exécuté qu'une seule fois à l'apparition d'une bougie. Dans mql4, il y avait une sorte de contrôle.
 
first_may:
Lafonction "OnCalculate()" est appelée uniquement dans les indicateurs personnalisés lorsqu'il est nécessaire de calculer les valeurs de l'indicateur par l'événementCalculate. Cela se produit généralement lorsqu'un nouveau tick est reçu par le symbole" - comment alors faire en sorte que le calcul ne soit exécuté qu'une seule fois à l'apparition d'une bougie. Dans mql4 il y a un contrôle.
La manière la plus simple, si ce n'est pas le premier tick (prev_calculated != 0) et rates_total > prev_calculated.
 
Tapochun:
Le plus simple est de ne pas être le premier tick (prev_calculated != 0) et rates_total > prev_calculated.
Ouais :). Je devrais peut-être trouver un exemple de croisement de deux moyennes mobiles exponentielles (je l'ai vu quelque part) et le refaire.
 
first_may:
Ouais :). Je devrais peut-être trouver un exemple de croisement de deux moyennes mobiles exponentielles (je l'ai vu quelque part) et le refaire.
Quand on commence, il est toujours préférable de faire des exemples ! Des lignes de code séparées ne vous aideront guère. Bonne chance !
 

Comment intercepter l'événement de clôture sur le tick actuel ? Il n'y a pas de moyens standards ? Par exemple, lorsque vous ouvrez une transaction, vous devez écrire quelque chose comme : et ensuite vérifier à chaque tick :

//Инициализация
int totalOrders=0;
...
//Открытие новой сделки
int ticket = OrderSend(....)
if(ticket > 0)
    totalOrders++;

et ensuite vérifier chaque tique :

if(totalOrders != OrdersTotal())
    //Обработка события закрытия сделки
 
gammaray:

Comment intercepter l'événement de clôture sur le tick actuel ? Il n'y a pas de moyens standards ? Par exemple, lorsque vous ouvrez une transaction, vous devez écrire quelque chose comme : et ensuite vérifier à chaque tick :

et ensuite vérifier chaque tique :

Vous devez comparer le nombre de positions surveillées sur le tick précédent avec le nombre sur le tick actuel. Si le tick actuel est devenu inférieur - nous enregistrons (mémorisons) la valeur actuelle des positions suivies comme "passées" et traitons le fait de fermer.
 
gammaray:

Comment intercepter l'événement de clôture sur le tick actuel ? Il n'y a pas de moyens standards ? Par exemple, lorsque vous ouvrez une transaction, vous devez écrire quelque chose comme : et ensuite vérifier à chaque tick :

et ensuite vérifier chaque tique :

Je ne comprends rien. Quelle valeur voulez-vous obtenir ?

J'ai lu ce que vous avez écrit de cette façon

{

Ouverture d'une commande ;

Si l'ordre s'ouvre, alors

TotalOrder = TotalOrder+1 ;

}

) par défaut totalOrder = 0, mais après chaque ouverture d'un ordre la valeur augmentera, après 10 ouvertures (la valeur sera exactement 10) le compteur de toutes les positions ouvertes (pas de vérification par type, par Magik et par symbole = il ajoutera absolument tous les ordres ouverts)

Et la condition suivante ressemble à ceci

si TotalOrder n'est pas égal àOrdersTotal {}

 
Bonjour à tous ! Je fais appel aux personnes compétentes. J'ai besoin d'un Expert Advisor simple, dont la tâche sera de changer les stops sur les ordres déclenchés sur les chandeliers BAS ou HAUT à chaque période de la TF. J'ai moi-même une table, malheureusement. Je ne sais pas si elle a déjà été placée là. Je ne l'ai pas trouvé. Qu'est-ce que c'était - avec des additifs qui encombrent.

 
mefos:
Bonjour à tous ! Je fais appel aux personnes compétentes. J'ai besoin d'un simple EA, dont la tâche sera de changer les stops sur les ordres déclenchés sur les chandeliers BAS ou HAUT à chaque période de la TF. J'ai moi-même une table, malheureusement. Je ne sais pas si elle a déjà été placée là. Je ne l'ai pas trouvé. Qu'est-ce que c'était - avec des additifs qui encombrent.

C'est pour vous, cher garçon, au bureau des commandes. Ici, seulement des conseils et de l'aide pour les problèmes de code.
 
Ivan Vorontsov:
C'est à vous, mon pote, de vous adresser au bureau des commandes. Ils ne donnent que des conseils et de l'aide pour les problèmes de code ici.
+++
Raison: