Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1202

 
Igor Makanu:

вот и я пишу, что это проще проверить, в течении 10 минут.... проверил, не пишет FileWriteArray() размер массива в заголовок или первый байт, значит пишем самостоятельно эти значения

Игорь, я не говорил что совсем невозможно. Ну чуток повнимательней прочтите мои слова.

Alexey Viktorov:

...

как можно из одного файла, неизвестно как записанного прочесть структуру и три массива.

...

Причём в том примере есть открытие файла, чтение структуры, чтение трёх массивов и нет закрытия файла. Тут и задумаешься, а есть-ли закрытие файла после записи?

А в вашем примере чтение массивов и элементов структуры, а не FileReadStruct().

Спасибо за пример. При необходимости вспомню и воспользуюсь.

 
Alexey Viktorov:

Игорь, я не говорил что совсем невозможно. Ну чуток повнимательней прочтите мои слова.

Причём в том примере есть открытие файла, чтение структуры, чтение трёх массивов и нет закрытия файла. Тут и задумаешься, а есть-ли закрытие файла после записи?

А в вашем примере чтение массивов и элементов структуры, а не FileReadStruct().

Спасибо за пример. При необходимости вспомню и воспользуюсь.

я не знаю как еще обьяснить ))))

ну Вы верите в какую то магию - мол сторонние программы могут узнать формат записанных данных в бинарный файл - никто не может прочитать данные из бинарного файла не зная структуру данных!

бинарный файл это большой массив байтов доступ к которому происходит последовательно - и все, что Вы записали? что прочитали? - знаете только Вы, если не знаете, то и будете читать не пойми чего 

)))

ЗЫ: понятное дело, что хочется массив писать(читать) одной командой ArrayWrite и структуру так же - да это возможно, но если использовать фиксированный размер данных и писать каждую структуру/массив в отдельный файл

 

Igor Makanu:

ну Вы верите в какую то магию - мол сторонние программы могут узнать формат записанных данных в бинарный файл - никто не может прочитать данные из бинарного файла не зная структуру данных!

Вы меня не правильно поняли. Я говорил точно то-же только другими словами. Это был не вопрос как сделать, а ... даже без вопросительного знака...

 

Подскажите, пожалуйста, как создать пользовательский символ в мт5, если я хочу залить туда график акций с фонды? Брокер Открытие, если что)

Я пробовал сделать следующее:

1. Скачиваю историю котировок в csv с финама

2. Конвертирую csv в json

{
    "root": {
        "row": [
            {
                "TICKER": "FXRU",
                "PER": "1",
                "DATE": "20190502",
                "TIME": "100100",
                "OPEN": "748.7000000",
                "HIGH": "749.7000000",
                "LOW": "747.7000000",
                "CLOSE": "749.7000000",
                "VOL": "115"
            },
               ]
           }
}

3. Не помогает. 

 
Igor Makanu:

вот и я пишу, что это проще проверить, в течении 10 минут.... проверил, не пишет FileWriteArray() размер массива в заголовок или первый байт, значит пишем самостоятельно эти значения

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1. d_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 3.14159 3.14159 3.14159 3.14159 3.14159

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. i_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 1234567890 1234567890 1234567890

2020.03.25 10:18:36.058 tst (EURUSD,H1) 2. c_arr

2020.03.25 10:18:36.058 tst (EURUSD,H1) 127 127 127 127 127 127 127

2020.03.25 10:18:36.058 tst (EURUSD,H1) mstruct.a = 666 , mstruct.b = 123.123000

т.е. если размеры массива динамические - значит самостоятельно пишем размеры массива при записи и при чтении читаем значение размера массива из файла и устанавливаем размеры массивов структуры

в моем примере 2 структуры - одну инициализировали и записали, вторую прочитали, инициализация из данных файла

Спасибо, очень впечатляюще.

А если в файл записать 2 структуры, то, очевидно, таким же образом можно их и считать.


ПС Простая структура (в любом количестве) записывается и считывается штатной функцией без проблем.
 
Будьте любезны, как задать размер второго измерения двумерного динамического массива "на лету"?
 
Сергей Таболин:
Будьте любезны, как задать размер второго измерения двумерного динамического массива "на лету"?

или обернуть одномерный массив в массив структур

struct Sarr
{
   double            y[];
};
struct Sarr2x2
{
   Sarr              x[];
};

void OnStart()
{
   Sarr2x2 arr;
   ArrayResize(arr.x,10);
   for(int i=0; i<ArraySize(arr.x); i++)
   {
      ArrayResize(arr.x[i].y,10);
   }
   arr.x[0].y[0] = 5.0;
}
//+------------------------------------------------------------------+

или использовать класс который будет делать эту работу - не хочу искать, сто раз уже давал ссылки 

https://www.mql5.com/ru/forum/6729/page3#comment_674794


да, в алглиб класс матрикс есть

#include <Math\Alglib\matrix.mqh>

void OnStart()
  {
      CMatrixDouble d_arr;
      d_arr.Resize(10,10);
 

А что значит шкала времени в стейтменте торговом?

Шкала X. Что значения на шкале обозначают?

 

как средствами MQL создать картинку .bmp и сохранить в файл без привязки в чарту - т.е. не создавать сначала обьект Canvas или CGraphic и тп на графике

бегло искал по статьям не увидел такой информации, нужна инструкция с чего начать , код сам напишу

 
Igor Makanu:

как средствами MQL создать картинку .bmp и сохранить в файл без привязки в чарту - т.е. не создавать сначала обьект Canvas или CGraphic и тп на графике

бегло искал по статьям не увидел такой информации, нужна инструкция с чего начать , код сам напишу

В ресурсах
Причина обращения: