Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1117
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Una volta è stato menzionato sul forum che MT5 avrebbe aggiunto la possibilità di importare dati storici personalizzati, è stato implementato?
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
Ho capito cosa manca, la conversione inversa in un array 2D, ma non capisco come
A meno che, ovviamente, non l'abbia salvato correttamente.
{
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());
}
Spero che anche queste corde siano presenti.
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
Comincia con uno facile. Scrivere il tutto in script. Uno per scrivere il file e uno per leggere e stampare ciò che si legge. Per la scrittura, fate un semplice array 2x2
void OnStart()
{
int z = 0;
for(int i = 0; i < 2; i++)
{
arr[i][z] = i+z+1;
z++;
}
WriteData();
}
e rimuovi il numero di elementi che vuoi scrivere. In questo modo l'intero file sarà scritto dall'inizio alla fine. Controlla se il file appare nel percorso dato.
FileWriteArray(handle,arr); // и здесь
Ecco cosa si ottiene.
Scrivere il codice dello 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());
}
Leggere il codice dello 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]);
}
}
}
//+------------------------------------------------------------------+
e questo è quello che viene stampato.
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
Quindi non hai bisogno di nessun espediente di conversione. Avete solo bisogno di impostare gli stessi array dall'inizio.
Non fate caso al fatto che si tratta di mql5, allo stesso modo in cui funzionerebbe in mql4.
Poi leggete e stampate quello che avete. Se vedete 1 e 3 significa che il problema è nel riempimento dell'array.
Onestamente non so nemmeno cosa sia successo, ma ha funzionato tutto, devo solo aggiungere una linea ogni nuova barra, speriamo che non ci siano domande)))
Grazie!
Ciao a tutti!!! Per favore consigliatemi, voglio scaricare un MT4 pulito, ma non riesco a trovare da nessuna parte, dalle pompe off site solo MT5. Per favore datemi l'ultima build. Grazie mille!!!
Ciao a tutti!!! Per favore consigliatemi, voglio scaricare un MT4 pulito, ma non riesco a trovare da nessuna parte, dalle pompe fuori sito solo MT5. Per favore datemi l'ultima build. Grazie mille!!!
L'unica differenza è il logo nella scorciatoia.
Aprire un conto in un'altra società di intermediazione. O un altro tipo di conto. La disponibilità o meno di un mercato dipende interamente dall'account
Aprire un conto in un'altra società di intermediazione. O un altro tipo di conto. Se il mercato non funziona, dipende dal conto.
Ho provato con tre DC e diversi account, ma il mercato continua a non funzionare.