Скачать MetaTrader 5

Обсуждение статьи "Электронные таблицы на MQL5"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Публикуй статьи и увеличивай свой рейтинг!
MetaQuotes Software Corp.
Модератор
181082
MetaQuotes Software Corp. 2011.02.23 13:30 

Опубликована статья Электронные таблицы на MQL5:

В статье описан класс двумерного динамического массива, имеющий в своем составе разнотипные данные первого измерения. Хранение данных в виде таблиц удобно при решении большого класса задач по упорядочиванию, хранению и оперированию связными данными разных типов. К статье приложен код класса, реализующего функционал работы с таблицами.

Автор: Николай

Andrey Dik
11230
Andrey Dik 2011.02.25 16:36  
Хорошая, добротная, полезная статья. Автору респект!

Vladimir Gomonov
8277
Vladimir Gomonov 2011.02.26 02:10  
Интересно. Возможно даже пригодится.

Evgeniy Trofimov
2360
Evgeniy Trofimov 2012.03.21 10:01  

Эх... вот бы маленький примерчик поглядеть, как упорядочить второй столбец в двухмерном массиве 3x3. Что в коде писать после #include <Table.mqh>?

Следующий код выводит нули. Где ошибка?

#include <Table.mqh>
void OnStart(){   
   ENUM_DATATYPE Types[3];
   Types[0] = TYPE_DOUBLE;
   Types[1] = TYPE_DOUBLE;
   Types[2] = TYPE_DOUBLE;   
   CTable Table;
   Table.FirstResize(Types);
   Table.SecondResize(3);
   Table.Set(0,0, 1); Table.Set(0,1, 4); Table.Set(0,2, 23);
   Table.Set(1,0, 2); Table.Set(1,1, 7); Table.Set(1,2, 48);
   Table.Set(2,0, 3); Table.Set(2,1, 1); Table.Set(2,2, 77);
   Table.SortTwoDimArray(1,0,Table.SecondSize()-1);
   string txt;
   for(int i=0; i<Table.SecondSize(); i++){
      for(int j=0; j<Table.FirstSize(); j++){
         double k;
         Table.Get(i,j,k);
         StringConcatenate(txt, txt, "  ", DoubleToString(k));
      }
      Print(txt);
      txt="";
   }
}//OnStart()

 

Nikolay Demko
12465
Nikolay Demko 2012.03.21 15:06  

Вы присваиваете тип int в поля таблицы объявленные как double

попробуйте так или так...

   Table.Set(0,0, 1.); Table.Set(0,1, 4.); Table.Set(0,2, (double)23);
   Table.Set(1,0, 2.); Table.Set(1,1, 7.); Table.Set(1,2, (double)48);
   Table.Set(2,0, 3.); Table.Set(2,1, 1.); Table.Set(2,2, (double)77);


Evgeniy Trofimov
2360
Evgeniy Trofimov 2012.03.22 11:20  
Вот спасибо! Ни за что бы сам не догадался.
Dennis Kirichenko
11317
Dennis Kirichenko 2012.10.22 11:16  

Николай,есть вопрос.

Можно ли так сделать, чтобы из МТ5 записалась таблица в Excel в таком виде?

Интересны мне те 2 макроназвания столбцов ("Абсолютные данные" и "Относительные данные"), которые выделил цветом. Они объединяют 3 ячейки каждое.

Может много хочу от MQL5 в плане форматирования excel'евских ячеек. А вдруг  :-))

Nikolay Demko
12465
Nikolay Demko 2012.10.22 13:47  
denkir:

Николай,есть вопрос.

Можно ли так сделать, чтобы из МТ5 записалась таблица в Excel в таком виде?

Интересны мне те 2 макроназвания столбцов ("Абсолютные данные" и "Относительные данные"), которые выделил цветом. Они объединяют 3 ячейки каждое.

Может много хочу от MQL5 в плане форматирования excel'евских ячеек. А вдруг  :-))

Какой физический смысл вы вкладываете в слова "объединяют 3 ячейки" ?

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

Самое просто это создать две таблицы и объеденить их.

Документация по MQL5: Основы языка / Типы данных
Документация по MQL5: Основы языка / Типы данных
  • www.mql5.com
Основы языка / Типы данных - Документация по MQL5
Dennis Kirichenko
11317
Dennis Kirichenko 2012.10.22 14:01  
Urain:

Какой физический смысл вы вкладываете в слова "объединяют 3 ячейки" ?


Вот что сейчас:



Что хотелось бы иметь уже привёл...

Andriy Sydoruk
14650
Andriy Sydoruk 2014.07.12 21:42  
Привіт, дуже виручила бібліотека з статті "Электронные таблицы на MQL5", вдячний.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий