Обсуждение статьи "Работа с таймсериями в библиотеке DoEasy (Часть 36): Объект таймсерий всех используемых периодов символа"

 

Опубликована статья Работа с таймсериями в библиотеке DoEasy (Часть 36): Объект таймсерий всех используемых периодов символа:

В статье рассмотрим объединение списков объектов-баров по каждому используемому периоду символа в один объект таймсерий символа. Таким образом у нас будет для каждого символа подготовлен объект, хранящий списки всех используемых периодов таймсерии символа.

Запустим в тестере в визуальном режиме на периоде графика M5:


Сначала тестер загружает исторические данные по всем таймфреймам, затем советник выводит данные созданных таймсерий, и далее в журнал выводятся сообщения об открытии новых баров на созданных таймсериях за время продвижения теста.

Всё работает так, как задумывалось на данном этапе создания функционала для работы с таймсериями одного символа.

Автор: Artyom Trishkin

 

Здравствуйте! Хотелось бы высказать пожелание, чтобы можно было создавать таймсерии не только по заданному количеству в методе timeseries.SyncData(PERIOD_M15,2), но и по дате, в поле где устанавливается количество(2). Это может пригодиться при изучении корреляции 2 и более инструментов на истории, например, отдельно на флетовом участке и трендовом. И еще, нельзя ли объединить 2 метода в 1 - это timeseries.SyncData(PERIOD_M15,2) и timeseries.Create(PERIOD_M15), а просто записать timeseries.Create(PERIOD_M15,2) ведь создание таймсерии само собой подразумевает сначала синхронизацию данных

 
Alexander:

Здравствуйте! Хотелось бы высказать пожелание, чтобы можно было создавать таймсерии не только по заданному количеству в методе timeseries.SyncData(PERIOD_M15,2), но и по дате, в поле где устанавливается количество(2). Это может пригодиться при изучении корреляции 2 и более инструментов на истории, например, отдельно на флетовом участке и трендовом. И еще, нельзя ли объединить 2 метода в 1 - это timeseries.SyncData(PERIOD_M15,2) и timeseries.Create(PERIOD_M15), а просто записать timeseries.Create(PERIOD_M15,2) ведь создание таймсерии само собой подразумевает сначала синхронизацию данных

Здравствуйте. Таймсерии создаются всегда от нулевого бара (самого правого на графике - с последней датой) в указанном количестве. Ведь в программе могут потребоваться любые данные помимо исторических - и текущие тоже. А создание базы - самая затратная операция, поэтому если изначально создать таймсерию участка далеко в истории, а потом по требованию пересоздавать таймсерию - это будет слишком дорого.

Но библиотека позволяет вам получить из созданной один раз базы любое количество баров таймсерии, в любом промежутке времени. Для этого достаточно получить сначала полный список баров таймсерии, а затем выбрать из него необходимый участок. Для этого нужно использовать CSelect().

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

 

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

 
Sergey Pavlov:

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

Часто авторы статей вынуждены акцентировать внимание - особенно, если статья несёт обучающий характер совместно с информационным. И делать это приходится при помощи выделения одинаковым цветом фона описываемого участка кода и его описания. Мне самому не очень приятно видеть что получается, но это вынужденная мера. Если у вас есть предложение как сопоставить два участка текста иным способом кроме выделения их одинаковым цветом фона, то я с удовольствием выслушаю ваше предложение.

 

Есть 2 варианта: статический и динамический.

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

Динамический: доступен только с помощью MQ. Они могут в редакторе публикаций сделать хотспоты, по наведению на которые курсора мыши, в тексте (коде) будут подсвечиваться соответствующие им "якоря". Когда курсор не наведен на хотсопт, подсветки нет. Хотспоты помечаются в тексте как слабо подчеркнутые ссылки без цвета (кое где такое на сайтах встречается). Если бы такое было, потребовало бы при верстке примерно тех же действий, что сейчас требует подкрашивание фона, только кнопка в палитре инструментов будет другая. Но такое вряд ли сделают.

 
Stanislav Korotky:

