У вас не стоит Flash Player
Настройки
#86966 - Fri May 14 2021 11:05 PM Кубик "Trades Logger"
AleksandrGanov Offline
member

Registered: Fri Jun 02 2017
Записи: 180
Loc: Kamchatka
Кубик "Trades Logger"

Кубик опубликован с разрешения автора Sergey Gilyazov из группы ТСЛаб в телеграм.

Кубик предназначен для записи информации по сделкам в файл формата csv. Один и тот же файл может использоваться для записи сделок нескольких агентов. Работает только в режиме агента, записывает данные о сделках закрытых на последнем баре.
Записывает следующие данные: Имя агента; Tag1; Tag2; Направление трейда; Инструмент; Максимальный размер позиции; Сигнал входа; Дата и время входа; Цена входа; Сигнал выхода; Дата и время выхода; Цена выхода; Прибыль(пункты); Прибыль(деньги); Прибыль %; Счет. Принцип работы кубика: на последнем баре кубик проверяет есть ли сделка, которая была открыта на предпоследнем баре, на закрылась на последнем баре, если такая сделка существует, то она помещается в список для записи, после чего вызывается метод записи в файл. Для записи всех сделок можно использовать как разные файлы, так и один и тот же. В случае если используется один и тот же файл, то при попытке записи в файл если он будет занят в этот момент записью информации с другого агента, вся информация по сделкам записывается в кеш платформы ТСЛаб после чего при следующей попытке записи в файл будет записана в него в полном объеме, таким образом, обеспечивается сохранность необходимой информации о сделках. В дальнейшем файл можно использовать для анализа в любых поддерживающих данный формат программах анализа данных.

Важные примечания:
-- использование в сигналах входа/выхода, имени агента и т.д. символа | может привести к неверной записи данных
-- прибыль в пунктах и процентах рассчитывается тслаб. Прибыль в деньгах рассчитывается как Прибыль в пунктах / шаг цены * стоимость шага цены

Настройки кубика:
  • FilePath. Путь к файлу необходимо указывать через двойной знак "\\", например, С:\\TSLabStats\trades.csv
  • UseAgentTradeName. Использовать торговое имя агента вместо вводимого в параметрах кубика. При установке данной опции при записи данных в файл вместо указанно в кубике имени будет всегда использоваться торговое имя агента из ТСЛаб
  • TradeName. Имя торгового агента. Используется если не включена опция UseAgentTradeName. Данная опция позволяет задать имя для записи в файл, которое отличается от имени торгового агента в ТСЛаб
  • Tag1. Метка. Произвольная метка (дополнительный столбец в файле сделок) для группирования агентов для удобства фильтрации сделок. Например "трендовые" и "контртрендовые"
  • Tag2. Метка. Произвольная метка (дополнительный столбец в файле сделок) для группирования агентов для удобства фильтрации сделок. Например "спот" и "фьючи"
  • MessageToLog. Выводить в лог ТСлаб сообщение аналогичное записываемому в файл для дальнейшей пересылки через менеджер оповещений, либо для целей индикации о произведенной записи в формах логах платформы ТСЛаб. Сообщение будет указано как в основном логе платформы, так и в логе агента, сделка которого записана в файл
  • MessageType. Тип сообщения, выводимого в лог: информационное, Warning и т.д.
  • MessageTag. Дополнительное пользовательское сообщение, выводимое в лог


Общая информация по доп.кубикам:
================================
написание индикаторов для ТСЛаб: https://docs.tslab.pro/pages/viewpage.action?pageId=20185834
потоковые и не потоковые индикаторы: https://docs.tslab.pro/pages/viewpage.action?pageId=38961514
папка Handlers и создание индикаторов на API: https://docs.tslab.pro/pages/viewpage.action?pageId=20185716


Attachments
TradesLoger.zip (78 downloads)



Отредактировано AleksandrGanov (Fri May 14 2021 11:12 PM)

Наверх
#86970 - Thu May 20 2021 05:08 PM Re: Кубик "Trades Logger" [Re: AleksandrGanov]
AleksandrGanov Offline
member

Registered: Fri Jun 02 2017
Записи: 180
Loc: Kamchatka
Произведены доработки по кубику
  • Изменен принцип указания имени агента для записи в лог: в случае, если на второй вход кубика не подано какое-либо текстовое значение с кубика "RandomText" (приложен к посту), то в качестве имени будет использовано торговое имя агента, что является более удобным по причине того, что данное имя можно также вывести на контрольную панель и/или использовать в других кубиках, например, при отправке сообщений через расширенный кубик отправки сообщений. Также наличие имени в логгере позволяет при записи сделок соотносить их всегда с одним и тем же торговым именем, например, при смене имени торгующего агента. В этом случае в файл сделок будут писать сделки с тем же именем агента, что удобно при анализе результатов торговли во внешних в аналитических программах
  • Добавлена запись тикера, ранее записывалось только полное имя инструмента
  • Добавлена опция "Имя общего файла для записи сделок". При необходимости записывать все сделки со всех агентов в общий файл имя данного файла указывается в текущей настройке. Для включения режима записи в один файл необходимо установить опцию "Писать в один файл"
  • Добавлена опция "Писать в один файл". Суть настройки раскрыта в пункте выше
  • Несколько оптимизирован кода, добавлены мелкие исправления


ПРИМЕЧАНИЕ:
===========
-- кубик пишет сделки только в режиме пересчета "Интервал"


Attachments
Вывод имени на контрольную панель.jpg (624 downloads)
sgilyazov_TradesLogger.zip (69 downloads)
gaaDifferent_RandomText.zip (69 downloads)



Отредактировано AleksandrGanov (Thu May 20 2021 06:10 PM)

Наверх
#87077 - Mon Sep 20 2021 09:50 AM Re: Кубик "Trades Logger" [Re: AleksandrGanov]
AleksandrGanov Offline
member

Registered: Fri Jun 02 2017
Записи: 180
Loc: Kamchatka
Originally Posted By: AleksandrGanov
-- кубик пишет сделки только в режиме пересчета "Интервал"

уточнение - во всех режимах, кроме режима "Интервал+сделка"


Отредактировано AleksandrGanov (Mon Sep 20 2021 09:50 AM)

Наверх
#87183 - Mon Dec 27 2021 08:23 PM Re: Кубик "Trades Logger" [Re: AleksandrGanov]
AleksandrGanov Offline
member

Registered: Fri Jun 02 2017
Записи: 180
Loc: Kamchatka
Обновление кубика:
  • перекомпилирован под под Net 6.0 для возможности использования в ТСЛаб 2.2.
  • обработана ситуация, когда в одном скрипте задействован более, чем один кубик записи сделок (добавлено поле ID, которое используется при записи/чтении в кэш ТСЛаб во избежание конфликтов между двумя и более используемыми кубиками)


Attachments
gaaCommon_ServiceLib.zip (58 downloads)
gaaMarketData_TradesLogger.zip (63 downloads)
TradesLogger.cs (87 downloads)



Отредактировано AleksandrGanov (Mon Dec 27 2021 08:26 PM)

Наверх


Moderator:  ViL, sar