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, on m'a envoyé un indicateur MA avec tous les niveaux dont j'ai besoin. Le problème est que lorsque je passe ma souris sur l'indicateur (chaque MA), il n'affiche pas la période de cette MA. Comment le réparer ? Il y a une erreur de syntaxe constante lors du changement de nomIndicatorShortName("MASHKI =)") ; Veuillez m'aider.
le nom du tampon de l'indicateur est défini à l'aide de SetIndexLabel
1. Quel est le moyen le plus simple de savoir que l'appel de la fonction est sur le même tick que l'appel précédent ?
Le temps (TimeCurrent) peut rester le même, le temps en ms de SymbolInfoTick, théoriquement aussi.
La comparaison des temps d'offre, de demande et de ms est assez coûteuse.
Je ne suggère pas d'organiser le contrôle dans le conseiller expert lui-même, je veux obtenir une fonction indépendante universelle.
La même question concerne les opérations commerciales. Comment savoir si quelque chose a changé dans la liste des ordres/positions (y compris les niveaux ouverts, SL et TP) depuis la dernière exécution ?
Je devrais placer un drapeau dans OnTrade (et le réinitialiser une fois terminé), c'est le moyen le moins cher.
Mais, encore une fois, j'aimerais une solution universelle.
Qui a une idée ?
Andrey Khatimlianskii:
Exemple https://www.mql5.com/ru/code/16997
Fichier Resources.mqh.
Fonction IsNewPeriod
L'idée de base est d'utiliser une fonction avec des statiques à l'intérieur.
Vous pouvez le stocker dans ID = GetMicroSecondsCount pour vous en souvenir et vérifier les ticks.
Pour la même chose avec les commandes - vérifier la magie
Je n'ai pas vérifié le pseudo-code ci-dessous :)
2. Question similaire pour les métiers. Comment puis-je savoir si quelque chose a changé dans la liste des ordres/positions (y compris les niveaux ouverts, SL et TP) depuis la dernière exécution ?
En A, nous devons définir une sorte de drapeau dans OnTrade (et le réinitialiser après l'exécution), c'est le moyen le plus économique.
Mais, encore une fois, j'aimerais une solution universelle.
Qui a une idée ?
Ajoutez vos conditions (SL/TP etc.) ici.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Organiser un cycle de débordement des commandes
fxsaber, 2017.10.18 12:29
1. Quel est le moyen le plus simple de savoir que l'appel de la fonction est sur le même tick que l'appel précédent ?
Le temps (TimeCurrent) peut rester le même, le temps en ms de SymbolInfoTick, théoriquement aussi.
La comparaison des temps d'offre, de demande et de ms est trop coûteuse.
Je ne suggère pas d'organiser le contrôle dans l'EA lui-même, je veux obtenir une fonction indépendante universelle.
Le problème ici n'est pas le prix, mais la fiabilité de la numérotation des tics. Je fais les choses suivantes dans mon EA.
Il s'agit de la version de la fonction pour MT4. Numérotation par indicateur d'espionnage.
Je n'inclus pas la version de la même fonction pour MT5 car les choses inutiles doivent être supprimées. Mais elle est basée sur cette fonction.
S'il renvoie une valeur non nulle - nouveau tick.
L'idée de base est d'utiliser une fonction avec des statiques à l'intérieur.
Pour se souvenir et réconcilier les ticks, vous pouvez stocker dans ID = GetMicroSecondsCount
Merci !
Tout le problème réside dans cet identifiant unique (numéro de ticket), qui n'existe pas.
GetMicroSecondsCount n'aidera pas, car il changera entre les appels (c'est pour cela qu'il est conçu), alors que GetTickCount, théoriquement, ne peut pas changer sur 2 ticks adjacents.
Le problème ici n'est pas le caractère bon marché, mais la fiabilité de la numérotation des tics. Dans une EA de combat, je le fais de cette façon.
Non, il sera certainement plus lent qu'une comparaison bid/ask/ms.
Quel est le problème de la fiabilité ? C'est seulement le fait de changer quelque chose qui compte.
Ajoutez vos conditions (SL/TP etc.) ici.
Je me suis immédiatement souvenu de ce code.
Mais il s'agit simplement d'éviter une énumération inutile de tous les ordres.
Il est clair que nous pouvons faire de cette boucle une boucle unique pour l'ensemble de l'EA. Mais dans ce cas, nous devrions passer à la fonction un signe de changement (nous pouvons aussi bien ne pas l'appeler).
Non, elle sera certainement plus lente qu'une comparaison entre les cours d'achat et les cours de vente.
Quel est le problème de la fiabilité ? Tout ce qui compte, c'est que quelque chose change.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Toutes les questions de PROFi à SUPER PROFi - 1.
Andrey Khatimlianskii, 2020.03.05 23:46
Le temps (TimeCurrent) peut rester le même, le temps en ms de SymbolInfoTick, théoriquement, aussi.
Comparer l'offre, la demande et le temps dans msc est coûteux.
Particulièrement pertinent pour MT4 où le changement de pas de time_msc est de 1000ms.
Mais l'objectif est précisément d'éviter le chevauchement inutile de tous les ordres.
Il est clair que nous pouvons faire de ce cycle un cycle unique pour l'ensemble de l'EA. Mais alors nous devons passer à la fonction un signe de changement (nous pouvons aussi bien ne pas l'appeler).
Je ne comprends pas. Si quelque chose a changé dans la base de données, le seul moyen de le savoir est de le comparer avec l'état précédent de la base de données.
Vous pouvez comparer chaque élément de base de données correspondant. Ou vous pouvez calculer le hachage à partir d'eux et comparer les hachages.