und wieder dll und Markt - Seite 4

 
Nikolai Karetnikov:

Könnte der Market Advisor eine Textdatei als Ressource schreiben?

Dann würde ich die Datei mit geschlossenem Code formen und die Erweiterung mit offenem Code ändern und sie abspielen

Ein Market Expert Advisor kann:

1. Schreiben von Daten in eine interne Ressource, die vom EA geparst werden kann, wenn er den Pfad zu dieser Ressource kennt und parallel arbeitet. Was der Expert Advisor mit den gelesenen Informationen macht, weiß nur der Benutzer.
2. Er kann Daten an eine gewöhnliche Datei senden, die der Expert Advisor als Ressource aufnimmt und deren Inhalt mit Hilfe seiner Algorithmen "verdaut".


 
Реter Konow:
Versuchen Sie es. Probieren geht über Studieren, wie man so schön sagt)
Dann sagen Sie mir hier, ob es funktioniert hat oder nicht.

Ich habe angefangen, es auszuprobieren, und jetzt habe ich eine Frage.

Die Bibliothek 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
//+------------------------------------------------------------------+

Wie kommt es, dass die Funktion CopyFileW fehlt?

 
Nikolai Karetnikov:

Ich habe angefangen, es auszuprobieren, und jetzt habe ich eine Frage.

Die Bibliothek winapi\fileapi.mqh

Wie kommt es, dass die Funktion CopyFileW fehlt?

Ich weiß es nicht. Wenn sein Prototyp nicht in der Liste steht, muss er aus einer anderen DLL-Funktionsgruppe stammen.
 
Nach dem zu urteilen, was Renat im Parallel-Thread sagte, ist dieser Aufruf veraltet und nur für 32-Bit-Versionen des Terminals geeignet.

Hier ist ein Link zu diesem Thema: https://www.mql5.com/ru/forum/342311
 
Nikolai Karetnikov:

oops )

Was im Weg steht, ist, dass das vbs-Skript auf die Windows-Sprachausgabe zugreift

Ich glaube, du bist auf einem sehr komplizierten Rad unterwegs :)

Es gibt kostenlose Sprachsynthesizer von Mcrosoft und Google

Microsoft wird bei den ersten Suchanfragen gegoogelthttp://speech-text.narod.ru/chap5.html


Nun, und was das Thema angeht, so sind Sie nicht der Erste, der \MQL5\Include\WinAPI

aber die MQ-Richtlinie wurde nicht geändert:

- die Sicherheit von MQL-Programmen muss gewährleistet sein, daher müssen alle frei verteilten Programme innerhalb der "MQL-Sandbox" arbeiten (Aufrufe, Zugriff auf Dateien)

- für den persönlichen Gebrauch oder als Tutorials, können Sie die Möglichkeit nutzen, .dll

 
Es scheint, dass der EA, der die Sprach-Engine von Windows verwendet, nicht in der Lage sein wird, auf den Markt zu kommen. Hier gibt es eine unüberwindbare Grenze bei der Entwicklung von marktfähigen EAs).

Das ist natürlich schade. In Zukunft könnte eine Gestensteuerung möglich sein.
 
Реter Konow:
Es sieht so aus, als gäbe es keine Möglichkeit, mit einem EA auf den Markt zu kommen, der die Sprach-Engine von Windows nutzt. So viel zu den unüberwindbaren Grenzen bei der Entwicklung von verkauften EAs).

Das ist natürlich schade. In Zukunft könnte eine Gestensteuerung möglich sein.

Für mich sieht die Vorstellung, dem Terminal Sprachbefehle zu geben oder zu hören, was EA sagt, wie eine Art Neurose aus, die sich zu einer komplizierten Form von Psychose oder anderen Krankheiten entwickeln kann.

)))

imho nur, um sich über die Möglichkeiten der Technik lustig zu machen


ZS:

Ich benutze OK-Google auf dem Telefon, praktische Suche, wahrscheinlich einen PC, um Multimedia zu nutzen oder im Internet zu surfen

aber was kann ich dem terminal sagen? eröffne einen auftrag! der preis geht schneller zum nehmen! WOW, WOW!

 
Igor Makanu:

Ich glaube, Sie erfinden eine Art kompliziertes Fahrrad :)

es gibt kostenlose Sprachanwendungen von Microsoft und Google

Microsoft wird bei den ersten Suchanfragen gegoogelthttp://speech-text.narod.ru/chap5.html.


Nun, und was das Thema betrifft, so sind Sie nicht der Erste, der \MQL5\Include\WinAPI

aber die MQ-Richtlinie wurde nicht geändert:

- die Sicherheit von MQL-Programmen muss gewährleistet sein, daher müssen alle frei verteilten Programme innerhalb der "MQL-Sandbox" arbeiten (Aufrufe, Zugriff auf Dateien)

- für den persönlichen Gebrauch oder als Tutorials, können Sie die Möglichkeit nutzen, .dll aufzurufen.

Das wäre reine Zeitverschwendung.

Meine Eule bereitet den Text nur für die Wiedergabe durch die im Aufwickler eingebaute Engine vor

 
Igor Makanu:

Für mich sieht die Vorstellung, ein Terminal mit Sprachbefehlen zu steuern oder zu hören, was EA vorhat, wie eine Art Neurose aus, die sich zu einer komplizierten Form von Psychose oder ähnlichen Krankheiten entwickeln kann.

)))

imho nur, um sich über die Möglichkeiten der Technik lustig zu machen


ZS:

Ich benutze OK-Google auf dem Telefon, praktische Suche, wahrscheinlich einen PC, um Multimedia zu nutzen oder im Internet zu surfen

aber was kann ich dem terminal sagen? eröffne einen auftrag! der preis geht schneller zum nehmen! WOW, WOW!

)))

die Idee ist nicht die Sprachsteuerung des Terminals und des Universums ))), sondern die Sprachführung. Sagen wir, alle fünf Minuten, um den Preis eines Instruments aus einem Set auszuloten oder die Möglichkeit zu haben, Sprachwarnungen einzurichten. So etwas wie "Alerts" gibt es im Terminal, wenn sie ausgelöst werden, wird ein kurzes Tonsignal abgespielt, aber auf welches Instrument es sich bezieht, ist unmöglich zu verstehen

 
Nikolai Karetnikov:

Das wäre reine Zeitverschwendung.

Meine Eule bereitet den Text nur für die Wiedergabe durch die im Aufwickler integrierte Engine vor

in eine Datei schreiben, in MQL5/Files, und erklären, wie man die Windows-Engine darauf setzt. Für Unix/Linux ist es ein Skript, das buchstäblich aus ein paar Zeilen besteht, für Powershell vermute ich das Gleiche.