Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1117
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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(