Постов с тегом "c#": 144

c#


Как собрать историю стакана?

Тема нового видео предложена трейдерами, изучающими возможности библиотеки. В общем фильма отвечает на вопрос «Как за десять минут написать сборщика статистики очереди заявок (стакана) для финансового инструмента?».

Если вам для решения вашей проблемы не требуются исторические данные о сделках и заявках за несколько прошедших лет, а достаточно статистики за неделю, или две, то вы легко можете собрать на основе нашего скальпирующего робота инструмент, который будет «слушать» очереди заявок и записывать их результаты в текстовые файлы с разделителями. А уже эти текстовые файлы вы легко сможете распотрошить с помощью популярных средств работы с табличными данными, такими как Microsoft Excel или OpenOffice Calc или LibreOffice Calc.

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


Исходный код скальпера все там же, в открытом репозитории битбакет.

Развиваем навык программирования обработчиков

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

Алгоритм нового обработчика в двух словах: Берем набор тиков за последние N секунд. Если разница между максимальной и минимальной ценой в наборе тиков меньше значения M, то не торгуем, считая что тренда нет. Если цена самого старого тика в наборе, меньше цены самого свежего тика в наборе, открываем позицию в лонг. Если цена самого старого тика в наборе, больше цены самого свежего тика в наборе, открываем позицию в шорт.

Видео в этот раз на 40 минут, потому что пишем код, и потому что пишем тест, до того, как пишем код.


Что произойдет с роботом, в случае сбоя SmartCOM-а?

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

Сложно с этим не согласиться, но как всегда есть нюанс. Большинство из нас, разрабатывая автоматические торговые системы почти всегда использует какой-нибудь чужой модуль. Это может быть шлюз, COM компонент или библиотека. Любой из этих компонентов может привносить собственную изюминку в коллекцию сбоев робота.

Сегодняшнее видео как раз быстро и ненавязчиво демонстрирует как робот исхитряется выживать в случаях, когда SmartCom выпадает в осадок, пусть это бывает и не очень часто, но тем не менее бывает.


Доступ из робота к обработчикам событий SmartCom

В собранной нами конструкции робота отсутствуют ссылки на класс StServerClass и интерфейс StServer. Как быть, если необходимо получить прямой доступ к обработчикам событий SmartCom? Ну например моей торговой стратегии для корректной работы необходимы некие исторические данные и я хочу сразу после установления соединения запросить у брокера некий набор баров.

В традиционно коротком видео (15 минут)


показан один из способов обращения к родным событиям SmartCom, который позволяет обеспечивать корректную работу и восстановление робота даже в случае удара пресловутого исключения System.Runtime.InteropServices.COMException (0x800706BA), за счет динамического связывания и пересвязывания всех обработчиков.

Что произойдет с роботом в случае обрыва связи?

Вчера, в одном из комментариев мне предложили заняться стресс-тестированием робота (библиотеки), в том числе и в части его поведения, касающегося обработки обрывов связи с брокером.

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

Короткое, 12 минут видео, о том, как вы можете убедиться в том, что написанный с использованием библиотеки ru.sazan.trader робот, обнаруживает краткосрочные (1 минута) обрывы связи и продолжает торговать после ее восстановления.


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

Вывод результатов торговли робота в консоль

Еще одно видео в формате «для тех, у кого мало времени». За пять минут добавляем роботу способность сообщать о реализованных им прибылях и убытках.

Обновленный исходный код проекта можно загрузить все из того же репозитория.

Учим робота отменять заявки на открытие

Еще пять с небольшим минут видео, где показывается как добавить роботу готовый обработчик, который будет отменять лимитные заявки на открытие позиции, цена которых «ушла» на N пунктов, от лучшей цены спроса-предложения на рынке.


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

P.P.S. Обновленный исходный код проекта можно загрузить все из того же репозитория.

О типе данных Enum

Новое видео для тех, кто не умеет программировать. Краткий, пять с хвостиком минут, но страшно практический обзор типа данных Enum. Естественно в качестве примеров только объекты из предметной области биржевой торговли.


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

Улучшаем демонстрационного робота

В прошлый раз мы реализовали простейший обработчик, который «наблюдает» за очередью заявок RTS-12.13. Если в настоящий момент позиция у него не существует, то он пытается открыть «длинную» позицию, отправив брокеру лимитную заявку с лучшей ценой спроса.

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



Или скачать файлом отсюда. (Формат avi, размер 113 Мб)

Исходный код показанного в видео проекта робота можно загрузить из репозитория.

Бесплатная библиотека для программирования роботов

Открываю исходный код, который мы используем для сборки наших торговых роботов.

Разработку я начал год назад и нашей главной целью было как можно быстрее, и как можно с меньшими затратами начать торговать алгоритмически. Цели как мне кажется мы вполне достигли, потому что используя наш подход мы сегодня можем реализовывать и ставить на торговлю новые алгоритмы очень быстро (в течение одного рабочего дня даже).

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


  Видео можно скачать файлом отсюда. (Формат avi, размер 27.4 Мб)


( Читать дальше )

....все тэги
UPDONW
Новый дизайн