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

 
SEM:

Essayer de normaliser TakeProfit pour Sell

SYMBOL_DIGITS est également une constante. Il ne renvoie PAS"le nombre de décimales dans un symbole de citation". Il indique à SymbolInfoInteger() la valeur de la propriété de caractère entier à retourner.
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Artyom Trishkin:
SYMBOL_DIGITS est également une constante. Il ne renvoie PAS la valeur "nombre de décimales dans un symbole de citation". Il indique à SymbolInfoInteger() la valeur de la propriété de caractère entier à retourner.

OK, alors comment normaliser le TP pour la vente ?

  Print(NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));

renvoie également unclear = (EURUSD,M15) 1e-05

 
SEM:

Ok, alors comment normaliser le TP pour la vente ?

renvoie également unclear = (EURUSD,M15) 1e-05

1e-05 est un à la puissance moins cinq, c'est-à-dire 0,00001. Qu'est-ce qu'on t'a appris au lycée ?

 
SEM:

Ok, alors comment normaliser le TP pour la vente ?

renvoie également un incompréhensible = (EURUSD,M15) 1e-05

Vous l'avez normalisé pour le robot.

Vous devez utiliserDoubleToString pour afficher les impressions.

 Print(DoubleToString(SymbolInfoDouble(Symbol(),SYMBOL_POINT),(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)));
 
Vitaly Muzichenko:

Pour le robot, vous avez normalisé.

Vous devez utiliserDoubleToString pour afficher les impressions.

Merci pour votre aide ! En résumé :

double _SYMBOL_POINT_ = SymbolInfoDouble(Symbol(),SYMBOL_POINT);
int _SYMBOL_DIGITS_   = (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS);


{
  double _PriceCurrent_TakeProfit =NormalizeDouble(m_position.PriceOpen()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_) ;
  double _PriceCurrent=NormalizeDouble(m_position.PriceCurrent()-(TakeProfit*_SYMBOL_POINT_),_SYMBOL_DIGITS_);
}
 
Franklins100:

C'est une idée, mais les tests croisés ne produiront pas de résultats précis, à mon avis. Les tests, toujours selon mon opinion inexpérimentée, devraient être effectués dans une version finale et complète. La question qui se pose est la suivante : comment et selon quels paramètres informatiques est-il possible d'accélérer les tests autant que possible, sans avoir recours à la puissance d'un tiers. GPU ou CPU ?

Les tests croisés sont aussi précis que les tests directs. Si vous comprenez toutes les variables, vous spécifiez une étape acceptable pour les variables lors de leur division en groupes. Ensuite, en fonction de l'image 3D, vous pouvez sélectionner un ou plusieurs groupes de valeurs pour chaque groupe de variables à la suite de tests. Enfin, vous réalisez un test complet avec une gamme étroite et une grande discrétisation des paramètres.

J'exécute un conseiller expert comme celui-ci chaque samedi. Plus de 300 variables. Pendant la journée, je fais des tests croisés. Puis je fais fonctionner le principal la nuit. Le dimanche, j'analyse les résultats. J'analyse ce qui a changé par rapport au jeu de la semaine dernière. Et puis, en fonction de la situation, il m'arrive d'effectuer des tests supplémentaires. Je fais tout fonctionner sur deux ordinateurs.

Au final, cela prend environ 30 heures de machine. Si je le lançais directement, je pense que l'ordinateur se bloquerait :) pendant environ deux semaines. Tu dois faire ce que tu peux pour que ça marche.

La vitesse des tests affecte le processeur central (pour MT5 exactement).

Il m'a fallu beaucoup de temps pour effectuer les tout premiers tests. Maintenant, je l'utilise depuis la semaine dernière. Je pense que chaque EA a ses propres subtilités. J'ai simplement introduit des coefficients et les paramètres de base sont très rarement modifiés. Il s'avère que je m'adapte surtout à la volatilité. De plus, j'ai un module d'actualités sérieux avec une ventilation individuelle par type d'actualités, et pas seulement trois étoiles :) En général, je pense que les "nouvelles" sont le point le plus faible de toutes les EA. En outre, il y a les périodes de "changement de contrat", "d'expiration de l'option". Ils valent également la peine de travailler avec eux.

 
Franklins100:

