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

 
Franklins100:
Merci pour les réponses. Code par code. Le code sera optimisé, mais à mesure que nous ajoutons de nouveaux indicateurs et que nous augmentons l'historique, le temps d'exécution augmente. Dans quelle mesure le matériel informatique influe-t-il sur le temps d'exécution (nécessité d'un processeur ou d'un processeur graphique perfectionné) ? Il y a énormément de questions et j'adorerais en parler à un gourou ;)

Lestests peuvent être accélérés de nombreuses fois s'il est possible de diviser les variables en groupes et de les soumettre à des tests croisés. Ce schéma est possible si vous comprenez comment un EA est construit et qu'il a des variables indépendantes, c'est-à-dire que leur changement n'affecte pas le résultat lorsque d'autres variables sont exécutées.

S'il y a beaucoup de variables, le temps consacré aux tests peut être réduit de plusieurs centaines de fois.

De plus, mt5 vous permet de connecter des tiers pour des tests.

Как протестировать торгового робота перед покупкой
Как протестировать торгового робота перед покупкой
  • www.mql5.com
Покупка торгового робота в MQL5 Маркете имеет одно большое преимущество перед всеми другими подобными предложениями -  вы можете устроить комплексную проверку предлагаемой автоматической системы прямо в терминале MetaTrader 5. Советник перед покупкой можно и нужно тщательно прогнать во всех неблагоприятных режимах во встроенном тестере торговых...
 
BenditO:

Lestests peuvent être accélérés à plusieurs reprises s'il est possible de diviser les variables en groupes et de les soumettre à des tests croisés. Ce schéma est possible si vous comprenez comment un EA est construit et qu'il a des variables indépendantes, c'est-à-dire que leur changement n'affecte pas le résultat lorsque d'autres variables sont exécutées.

S'il y a beaucoup de variables, le temps consacré aux essais peut être réduit de plusieurs centaines de fois.

De plus, mt5 permet de connecter des tiers pour les tests.

C'est une idée mais les tests croisés ne donneront pas de résultats exacts à mon avis. Les tests, toujours selon mon opinion inexpérimentée, devraient être effectués dans une version finale et complète. Et voici une question : comment et grâce à quels paramètres informatiques peut-on accélérer les tests autant que possible sans recourir à une puissance tierce. GPU ou CPU ?

 
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 ?

Optimiser le code.

 
Vladimir Karputov:

Optimiser le code.

Je vais essayer d'être plus direct - j'ai la configuration suivante : 2pc Intel® Xeon® Gold 6126, 4pc Samsung DDR4 2666 Registered ECC LRDIMM 64Gb, 2pc Tesla P100 ou 2080ti (je réfléchis) Est-ce que j'obtiendrai de la vitesse dans ce cas avec cette configuration ou puis-je simplement ne pas m'en soucier et optimiser le code sur la calculatrice ? Je veux "jouer" avec un grand nombre d'indicateurs, d'historiques, pour tester tous les résultats, stratégies et variations possibles - pour acquérir de l'expérience, etc.

 
Franklins100:

Je vais essayer d'être plus direct - j'ai la configuration suivante : 2pc Intel® Xeon® Gold 6126, 4pc Samsung DDR4 2666 Registered ECC LRDIMM 64Gb, 2pc Tesla P100 ou 2080ti (je réfléchis) Est-ce que j'obtiendrai la vitesse dans ce cas avec cette configuration ou j'ai juste décidé de ne pas m'en soucier et d'optimiser le code sur la calculatrice ? Je veux "jouer" avec un grand nombre d'indicateurs, d'historiques, pour tester tous les résultats, stratégies et variations possibles - pour acquérir de l'expérience, etc.

Nous devons ouvrir une nouvelle branche en posant une question précise : "De quel matériel ai-je besoin pour optimiser instantanément un conseiller expert ?

 

Que doit retourner cette fonction ?

Imprimer(SYMBOL_POINT) ;

Pour EURUSD, j'obtiens 16, mais cela devrait être 0,00001.

mais Print(SymbolInfoDouble(Symbol(),SYMBOL_POINT)) ;

Il renvoie 9.999999999999996e-06

Est-ce un problème ou est-ce la même chose pour tout le monde ?
 
SEM:

Que doit retourner cette fonction ?

Imprimer(SYMBOL_POINT) ;

Pour EURUSD, j'obtiens 16, mais cela devrait être 0,00001.

mais Print(SymbolInfoDouble(Symbol(),SYMBOL_POINT)) ;

Il retourne 9.999999999999996e-06

https://www.mql5.com/ru/docs/convert/doubletostring

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 
comment obtenir une valeur ponctuelle pour l'EURUSD ? J'obtiens 16 au lieu de 0,00001.
 
SEM:
comment obtenir la valeur du point unique pour l'EURUSD ? J'obtiens 16 au lieu de 0.00001

Qu'est-ce que vous imprimez exactement ?

SYMBOL_POINT est une constante prédéfinie. C'est-à-dire que vous imprimez la valeur numérique de la constante.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Artyom Trishkin:

Qu'est-ce que vous imprimez exactement ?

En essayant de normaliser TakeProfit pour Sell, j'obtiens TP = -130

 int TakeProfit=100;//Profit

double _PriceCurrent_TakeProfit = NormalizeDouble(m_position.PriceOpen()-(TakeProfit*SYMBOL_POINT),SYMBOL_DIGITS) ;
Raison: