et encore dll et marché - page 4

 
Nikolai Karetnikov:

Le conseiller en marché serait-il capable d'écrire un fichier texte comme ressource ?

Ensuite, je formerais le fichier avec un code fermé et je changerais l'extension avec un code ouvert et je le lirais.

Un conseiller expert du marché peut :

1. Écrire des données dans une ressource interne, qui peut être analysée par l'EA de l'utilisateur, s'il connaît le chemin vers cette ressource et s'il travaille en parallèle. Ce que le conseiller expert va faire avec les informations lues, seul l'utilisateur le sait.
2. Il peut envoyer des données vers un fichier ordinaire, que le conseiller expert inclura comme ressource et dont il "digérera" le contenu à l'aide de ses algorithmes.


 
Реter Konow:
Essayez-le. Essayer, comme on dit, n'est pas une torture)
Puis, ici, dites-moi si ça a marché ou pas.

J'ai commencé à l'essayer et j'ai maintenant une question.

La bibliothèque winapi\fileapi.mqh

#include <WinAPI\windef.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#import "kernel32.dll"
int    AreFileApisANSI(void);
int    CompareFileTime(FILETIME &file_time1,FILETIME &file_time2);
int    CreateDirectoryW(const string path_name,PVOID security_attributes);
HANDLE CreateFile2(const string file_name,uint desired_access,uint share_mode,uint creation_disposition,CREATEFILE2_EXTENDED_PARAMETERS &create_ex_params);
HANDLE CreateFileW(const string file_name,uint desired_access,uint share_mode,PVOID security_attributes,uint creation_disposition,uint flags_and_attributes,HANDLE template_file);
int    DefineDosDeviceW(uint flags,const string device_name,const string target_path);
int    DeleteFileW(const string file_name);
int    DeleteVolumeMountPointW(const string volume_mount_point);
int    FileTimeToLocalFileTime(FILETIME &file_time,FILETIME &local_file_time);
int    FindClose(HANDLE find_file);
int    FindCloseChangeNotification(HANDLE change_handle);
HANDLE FindFirstChangeNotificationW(const string path_name,int watch_subtree,uint notify_filter);
HANDLE FindFirstFileExW(const string file_name,FINDEX_INFO_LEVELS info_level_id,FIND_DATAW &find_file_data,FINDEX_SEARCH_OPS search_op,PVOID search_filter,uint additional_flags);
HANDLE FindFirstFileNameW(const string file_name,uint flags,uint &StringLength,ushort &LinkName[]);
HANDLE FindFirstFileW(const string file_name,FIND_DATAW &find_file_data);
HANDLE FindFirstStreamW(const string file_name,STREAM_INFO_LEVELS InfoLevel,FIND_STREAM_DATA &find_stream_data,uint flags);
HANDLE FindFirstVolumeW(ushort &volume_name[],uint &buffer_length);
int    FindNextChangeNotification(HANDLE change_handle);
int    FindNextFileNameW(HANDLE find_stream,uint &StringLength,ushort &LinkName[]);
int    FindNextFileW(HANDLE find_file,FIND_DATAW &find_file_data);
int    FindNextStreamW(HANDLE find_stream,FIND_STREAM_DATA &find_stream_data);
int    FindNextVolumeW(HANDLE find_volume,ushort &volume_name[],uint &buffer_length);
int    FindVolumeClose(HANDLE find_volume);
int    FlushFileBuffers(HANDLE file);
uint   GetCompressedFileSizeW(const string file_name,uint &file_size_high);
int    GetDiskFreeSpaceExW(const string directory_name,ulong &free_bytes_available_to_caller,ulong &total_number_of_bytes,ulong &total_number_of_free_bytes);
int    GetDiskFreeSpaceW(const string root_path_name,uint &sectors_per_cluster,uint &bytes_per_sector,uint &number_of_free_clusters,uint &total_number_of_clusters);
uint   GetDriveTypeW(const string root_path_name);
int    GetFileAttributesExW(const string file_name,GET_FILEEX_INFO_LEVELS info_level_id,FILE_ATTRIBUTE_DATA &file_information);
uint   GetFileAttributesW(const string file_name);
int    GetFileInformationByHandle(HANDLE file,BY_HANDLE_FILE_INFORMATION &file_information);
uint   GetFileSize(HANDLE file,uint &file_size_high);
int    GetFileSizeEx(HANDLE file,long &file_size);
int    GetFileTime(HANDLE file,FILETIME &creation_time,FILETIME &last_access_time,FILETIME &last_write_time);
uint   GetFileType(HANDLE file);
uint   GetFinalPathNameByHandleW(HANDLE file,ushort &file_path[],uint file_path,uint flags);
uint   GetFullPathNameW(const string file_name,uint buffer_length,ushort &buffer[],ushort &file_part[]);
uint   GetLogicalDrives(void);
uint   GetLogicalDriveStringsW(uint buffer_length,ushort &buffer[]);
uint   GetLongPathNameW(const string short_path,string &long_path,uint buffer);
uint   GetShortPathNameW(const string long_path,string &short_path,uint buffer);
uint   GetTempFileNameW(const string path_name,const string prefix_string,uint unique,ushort &temp_file_name[]);
uint   GetTempPathW(uint buffer_length,ushort &buffer[]);
int    GetVolumeInformationByHandleW(HANDLE file,ushort &volume_name_buffer[],uint volume_name_size,uint &volume_serial_number,uint &maximum_component_length,uint &file_system_flags,ushort &file_system_name_buffer[],uint file_system_name_size);
int    GetVolumeInformationW(const string root_path_name,ushort &volume_name_buffer[],uint volume_name_size,uint &volume_serial_number,uint &maximum_component_length,uint &file_system_flags,ushort &file_system_name_buffer[],uint file_system_name_size);
int    GetVolumeNameForVolumeMountPointW(const string volume_mount_point,string volume_name,uint buffer_length);
int    GetVolumePathNamesForVolumeNameW(const string volume_name,string volume_path_names,uint buffer_length,uint &return_length);
int    GetVolumePathNameW(const string file_name,ushort &volume_path_name[],uint buffer_length);
int    LocalFileTimeToFileTime(FILETIME &local_file_time,FILETIME &file_time);
int    LockFile(HANDLE file,uint file_offset_low,uint file_offset_high,uint number_of_bytes_to_lock_low,uint number_of_bytes_to_lock_high);
int    LockFileEx(HANDLE file,uint flags,uint reserved,uint number_of_bytes_to_lock_low,uint number_of_bytes_to_lock_high,OVERLAPPED &overlapped);
uint   QueryDosDeviceW(const string device_name,ushort &target_path[],uint max);
int    ReadFile(HANDLE file,ushort &buffer[],uint number_of_bytes_to_read,uint &number_of_bytes_read,OVERLAPPED &overlapped);
int    ReadFile(HANDLE file,ushort &buffer[],uint number_of_bytes_to_read,uint &number_of_bytes_read,PVOID overlapped);
int    ReadFileScatter(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_read,uint &reserved,OVERLAPPED &overlapped);
int    ReadFileScatter(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_read,uint &reserved,PVOID overlapped);
int    RemoveDirectoryW(const string path_name);
int    SetEndOfFile(HANDLE file);
void   SetFileApisToANSI(void);
void   SetFileApisToOEM(void);
int    SetFileAttributesW(const string file_name,uint file_attributes);
int    SetFileInformationByHandle(HANDLE file,FILE_INFO_BY_HANDLE_CLASS FileInformationClass,FILE_INFO &file_information,uint buffer_size);
int    SetFileIoOverlappedRange(HANDLE FileHandle,uchar &OverlappedRangeStart,ulong Length);
uint   SetFilePointer(HANDLE file,long distance_to_move,long &distance_to_move_high,uint move_method);
int    SetFilePointerEx(HANDLE file,long distance_to_move,long &new_file_pointer,uint move_method);
int    SetFileTime(HANDLE file,FILETIME &creation_time,FILETIME &last_access_time,FILETIME &last_write_time);
int    SetFileValidData(HANDLE file,long ValidDataLength);
int    UnlockFile(HANDLE file,uint file_offset_low,uint file_offset_high,uint number_of_bytes_to_unlock_low,uint number_of_bytes_to_unlock_high);
int    UnlockFileEx(HANDLE file,uint reserved,uint number_of_bytes_to_unlock_low,uint number_of_bytes_to_unlock_high,OVERLAPPED &overlapped);
int    WriteFile(HANDLE file,const ushort &buffer[],uint number_of_bytes_to_write,uint &number_of_bytes_written,OVERLAPPED &overlapped);
int    WriteFile(HANDLE file,const ushort &buffer[],uint number_of_bytes_to_write,uint &number_of_bytes_written,PVOID overlapped);
int    WriteFileGather(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_write,uint &reserved,OVERLAPPED &overlapped);
int    WriteFileGather(HANDLE file,FILE_SEGMENT_ELEMENT &segment_array[],uint number_of_bytes_to_write,uint &reserved,PVOID overlapped);
#import
//+------------------------------------------------------------------+

comment se fait-il que la fonction CopyFileW soit absente ?

 
Nikolai Karetnikov:

J'ai commencé à l'essayer et maintenant j'ai une question.

La bibliothèque winapi\fileapi.mqh

comment se fait-il que la fonction CopyFileW soit absente ?

Je ne le connais pas. Si son prototype ne figure pas dans la liste, il doit provenir d'un autre assemblage de fonctions dll.
 
D'après ce que Renat a dit dans le fil parallèle, cet appel est obsolète et ne convient qu'aux versions 32 bits du terminal.

Voici un lien vers le sujet : https://www.mql5.com/ru/forum/342311
 
Nikolai Karetnikov:

oops )

Le problème est que le script vbs accède au moteur vocal de Windows.

Je pense que vous êtes sur une roue très compliquée :)

il existe des moteurs vocaux gratuits de mcrosoft et google

Celui de Microsoft est recherché dans les premières requêteshttp://speech-text.narod.ru/chap5.html


bien et sur le sujet, vous n'êtes pas le premier à trouver \MQL5\Include\WinAPI

mais la politique MQ n'a pas été modifiée :

- la sécurité des programmes MQL doit être assurée, de sorte que tous les programmes distribués librement doivent fonctionner à l'intérieur du "bac à sable MQL" (appels, accès aux fichiers)