C'est une idée, mais les tests croisés ne produiront pas de résultats précis, à mon avis. Les tests, toujours selon mon opinion inexpérimentée, devraient être effectués dans une version finale et complète. La question qui se pose est la suivante : comment et selon quels paramètres informatiques est-il possible d'accélérer les tests autant que possible, sans recourir à la puissance d'un tiers. GPU ou CPU ?

Il y a un sujet sur les tests :Évaluation des cœurs de CPU pour l'optimisation.

Оцениваем ядра CPU для оптимизации
Оцениваем ядра CPU для оптимизации
  • 2019.08.09
  • www.mql5.com
Предлагаю собрать статистику по производительности разных процессоров с целью оценки их эффективности для работы тестера стратегий в режиме оптимиз...
 
Vladimir Karputov:

Il y a un sujet sur les tests :Evaluation des cœurs de CPU pour l'optimisation.

BenditO:

La validation croisée est aussi précise que les tests directs. Si vous comprenez toutes les variables, vous spécifiez un pas acceptable pour les variables lors de leur regroupement. Selon la vue 3D, vous pouvez sélectionner un ou plusieurs groupes de valeurs pour chaque groupe de variables en fonction des résultats. Enfin, vous réalisez un test complet avec une gamme étroite et une grande discrétisation des paramètres.

J'exécute un conseiller expert comme celui-ci chaque samedi. Plus de 300 variables. Pendant la journée, je fais des tests croisés. Puis je fais fonctionner le principal la nuit. Le dimanche, j'analyse les résultats. J'analyse ce qui a changé par rapport au jeu de la semaine dernière. Et puis, en fonction de la situation, il m'arrive d'effectuer des tests supplémentaires. Je fais tout fonctionner sur deux ordinateurs.

Au final, cela prend environ 30 heures de machine. Si je le lançais directement, je pense que l'ordinateur se bloquerait :) pendant deux semaines. Tu sais, tu dois faire ce que tu peux pour que ça marche.

La vitesse des tests affecte le processeur central (pour MT5 exactement).

Il m'a fallu beaucoup de temps pour effectuer les tout premiers tests. Maintenant, je l'utilise depuis la semaine dernière. Je pense que chaque EA a ses propres subtilités. J'ai simplement introduit des coefficients et les paramètres de base sont très rarement modifiés. Il s'avère que je m'adapte surtout à la volatilité. De plus, j'ai un module d'actualités sérieux avec une ventilation individuelle par type d'actualités, et pas seulement trois étoiles :) En général, je pense que les "nouvelles" sont le point le plus faible de toutes les EA. En outre, il y a aussi les périodes de "changement de contrat" et "d'expiration de l'option". Je les ai aussi pour travailler.

Merci beaucoup.

 

Bonne journée à tous !

J'essaie d'apprendre des choses élémentaires dans MQL5, mais j'ai soudainement rencontré un message d'avertissement affiché dans l'image ci-jointe lors de la compilation du code copié à partir de MQL5 Reference.

Je me demande s'il n'y a pas aussi des erreurs dans la référence MQL5. Pouvez-vous me dire ce qu'il faut corriger dans le code (ou dans laréférence MQL5 elle-même) pour éviter un tel avertissement ?

Sincèrement, Vladimir.




Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...
 
MrBrooklin:

Bonne journée à tous !

J'essaie d'apprendre des choses élémentaires dans MQL5, mais j'ai soudainement rencontré un message d'avertissement affiché dans l'image ci-jointe lors de la compilation du code copié à partir de MQL5 Reference.

Je me demande s'il n'y a pas aussi des erreurs dans la référence MQL5. S'il vous plaît, pouvez-vous me dire ce qu'il faut corriger dans le code (la référence MQL5 elle-même serait également utile) pour éviter un tel avertissement ?

Sincèrement, Vladimir.

Oui, il y a quelques inexactitudes dans l'aide.