Il y a un temps, il a été mentionné sur le forum que MT5 ajouterait la possibilité d'importer des données historiques personnalisées, cela a-t-il été mis en œuvre ?
//--- путь к файлу 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.0917:20:40.609 TorFid_v02 (EURUSD,H1) = 0.0 = 0.0 = 0.0 2017.01.0917:20:40.609 TorFid_v02 (EURUSD,H1) Total data = 1020100
Je comprends ce qui manque, la conversion inverse en un tableau 2D, mais je ne comprends pas comment
Sauf si, bien sûr, je l'ai sauvegardé correctement.
for(int z=1; z<=ARRAY_SIZE_Y; z++) // Перебор по барам, колонка Y { 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(constint 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()); }
J'espère que ces lignes sont présentes, elles aussi.
Commencez par une facile. Écrire le tout en scripts. Un pour écrire le fichier et un pour lire et imprimer ce que vous lisez. Pour l'écriture, faites un simple tableau 2x2
int arr[2][2];
voidOnStart() { int z = 0; for(int i = 0; i < 2; i++) { arr[i][z] = i+z+1; z++; } WriteData(); }
et retirez le nombre d'éléments que vous voulez écrire. De cette façon, le fichier entier sera écrit du début à la fin. Vérifie si le fichier figure dans le chemin d'accès donné.
void WriteData() // здесь
FileWriteArray(handle,arr); // и здесь
Ensuite, lisez et imprimez ce que vous voyez. Si vous voyez 1 et 3, il y a un problème avec le tableau.
Alexey Viktorov: Puis lisez et imprimez ce que vous avez obtenu. Si vous voyez 1 et 3, cela signifie que le problème se situe au niveau du remplissage du tableau.
Honnêtement, je ne sais même pas ce qui s'est passé, mais tout a fonctionné, je dois juste ajouter une ligne à chaque nouvelle barre, en espérant qu'il n'y aura pas de questions))).
Salut à tous ! !! S'il vous plaît me conseiller, je veux télécharger un MT4 propre, mais ne peut pas trouver n'importe où, de la pompe hors site que MT5. S'il vous plaît, donnez-moi la dernière version. Merci beaucoup ! !!
Salut à tous ! !! S'il vous plaît me conseiller, je veux télécharger un MT4 propre, mais ne peut pas trouver n'importe où, de la pompe hors site que MT5. S'il vous plaît, donnez-moi la dernière version. Merci beaucoup ! !!
Vous pouvez télécharger n'importe quelle société de courtage favorite et obtenir la dernière version. La seule différence est le logo dans le raccourci.
Vitaly Muzichenko: Votre seule différence est le logo dans le raccourci.
Le problème est que le marché ne fonctionne pas, je ne peux installer aucun utilitaire sur MT4. Veuillez me conseiller sur ce qu'il faut faire) Vous devez vraiment installer l'utilitaire
Le problème est que le marché ne fonctionne pas, je ne peux installer aucun utilitaire sur MT4. Veuillez me conseiller sur ce qu'il faut faire) Il faut vraiment installer l'utilitaire
Ouvrez un compte dans une autre société de courtage. Ou autre type de compte. La présence ou l'absence d'une place de marché dépend entièrement du compte.
Vitalie Postolache: Ouvrez un compte dans une autre société de courtage. Ou un autre type de compte. La disponibilité ou non d'une place de marché dépend entièrement du compte.
Vitalie Postolache: Ouvrez un compte dans une autre société de courtage. Ou un autre type de compte. Si le marché ne fonctionne pas, cela dépend du compte.
J'ai essayé trois DC et différents comptes, le marché ne fonctionne toujours pas(
Il y a un temps, il a été mentionné sur le forum que MT5 ajouterait la possibilité d'importer des données historiques personnalisées, cela a-t-il été mis en œuvre ?
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
Je comprends ce qui manque, la conversion inverse en un tableau 2D, mais je ne comprends pas comment
Sauf si, bien sûr, je l'ai sauvegardé correctement.
{
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());
}
J'espère que ces lignes sont présentes, elles aussi.
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
Commencez par une facile. Écrire le tout en scripts. Un pour écrire le fichier et un pour lire et imprimer ce que vous lisez. Pour l'écriture, faites un simple tableau 2x2
void OnStart()
{
int z = 0;
for(int i = 0; i < 2; i++)
{
arr[i][z] = i+z+1;
z++;
}
WriteData();
}
et retirez le nombre d'éléments que vous voulez écrire. De cette façon, le fichier entier sera écrit du début à la fin. Vérifie si le fichier figure dans le chemin d'accès donné.
FileWriteArray(handle,arr); // и здесь
Voici ce que vous obtenez.
Écrire du code de script.
//| 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());
}
Lire le code du script.
//| 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]);
}
}
}
//+------------------------------------------------------------------+
et c'est ce qui est imprimé.
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
Vous n'avez donc pas besoin de gadgets de conversion. Il suffit de définir les mêmes tableaux depuis le début.
Ne vous souciez pas du fait que c'est mql5, de la même manière que cela fonctionnerait dans mql4.
Puis lisez et imprimez ce que vous avez obtenu. Si vous voyez 1 et 3, cela signifie que le problème se situe au niveau du remplissage du tableau.
Honnêtement, je ne sais même pas ce qui s'est passé, mais tout a fonctionné, je dois juste ajouter une ligne à chaque nouvelle barre, en espérant qu'il n'y aura pas de questions))).
Merci !
Salut à tous ! !! S'il vous plaît me conseiller, je veux télécharger un MT4 propre, mais ne peut pas trouver n'importe où, de la pompe hors site que MT5. S'il vous plaît, donnez-moi la dernière version. Merci beaucoup ! !!
Salut à tous ! !! S'il vous plaît me conseiller, je veux télécharger un MT4 propre, mais ne peut pas trouver n'importe où, de la pompe hors site que MT5. S'il vous plaît, donnez-moi la dernière version. Merci beaucoup ! !!
Votre seule différence est le logo dans le raccourci.
Ouvrez un compte dans une autre société de courtage. Ou un autre type de compte. La disponibilité ou non d'une place de marché dépend entièrement du compte.
Ouvrez un compte dans une autre société de courtage. Ou un autre type de compte. Si le marché ne fonctionne pas, cela dépend du compte.
J'ai essayé trois DC et différents comptes, le marché ne fonctionne toujours pas(