Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1117

 
Top2n:

Вот смотри что получается.

Код скрипта записи.

//+------------------------------------------------------------------+
//|                                                   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());
  }

Код скрипта чтения.

//+------------------------------------------------------------------+
//|                                                    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]);
    }
  }
}
//+------------------------------------------------------------------+

и вот что распечатало

2017.01.09 12:46:22.979 ReadArray (EURUSD,M1)   arr[0][0]1
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

Так-что никаких прибамбасов для преобразования не надо. Надо только изначально задавать одинаковые массивы.

Не обращай внимания на то, что это mql5, в mql4 будет работать так-же.

 
Alexey Viktorov:
Потом прочти и распечатай что получилось. Если ты увидишь 1 и 3 то значит проблема в заполнении массива.

Честно не знаю даже, что произошло, но все заработало, осталось добавлять строчку каждый новый бар, надеюсь что вопросов не будет)))

Благодарю вас! 

 

Всем привет!!! Подскажите пожалуйста, хочу скачать чистую МТ4, но не где не могу найти, с оф сайта качает только МТ5. Пожалуйста скиньте кто то чистый последний билд. За ранее спасибо!!!

 
stepan.brend:

Всем привет!!! Подскажите пожалуйста, хочу скачать чистую МТ4, но не где не могу найти, с оф сайта качает только МТ5. Пожалуйста скиньте кто то чистый последний билд. За ранее спасибо!!!

Скачайте у любого понравившегося ДЦ, и будет вам чистая последняя версия, с единственной разницей - логотип в ярлыке.
 
Vitaly Muzichenko:
Скачайте у любого понравившегося ДЦ, и будет вам чистая последняя версия, с единственной разницей - логотип в ярлыке.
проблема в том, что не работает маркет, не могу установить не одну утилиту на МТ4. Подскажите что делать пожалуйста) Очень надо установить утилиту
 
stepan.brend:
проблема в том, что не работает маркет, не могу установить не одну утилиту на МТ4. Подскажите что делать пожалуйста) Очень надо установить утилиту
В другом ДЦ счёт открыть. Или другой тип счёта. Наличие или отсутствие маркета полностью зависит от счёта.
 
Vitalie Postolache:
В другом ДЦ счёт открыть. Или другой тип счёта. Наличие или отсутствие маркета полностью зависит от счё
Vitalie Postolache:
В другом ДЦ счёт открыть. Или другой тип счёта. Наличие или отсутствие маркета полностью зависит от счёта.

Попробывал три ДЦ  и разные счета, маркет все равно не работает(

 
stepan.brendПопробывал три ДЦ  и разные счета, маркет все равно не работает(
Чудес не бывает. Версия терминала какая? Видел счета, в которых вкладка сигналов отсутствует, но маркет в большинстве есть.
 
  FileReadArray(file_handle,arr);

Подскажите пожалуйста возможные развития. 

Есть массив[100], также сохранен бинарный фаил размером [1000], как возвратить массив бинарного файла последние 100 значений. Универсально что нибудь есть? ТО опять 12 часов проковырялся и ничего.

 
Top2n:
  FileReadArray(file_handle,arr);

Подскажите пожалуйста возможные развития. 

Есть массив[100], также сохранен бинарный фаил размером [1000], как возвратить массив бинарного файла последние 100 значений. Универсально что нибудь есть? ТО опять 12 часов проковырялся и ничего.

Если я правильно помню, то в mql4 было написано, что если count = WHOLE_ARRAY или значение превышающее количество элементов массива то записывается весь массив до конца. И не о каком запасе не говорилось. То-есть не о какой 1000 речи и быть не может.

Проверить можно так: Посчитать сколько каких значений записывается и какого размера получается файл.