Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1117
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hace tiempo se mencionó en el foro que MT5 añadiría la posibilidad de importar datos históricos personalizados, ¿se ha implementado esto?
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
Entiendo lo que falta, la conversión inversa a un array 2D, pero no entiendo cómo
A menos que, por supuesto, lo haya guardado correctamente.
{
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());
}
Espero que esas líneas también estén presentes.
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
Empieza con uno fácil. Escriba todo en los guiones. Uno para escribir el archivo y otro para leer e imprimir lo que se lee. Para la escritura, haz un simple array de 2x2
void OnStart()
{
int z = 0;
for(int i = 0; i < 2; i++)
{
arr[i][z] = i+z+1;
z++;
}
WriteData();
}
y elimine el número de elementos que desea escribir. De este modo, se escribirá todo el archivo de principio a fin. Comprueba si el archivo aparece en la ruta dada.
FileWriteArray(handle,arr); // и здесь
Esto es lo que obtienes.
Escriba el código de la secuencia de comandos.
//| 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());
}
Leer el código de la secuencia de comandos.
//| 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]);
}
}
}
//+------------------------------------------------------------------+
y esto es lo que se imprime.
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
Así que no necesitas ningún truco de conversión. Sólo es necesario establecer las mismas matrices desde el principio.
No importa que sea mql5, igual que funcionaría en mql4.
Luego lee e imprime lo que tienes. Si ves 1 y 3 significa que el problema está en llenar la matriz.
Sinceramente ni siquiera sé lo que pasó, pero todo funcionó, sólo tengo que añadir una línea cada nueva barra, espero que no habrá ninguna pregunta)))
Gracias.
¡¡¡Hola a todos!!! Por favor, aconséjeme, quiero descargar una MT4 limpia, pero no puedo encontrar en cualquier lugar, de las bombas fuera del sitio sólo MT5. Por favor, dame la última versión. ¡¡¡Muchas gracias!!!
¡¡¡Hola a todos!!! Por favor, aconséjeme, quiero descargar una MT4 limpia, pero no puedo encontrar en cualquier lugar, de las bombas fuera del sitio sólo MT5. Por favor, dame la última versión. ¡¡¡Muchas gracias!!!
Su única diferencia es el logotipo en el acceso directo.
Abra una cuenta en otra empresa de corretaje. U otro tipo de cuenta. La disponibilidad de un mercado depende totalmente de la cuenta
Abra una cuenta en otra empresa de corretaje. U otro tipo de cuenta. Si el mercado no funciona, depende de la cuenta.
He probado con tres DCs y diferentes cuentas, el mercado sigue sin funcionar(