- pour un usage personnel ou en tant que didacticiel, vous pouvez utiliser la possibilité d'appeler des .dll

 
Il semble que l'EA utilisant le moteur vocal de Windows ne pourra pas entrer sur le marché. Vous avez ici une limite insurmontable dans le développement d'EA commercialisables).

C'est dommage, bien sûr. À l'avenir, le contrôle gestuel pourrait être possible.
 
Реter Konow:
Il semble qu'il n'y ait aucun moyen d'entrer sur le marché avec un EA qui utilise le moteur vocal de Windows. Voilà pour la limite insurmontable dans le développement d'EA vendables).

C'est dommage, bien sûr. Dans le futur, le contrôle gestuel pourrait être possible.

Pour moi, l'idée de donner des commandes vocales au terminal ou d'écouter ce que dit EA ressemble à une sorte de névrose sur le point de se transformer en une forme compliquée de psychose ou d'autres maladies.

)))

imho, seulement pour se moquer des possibilités de la technologie


ZS :

J'utilise OK-Google sur le téléphone, recherche pratique, pratique, probablement un PC pour utiliser le multimédia ou surfer sur Internet.

mais qu'est-ce que je peux dire au terminal ? ouvrez un ordre ! le prix va plus vite à la prise ! WOW, WOW !

 
Igor Makanu:

Je pense que vous inventez une sorte de vélo compliqué :)

il existe des moteurs vocaux gratuits de microsoft et google

Microsoft fait l'objet des premières requêtes sur le sitehttp://speech-text.narod.ru/chap5.html.


bien et sur le sujet, vous n'êtes pas le premier à trouver \MQL5\Include\WinAPI

mais la politique MQ n'a pas été modifiée :

- la sécurité des programmes MQL doit être assurée, de sorte que tous les programmes distribués librement doivent fonctionner à l'intérieur du "bac à sable MQL" (appels, accès aux fichiers)

- pour un usage personnel ou en tant que tutoriels, vous pouvez utiliser la possibilité d'appeler les .dll.

Ce serait une perte de temps.

Mon hibou ne prépare que le texte pour la lecture par le moteur intégré dans le remontoir.

 
Igor Makanu:

Pour moi, l'idée de commander un terminal avec des commandes vocales ou d'écouter ce que fait EA ressemble à une sorte de névrose sur le point de se transformer en une forme compliquée de psychose ou de maladies connexes.

)))

imho, seulement pour se moquer des possibilités de la technologie


ZS :

J'utilise OK-Google sur le téléphone, recherche pratique, pratique, probablement un PC pour utiliser le multimédia ou surfer sur Internet.

mais qu'est-ce que je peux dire au terminal ? ouvrez un ordre ! le prix va plus vite à la prise ! WOW, WOW !

)))

l'idée n'est pas le contrôle vocal du terminal et de l'univers ;))), mais le guidage vocal. Disons toutes les cinq minutes pour connaître le prix d'un instrument d'un ensemble, ou avoir la possibilité de configurer des alertes vocales. Les "alertes" existent dans le terminal. Lorsqu'elles sont déclenchées, un court signal sonore est émis, mais il est impossible de comprendre à quel instrument elles font référence.

 
Nikolai Karetnikov:

ce serait une perte de temps.

Mon hibou ne fait que préparer le texte pour la lecture par le moteur intégré au remontoir.

l'écrire dans un fichier, dans MQL5/Files et expliquer comment mettre le moteur windows dessus. Pour unix/linux c'est un script littéralement en quelques lignes, pour powershell je soupçonne la même chose.