Есть 2 варианта: статический и динамический.

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

Динамический: доступен только с помощью MQ. Они могут в редакторе публикаций сделать хотспоты, по наведению на которые курсора мыши, в тексте (коде) будут подсвечиваться соответствующие им "якоря". Когда курсор не наведен на хотсопт, подсветки нет. Хотспоты помечаются в тексте как слабо подчеркнутые ссылки без цвета (кое где такое на сайтах встречается). Если бы такое было, потребовало бы при верстке примерно тех же действий, что сейчас требует подкрашивание фона, только кнопка в палитре инструментов будет другая. Но такое вряд ли сделают.

Да, второй вариант весьма предпочтительнее.
А первый не подойдёт по причине, что многие начинающие пытаются писать прямо по ходу статьи.
 
Artyom Trishkin:

А первый не подойдёт по причине, что многие начинающие пытаются писать прямо по ходу статьи.

Наоборот. Первый вариант - в стиле очень медленного руководства "шаг за шагом" - оно более предпочтительно для начинающих.

 
Stanislav Korotky:

Наоборот. Первый вариант - в стиле очень медленного руководства "шаг за шагом" - оно более предпочтительно для начинающих.

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

 
Artyom Trishkin:

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

Артём, начинающим трейдерам-программистам Ваши "акценты" в виде цветовых схем в тексте не помогут. И что-то подсказывает, что "новички" всё равно в этом не разберутся (или не захотят разбираться).

В данном случае, я на стороне "новичков": как в голове уложить 100500 статей и применить их в своих советниках?

 
Sergey Pavlov:

Артём, начинающим трейдерам-программистам Ваши "акценты" в виде цветовых схем в тексте не помогут. И что-то подсказывает, что "новички" всё равно в этом не разберутся (или не захотят разбираться).

В данном случае, я на стороне "новичков": как в голове уложить 100500 статей и применить их в своих советниках?

Ну однако, кто хочет разобраться, пишут в личке с вопросами - на то и ориентируюсь (хоть и прошу писать прямо в обсуждении к статьям, но пишут больше в личку почему-то - может публичность вопроса стесняет, не знаю).

И, думаю, не нужно укладывать в голове +100500 статей.
Скажем, вы знаете справку наизусть? Я - нет. И даже не с первого раза могу в ней найти интересующий момент для "освежить в памяти".
Но ищу, нахожу, перечитываю и освежаю. И не новичок вроде бы...
Или, скажем, насколько точно вы помните учебник Ковалёва?

Не нужно помнить и знать наизусть. Но читая и перечитывая, разбирая и раскладывая в уме по полочкам, приходишь к осознанию чего-то такого, что делает из человека уже не новичка.
Если обратить внимание на стиль и методы изложения материала в первых статьях и на стиль и изложение в последних, то видно изменение - меньше разжёвываний. Просто когда человек начал читать и ещё не знает как что-то сделать, то изначально можно узнать как. Но потом уже не стоит повторяться каждый раз об одном и том же.
А вот что-то новое, что ещё не описывалось - тут почему бы и не выделить акценты цветом... Впрочем, если бы были иные удобные способы акцентирования внимания кроме выделения одинаковым цветом, то я бы непременно использовал их - мне не нравится эта пёстрость.

А чтобы применить в своих советниках, не обязательно учить как сделана библиотека. Достаточно бегло читать назначение публичных методов и их применение в тестовых советниках. А что не понятно - спрашивать в обсуждении статей.
Просто, если отклониться от описания создания библиотеки и углубиться на моменты её использования, то это будет уже совсем иная тема.
Впрочем, по завершению создания библиотеки будет объёмный справочный материал по всем её публичным методам и способам их использования с примерами.

Причина обращения: