Программирование на MQL4 - это очень просто! - Страница 203
Страница 203 из 203 ПерваяПервая ... 103 153 193 199 200 201 202 203
Показано с 2,021 по 2,027 из 2027

Тема: Программирование на MQL4 - это очень просто!

  1. #2021
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,931
    Благодарности
    Получено: 710
    Отправлено: 73
    Цитата Сообщение от raboco Посмотреть сообщение
    Чтение будет выполняться в массив структур, где каждый элемент будет соответствовать одной строке файла.
    То что вы объявили это не массив структур!
    Для поставленной задачи - нарисовать кучу линий по наборам координат, графический объект линия задается двумя парами координат t1,p1 и t2,p2, где t - datetime, а p (price) -цена double.

    Поэтому результат чтения должен раскладываться в структуру
    PHP код:
    struct  Vector
             
    {
              
    datetime t1// время 1
              
    double p2;   // цена 1
              
    datetime t2// время 2
              
    double p2;   // цена 2
            
    }; 
    затем мы объявляем массив, где элементом массива является требуемая структура.
    Вот это и будет массив структур!
    PHP код:
    struct  Vector
             
    {
              
    datetime t1// время 1
              
    double p2;   // цена 1
              
    datetime t2// время 2
              
    double p2;   // цена 2
            
    };
    Vector WorkVectors[]; // рабочий массив векторов, public 
    Теперь нужно считать строки из файла и распихивать их в массив.
    PHP код:
    // заполнение массива векторов
    void Fill_Vectors(string Data)
    {
    ....   
       <
    должен быть разбор строки Data>
    ....
       
    // текущий размер массива
       
    int Size=ArraySize(WorkVectors);
       
    // увеличиваем динамический массив на 1
       
    ArrayResize(WorkVectors,Size+1);
       
    // заполняем значениями элемент массива- структуру вида "Vector"
       
    WorkVectors[Size].p1=<ваше значение из файла>;
       
    WorkVectors[Size].t1=<ваше значение из файла>;
       
    WorkVectors[Size].p2=<ваше значение из файла>;
       
    WorkVectors[Size].t2=<ваше значение из файла>;
       ...   


    Вы не можете благодарить!
    Последний раз редактировалось wayfarer; 16.02.2020 в 16:23.
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  2. #2022
    Местный
    Регистрация
    27.12.2018
    Сообщений
    183
    Благодарности
    Получено: 0
    Отправлено: 91
    Пока экссперементирую,
    csv файл считать в строку так и не удалось, только тхт,

    PHP код:
    void MNM(string ExpertName)

      {
    string log_name ExpertName;
      
    string txto,mn_hh;
       
    log_handle FileOpen(log_name,FILE_TXT |FILE_READ FILE_WRITE);
       if(
    log_handle 0) {  Alert("Не удалось открыть файл ");}
       while(!
    FileIsEnding(log_handle))
      
    txto=(FileReadString(log_handle));
    mn_hhStringSubstr(txto1,2)+"."+StringSubstr(txto,12,2);
     
    Alert(mn_hh ); 
       
    FileClose(log_handle);
     } 
    теперь появилась идея сделать по другому,
    дату сохраняем в секундах, для нормализации дописываем дату за 10лет вперед,
    прога как понял нормализует значения между макс и мин величиной
    это думаю избавит от гемора с датами ,

    PHP код:
    for
           while(!
    FileIsEnding(log_handle))
    t1=(FileReadString(log_handle));
           while(!
    FileIsEnding(log_handle))
    p1=(FileReadString(log_handle)):
           while(!
    FileIsEnding(log_handle))

     
    t2=(FileReadString(log_handle)):
           while(!
    FileIsEnding(log_handle))

    p2=(FileReadString(log_handle)):
    рисуем t1,p1,t2,p2 

    Вы не можете благодарить!
    Последний раз редактировалось raboco; 16.02.2020 в 18:40.

  3. #2023
    Местный
    Регистрация
    27.12.2018
    Сообщений
    183
    Благодарности
    Получено: 0
    Отправлено: 91
    Все вроде дошло)

    Вы не можете благодарить!

  4. #2024
    Местный
    Регистрация
    27.12.2018
    Сообщений
    183
    Благодарности
    Получено: 0
    Отправлено: 91
    Не получается строку разобрать. но мысли лезут вот такие
    1 открываю файл csv
    PHP код:
     log_handle FileOpen(log_name,FILE_CSV|FILE_READ FILE_WRITE);
    нужноли считывать тут?  
     while(!
    FileIsEnding(log_handle))
     {
      
    txt=(FileReadString(log_handle));
    if (
    tt1=0tt1=txt; return
    if (
    tt2=0tt2=txt; return
    if (
    pp1=0pp1=txt; return
    if (
    pp2=0pp2=txt; return
      }
    .......


       
    ArrayResize(WorkVectors,Size+1);
       
    // заполняем значениями элемент массива- структуру вида "Vector"
       
    WorkVectors[Size].p1=tt1tt1=0
       WorkVectors
    [Size].t1=tt2tt2=0
       WorkVectors
    [Size].p2=pp1pp1=0
       WorkVectors
    [Size].t2=pp2;PP2=0
       
    ... 
    или как правильно раскидать?

    Вы не можете благодарить!

  5. #2025
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,931
    Благодарности
    Получено: 710
    Отправлено: 73
    Цитата Сообщение от raboco Посмотреть сообщение
    Не получается строку разобрать.
    В вашем коде множественные ошибки, короче - белиберда.
    После того, как выполнено: txt=(FileReadString(log_handle)); нужно разобрать стоку txt на элементы, конвертировать их в соответствующие типы данных под структуру, заполнить элемент массива структурой.

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

  6. #2026
    Местный
    Регистрация
    27.12.2018
    Сообщений
    183
    Благодарности
    Получено: 0
    Отправлено: 91
    Цитата Сообщение от wayfarer Посмотреть сообщение
    В вашем коде множественные ошибки, короче - белиберда.
    После того, как выполнено: txt=(FileReadString(log_handle)); нужно разобрать стоку txt на элементы, конвертировать их в соответствующие типы данных под структуру, заполнить элемент массива структурой.
    Это я образно написал не за рабочим компом, ошибки подправлю,строки разбирать на элементы не нужно так как, вся строка есть один элемент с csv файла, с тхт у меня возникли проблемы то что данные разной длины и обрезается не корректно,
    вечером посмотрю
    такой алгоритм должен работать?
    while(!FileIsEnding(log_handle))
    {
    txt=(FileReadString(log_handle));
    if (tt1=0) tt1=txt; return
    if (tt2=0) tt2=txt; return
    if (pp1=0) pp1=txt; return
    if (pp2=0) pp2=txt; return
    }
    .......

    Вы не можете благодарить!

  7. #2027
    Эксперт
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,931
    Благодарности
    Получено: 710
    Отправлено: 73
    Цитата Сообщение от raboco Посмотреть сообщение
    такой алгоритм должен работать?
    while(!FileIsEnding(log_handle))...{
    Да в чикле читаем из файла и рассовываем в динамический массив. Потом из массива можно строить линии.
    Но можно сразу при чтении из файла... нет разницы, кроме наглядности.

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

Страница 203 из 203 ПерваяПервая ... 103 153 193 199 200 201 202 203

Похожие темы

  1. Всё очень просто 123 (Pattern 123)
    от Sergey3011 в разделе Индикаторные торговые стратегии
    Ответов: 33
    Последнее сообщение: 21.11.2017, 06:05
  2. Очень личное о трейдинге внутри дня
    от ADler 88 в разделе Разговоры о трейдинге
    Ответов: 14
    Последнее сообщение: 10.07.2015, 18:36
  3. Экспресс-курс "Программирование советников на языке MQL4"
    от Антонина Бойкова в разделе Открытый учебный центр
    Ответов: 14
    Последнее сообщение: 22.11.2012, 14:35

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •