Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1117
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es wurde einmal im Forum erwähnt, dass MT5 die Möglichkeit bieten würde, benutzerdefinierte historische Daten zu importieren, wurde dies umgesetzt?
string path=InpDirectoryName+"//"+InpFileName;
//--- откроем файл
ResetLastError();
int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
if(file_handle!=INVALID_HANDLE)
{
//--- прочитаем все данные из файла в массив
FileReadArray(file_handle,arr);
//--- получим размер массива
int size=ArraySize(arr);
//--- распечатаем данные из массива
Print(" = ",arr[0][0]," = ",arr[1][1]," = ",arr[2][2]);
Print("Total data = ",size);
//--- закрываем файл
FileClose(file_handle);
}
else
Print("File open failed, error ",GetLastError());
2017.01.09 17:20:40.609 TorFid_v02 (EURUSD,H1) Total data = 1020100
Ich verstehe, was fehlt, nämlich die umgekehrte Konvertierung in ein 2D-Array, aber ich verstehe nicht, wie
Es sei denn, ich habe sie richtig gespeichert.
{
for(int q=1; q<ARRAY_SIZE_X-1; q++) // Перебор по периоду, колонка X
{
arr[q][z]=NormalizeDouble(sm.d[q+1].m[nBar-z],5); // M(I) SMA
}
}
WriteData(1000);
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData(const int n)
{
//--- откроем файл
ResetLastError();
int handle=FileOpen(path,FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arr,0,n);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}
Ich hoffe, dass diese Zeilen auch vorhanden sind.
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
Beginnen Sie mit einer einfachen Aufgabe. Schreiben Sie das alles in Skripten. Eine, um die Datei zu schreiben, und eine, um zu lesen und zu drucken, was Sie lesen. Zum Schreiben erstellen Sie ein einfaches 2x2-Array
void OnStart()
{
int z = 0;
for(int i = 0; i < 2; i++)
{
arr[i][z] = i+z+1;
z++;
}
WriteData();
}
und entfernen Sie die Anzahl der Elemente, die Sie schreiben möchten. Auf diese Weise wird die gesamte Datei von Anfang bis Ende geschrieben. Überprüfen Sie, ob die Datei im angegebenen Pfad enthalten ist.
FileWriteArray(handle,arr); // и здесь
Das bekommen Sie.
Schreiben Sie Skriptcode.
//| WriteArray.mq5 |
//| Viktorov |
//| v4forex@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Viktorov"
#property link "v4forex@yandex.ru"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
string InpFileName = "data.bin";
string InpDirectoryName = "SomeFolder";
string path=InpDirectoryName+"//"+InpFileName;
int arr[3][3];
int handle;
void OnStart()
{
int i = 0, z = 0;
for(i = 0; i < 3; i++)
{
for(z = 0; z < 3; z++)
{
arr[i][z] = i*z+1;
}
}
WriteData();
}
//+------------------------------------------------------------------+
void WriteData()
{
//--- откроем файл
ResetLastError();
handle=FileOpen(path, FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arr);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}
Skriptcode lesen.
//| ReadArray.mq5 |
//| Viktorov |
//| v4forex@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Viktorov"
#property link "v4forex@yandex.ru"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
string InpFileName = "data.bin";
string InpDirectoryName = "SomeFolder";
string path=InpDirectoryName+"//"+InpFileName;
int handle;
void OnStart()
{
int arr[3][3];
int i = 0, z = 0;
handle = FileOpen(path, FILE_READ|FILE_WRITE|FILE_BIN);
FileReadArray(handle, arr);
for(i = 0; i < 3; i++)
{
for(z = 0; z < 3; z++)
{
Print("arr[", i, "][", z, "]", arr[i][z]);
}
}
}
//+------------------------------------------------------------------+
und das ist, was gedruckt wird.
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[0][1]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[0][2]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[1][0]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[1][1]2
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[1][2]3
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[2][0]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[2][1]3
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[2][2]5
Sie brauchen also keine Bekehrungstaktiken. Sie müssen nur die gleichen Arrays von Anfang an einstellen.
Machen Sie sich nichts daraus, dass es sich um mql5 handelt, so wie es auch in mql4 funktionieren würde.
Dann lesen und drucken Sie aus, was Sie bekommen haben. Wenn Sie 1 und 3 sehen, bedeutet dies, dass das Problem beim Füllen des Feldes liegt.
Ehrlich gesagt weiß ich nicht einmal, was passiert ist, aber es hat alles funktioniert, ich muss nur für jeden neuen Takt eine Zeile hinzufügen, hoffentlich gibt es keine Fragen)))
Ich danke Ihnen!
Hallo zusammen!!! Bitte beraten Sie mich, ich möchte eine saubere MT4 herunterladen, kann aber nirgends finden, von der Off-Site-Pumpen nur MT5. Bitte geben Sie mir den neuesten Build. Herzlichen Dank!!!
Hallo zusammen!!! Bitte beraten Sie mich, ich möchte eine saubere MT4 herunterladen, kann aber nirgends finden, von der Off-Site-Pumpen nur MT5. Bitte geben Sie mir den neuesten Build. Herzlichen Dank!!!
Der einzige Unterschied ist das Logo in der Abkürzung.
Eröffnen Sie ein Konto bei einem anderen Maklerunternehmen. Oder eine andere Art von Konto. Ob ein Marktplatz verfügbar ist oder nicht, hängt ganz vom Konto ab
Eröffnen Sie ein Konto bei einem anderen Maklerunternehmen. Oder eine andere Art von Konto. Wenn der Markt nicht funktioniert, hängt es vom Konto ab.
Ich habe drei DCs und verschiedene Konten ausprobiert, der Markt funktioniert immer noch nicht(