Erreurs, bugs, questions - page 1142

 
VersMigVRN

Merci pour l'article et l'indicateur ! Je m'en occupe.


 
harbor:

Qui peut me dire comment calculer dans mql5le montant des fonds libres nécessaires pour ouvrir un lot d'un certain symbole ?

Je sais comment faire dans mql4, mais dans mql5, je ne trouve pas.

double marg;
OrderCalcMargin(ORDER_TYPE_BUY, sym, 1, tick.ask, marg);
 
Les vidéos Youtube ne sont pas insérées avec HTTPS.
 
MigVRN:

1) Ne créez pas d'indicateurs sur chaque tick !

2) Vérifier si l'indicateur est créé ou non, avant d'accéder à ses valeurs.

3) Vérifiez si les valeurs demandées sont copiées à partir de l'indicateur.

4) Supprimez toujours la partie calcul de l'indicateur après la fin de l'expert, sinon il risque de manquer de RAM à un moment donné.

Le problème est dû au fait que vous avez essayé de copier les valeurs de l'indicateur qui n'a pas encore été créé. Établissez une règle - vérifiez le résultat des fonctions que vous appelez.

Merci, je l'ai eu !

Mais je modifie les paramètres d'entrée des indicateurs BP_var_s, BDev_var_s et MA_var_s "au fur et à mesure". Que faire dans ce cas ? Créer et supprimer à chaque fois selon....

 
Alvin1976:

Merci, je l'ai eu !

Je modifie uniquement les paramètres d'entrée des indicateurs BP_var_s, BDev_var_s et MA_var_s "au fur et à mesure". Que faire dans ce cas ? Créer et supprimer à chaque fois selon....

Plusieurs options s'offrent à vous :

1) Les paramètres des indicateurs évoluent dans le temps en fonction de certains critères (conditions). Il n'est donc pas nécessaire de recréer les poignées à chaque tic. Vérifiez la condition et, si elle est remplie, recréez-la.

Supposons que la condition est qu'un événement de "nouvelle barre" se produise sur une période d'une minute. Les exemples de la définition d'un événement "nouveau bar" sont nombreux - cherchez sur le site web. Je préfère cette variante.

2) S'il est toujours nécessaire à chaque tick - d'attendre la fin de la vérificationCopyBuffer() dans la boucle (en utilisant sleep()). Mais le plus probable est que les tics seront ignorés. Une autre solution consiste à calculer les ticks non pas pour l'ensemble de l'historique, mais pour les quelques centaines de barres les plus récentes (pour entrer dans le code des indices standard et pour corriger le code) - cela permettra de sauter moins de ticks.

 

Un autre problème est apparu.

long Min_Dist;

bool Inf=(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL,Min_Dist));
      if (Inf=true) Print("      mindist=", DoubleToString(Min_Dist)); 

La variable Min_Dist dans le testeur donne zéro tout le temps. Je ne l'ai pas encore vérifié sur le marché réel.

Pourquoi zéro ? Il lit avec succès.....

 
Alvin1976:

Un autre problème est apparu.

La variable Min_Dist dans le testeur donne zéro tout le temps. Je ne l'ai pas encore vérifié sur le marché réel.

Pourquoi zéro ? Il lit avec succès.....

Essayez comme ça :
long Min_Dist;

Min_Dist=(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_STOPS_LEVEL);
      //if (Inf=true) Print("      mindist=", DoubleToString(Min_Dist)); 
Vérifier la valeur réelle de SYMBOL_TRADE_STOPS_LEVEL
 
barabashkakvn:
Essayez ceci : vérifiez la valeur réelle de SYMBOL_TRADE_STOPS_LEVEL.

C'est la même chose. Zéro. :(.

Dans le testeur.

Je vérifierai au marché lundi.

J'ai compris. C'est le problème du concessionnaire. Et pas seulement un :-). Je ne l'ai pas compris tout de suite parce que google n'a rien donné d'utile sur SYMBOL_TRADE_STOPS_LEVEL mais MODE_STOPLEVEL a donné beaucoup d'informations.

Je vais utiliser SYMBOL_SPREAD.

 
Roffild:
Les vidéos Youtube ne sont pas insérées avec HTTPS.
Pourquoi Youtube a-t-il un HTTPS ? Voici le code habituel pour la vidéo -http://youtu.be/KG0PIVuJ2kU
 
barabashkakvn:
Pourquoi Youtube a-t-il un HTTPS ? Voici le code habituel pour la vidéo -http://youtu.be/KG0PIVuJ2kU
Tout arrive ! Suivez le lien.