Рассмотрим пример того, как выходить из позиции двумя (вообще можно больше, но в примере 2) лимитными ордерами одновременно.
Это стало возможно совсем недавно, т.к. камрады из сообщества очень просили. Метод, которым будем пользоваться для закрытия позиций, называется CloseAtLimitUnsafe. Отличие от CloseAtLimit такое:
Точка входа у робота контртредовая на канале Envelops.
Итоговая логика робота на графике выглядит так:
Шорт, прикрытый стоп ордером, и два лимитных ордера на бирже для закрытия в прибыль.
На ГитХаб в репозитории OsEngine это находится здесь:
Паттерн позволяет разделить логику тестирования от логики реального входа внутри робота для того, чтобы при входе и выходе не «рисовать свечи» своими большими заявками.
Очень важная заготовка паттерна управления позицией для тех, у кого много денег на счету. В том числе разберём исходный код, чтобы Вы могли модернизировать свои способы входа в реале, опираясь на данные исходники. В примере логика айсберга выделена в отдельный объект и использована многопоточность, но её надо будет переиспользовать без изменений, поэтому не пугайтесь, кто не программист, переиспользовать удастся. Будете входить, как захотите в реале.
Итоговая логика робота на графике в реале выглядит так:
В примере на графике получилось даже зайти лучше, чем если бы мы это делали одним ордером.
Сам робот – классический отбойник от боллинджера с выходом в % по стопу и профиту. Выход также в реале через «кастомный айсберг».
На ГитХаб в репозитории OsEngine это находится здесь:
В этом видео подробно рассмотрим Журнал сделок в OS Engine. А также проведем тесты ГРААЛЬНОГО робота и на его примере подробно объясним, какая нужная информация по тестам (или торговле) записывается в журнал.
VK Видео:
RuTube:
Изменения, баг-фикс и улучшения, которые были внесены в проект за предыдущий месяц.
Приближаемся к продакшен-реди версии. Около нового года можно будет об этом говорить, поэтому фокус смещается на инструкции и удобство работы с проектом для начинающих.
Сам ГАЙД здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php
Он делается для того, чтобы было удобно и быстро искать всё в одном месте. Вся информация по алготрейдингу и созданию торговых роботов, которая Вам может понадобиться в одном месте.
Новое за месяц:
Видеообзор функционала выставления наклонных и горизонтальных уровней, по которым можно входить и выходить из позиций.
VK Видео:
RuTube:
Сегодня рассмотрим пример того, как можно усредняться через отложенные ордера на открытие других позиций.
Данный тип усреднения позволяет в полной мере тестировать торговую логику робота на свечных данных, т.к. использует заявки на усреднение типа BuyAtStop и SellAtStop.
На ГитХаб в репозитории OsEngine это находится здесь:
https://github.com/AlexWan/OsEngine
Внутри проекта здесь:
В данном посте будем учиться запускать «профилирование» в Visual Studio, чтобы глазами увидеть место самых больших нагрузок у бота.
Ну и в целом заканчиваем нашу минисерию постов про производительность роботов и как делать так, чтобы у Вас никакие очереди не забивались, а роботы работали быстро и качественно.
Профилировка производительности C# — это процесс анализа производительности программы путём мониторинга использования процессора различными функциями и сегментами кода.
Профилируя приложение C#, можно определить, какие части кода занимают больше всего времени процессора и вызывают проблемы с производительностью. Эта информация важна для оптимизации приложения и улучшения его общей производительности.
С точки зрения прикладного:
Профилировка производительности – один из способов запуска проектов на СиШарп (OsEngine), который помогает увидеть «узкие» места в коде, где больше всего расходуется ЦП.
Так проект OsEngine можно запустить в нескольких режимах:
В данной статье поговорим о проблемах «перегрузки» в пользовательской логике в роботе. Очень условно поговорим про поточную модель OsEngine и о том, почему нельзя нагружать поток робота «лишней» работой или укладывать «Спать».
Для начала давайте взглянем на поток, который отдаёт данные в роботов в реале. Для этого нужно открыть класс AServer. Это вот здесь: