Voici ce que vous pouvez faire avec OpenCL directement dans MetaTrader 5, sans aucune DLL. - page 16

 

Je vais vérifier le rendu.

Sans les doubles maths, il n'y a rien à faire dans notre domaine. D'autant plus en 2020.

Alors qu'aux premiers jours d'OpenCL, on pouvait encore chercher des compromis et se laisser tromper par la notion de "bien, vous pouvez calculer quelque chose en flottant", ce n'est plus le cas aujourd'hui.

Toute tentative de conversion de double -> int -> double tue complètement les performances et le profit, surtout sur les grandes tailles.

La bonne option est d'utiliser des formats natifs et des cartes plus modernes avec de nouveaux pilotes.

 

Le soutien est là :

OpenCL device name: GeForce GTX 1050 Ti with Max-Q Design
OpenCL device ext: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64
                   cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing
                   cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics


OpenCL device name: Intel(R) UHD Graphics 630
OpenCL device ext: cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics 
                   cl_khr_local_int32_extended_atomics cl_intel_subgroups cl_intel_required_subgroup_size cl_intel_subgroups_short cl_khr_spir cl_intel_accelerator 
                   cl_intel_driver_diagnostics cl_khr_priority_hints cl_khr_throttle_hints cl_khr_create_command_queue cl_intel_subgroups_char cl_intel_subgroups_long
                   cl_khr_fp64 cl_khr_subgroups cl_khr_il_progr
 
Je ne discuterai pas du modèle de monétisation moderne dans le domaine des TI. L'achat d'un nouveau matériel fonctionnant à 25% de l'efficacité possible par rapport à l'utilisation d'algorithmes optimisés ne provoquera pas le réchauffement climatique, bien sûr :)

Nous reporterons le sujet d'OpenCL et de MT5 à une date ultérieure, lorsqu'il y aura un peu d'argent pour un ordinateur de bureau dans le budget familial.

J'ai une faveur à vous demander, Renat. Dans le manuel de MQL5 (section OpenCL), ajoutez un avertissement disant qu'avant d'utiliser des données et des calculs doubles dans les cartes graphiques/coprocesseurs graphiques, vous devez être sûr qu'ils sont supportés par ces dispositifs. Pour que les nouveaux venus au MQL5 ne se fassent pas d'illusions sur le vieux matériel.

Merci pour votre temps.
 
aim-1:

Une demande à vous Renat. Veuillez ajouter dans le manuel de MQL5 (section OpenCL) un avertissement indiquant qu'avant d'utiliser des données et des calculs doubles dans les cartes graphiques/coprocesseurs graphiques, vous devez vérifier qu'ils sont supportés par ces dispositifs. Pour que les nouveaux venus au MQL5 ne se fassent pas d'illusions sur le vieux matériel.

C'est déjà écrit dans le test de la carte automatique et ce n'est pas sélectionnable : fait dans la dernière version

OpenCL  test compilation failed with error: use of type 'double' requires cl_khr_fp64 extension to be enabled 

On peut affirmer sans risque de se tromper que les vieilles cartes sans double support sont absolument inutiles pour les calculs mathématiques.

C'est la réalité.

 
Renat Fatkhullin:

C'est déjà écrit dans le test de la carte automatique et ce n'est pas sélectionnable : fait dans la dernière version

J'ai beaucoup de respect pour MetaQuotes. Les très bonnes plateformes sont développées et entretenues par vous.

Disclamer (exigences du système) est logique si vous voulez garder une trace de la réputation. Parce que les débutants naïfs (comme moi :) sont excités par une fonction intéressante, trouvée sur le net, et après avoir échoué au lancement de MT5, ils peuvent se calmer sur une nouvelle plateforme, parce qu'ils ont l'impression qu'il y a potentiellement d'autres échecs en l'utilisant. Par exemple, la nécessité de comprendre la POO dans les bibliothèques standard, etc.

A propos, il serait utile de disposer d'un modèle d'Expert Advisor de trading simple sans OOP (de préférence directement sur le site de MT5), afin que même les débutants en MQL4 puissent s'habituer rapidement à MQL5, tout en ayant un contrôle total sur le code. En ce sens, un nouveau tutoriel MQL5 (de préférence plus court - sans ressasser les anciens) serait une bonne idée. Ainsi, la communauté des négociants (le principal moteur/arrêt du progrès) s'adapterait plus rapidement à une nouvelle plateforme.

Merci encore pour votre travail.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
aim-1 : Je respecte MetaQuotes. De très bonnes plateformes sont développées et soutenues par vous.

L'avertissement (exigences du système) est logique si vous voulez surveiller votre réputation. Parce que les novices naïfs (comme moi :) pris de passion pour des fonctionnalités intéressantes reprises sur le réseau et rompues au lancement de MT5 peuvent se refroidir longtemps à la nouvelle plateforme, car il semble que d'autres ruptures soient potentiellement possibles lors de son utilisation. Par exemple, la nécessité de comprendre la POO dans les bibliothèques standard, etc.

En ce qui concerne la POO, d'ailleurs, il serait bien de mettre officiellement à disposition (mieux, directement sur les pages du site web de MT5) un modèle de conseiller expert de trading simple sans POO, afin que même les bébés MQL4 puissent rapidement s'impliquer dans MQL5, tout en contrôlant entièrement le travail du code. Dans ce sens, un nouveau manuel sur MQL5 (de préférence plus court - sans répéter l'ancienne eau) ne ferait pas de mal. Ainsi, la communauté des traders (le principal moteur/arrêt du progrès) s'adaptera plus rapidement à la nouvelle plateforme.

Merci encore pour votre travail.

Certains exemples sont fournis avec le paquet MQL5. Une programmation totalement orientée vers les procédures. Je ne suis pas sûr pour MQL4

 
Pas clair
//test.mqh
void f( int ii )
{
        for ( int i = -ii; i <= ii; i++ )
        {
                int j = CLContextCreate( i );
                if ( j != -1 )
                {
                        CLContextFree( j );
                        Print( ii, ":", i, ":", j );
                }
        }
}
#include "test.mqh"
void OnStart() { f( 32765 ); }
Résultat :
32765:0:2147352576
32765:1:2147418112

et si

#include "test.mqh"
void OnStart() { f( 32766 ); }

Résultat :

32766:0:2147418112

Pourquoi y a-t-il une sortie (ligne) dans un cas et deux dans l'autre ?

 
A100:
Pas clair Résultat :

et si

Résultat :

Pourquoi y a-t-il une sortie (ligne) dans un cas et deux dans l'autre ?

Merci pour le message.
Fixe.

Débordement du handle OpenCL dû à une surutilisation fréquente du handle, plus de fois que SHORT_MAX

 
Apparemment, ils ont résolu le problème de manière radicale, mais maintenant, ça ne fonctionne pas non plus.
void OnStart()
{
        if ( CLContextCreate( 0 ) == -1 ) Print( GetLastError() ); //5114

}

et il y a une semaine, ça marchait bien. Pourquoi désactiver OpenCL s'il n'y a pas de support pour le double et qu'il n'est pas utilisé ?

 

Oui, j'ai décidé de ne pas utiliser les anciennes cartes sans double support du tout.

Les anciennes cartes en général sont très mauvaises, y compris les mauvais pilotes non réparés qui se plantent souvent, faisant tomber le terminal.

En réalité, vous devriez déjà contrôler explicitement les versions des pilotes, comme le font les développeurs de jeux PC. Les pilotes par défaut de Microsoft ne vous mèneront pas très loin.
Raison: