Избранное трейдера Bat
Что такое ВЕЧНЫЙ (бессрочный) фьючерс?
Это разновидность фьючерсного контракта без срока исполнения.
У срочных фьючерсов есть дата экспирации — день, когда контракт исполняется.
У бессрочных фьючерсов экспирации нет.
Условно, такие контракты торгуются бесконечно.
По версии биржи до 01.01.2100.
Технически вечные фьючерсы — однодневные контракты с ежедневным автоматическим продлением на один день.
По бесконечному фьючерсу не предусмотрена поставка, даже если бы у него была дата экспирации.
За 3 дня до экспирации календарного фьючерса биржей предусмотрена возможность его добровольной конвертации за комиссию 1% в квартальный фьючерс.
На практике этой опцией почти никто не пользуется.
Если трейдер открыл позицию по вечному фьючерсу, то сам решает, когда «закрыться» (за исключением случаев принудительной ликвидации). Переносить позицию не нужно, поскольку экспирации нет.
Вечный фьючерс повторяет цену базового актива и подходит для долгосрочного инвестирования.
В OsEngine скрипты роботов могут храниться как внутри проекта, так и снаружи, в виде текстовых файлов.
Если роботы (и индикаторы) внутри проекта, то их можно «дебажить» и правит, так что Visual Studio будет помогать.
Если роботы (и индикаторы) как файлы, то их можно очень быстро переносить из версии в версию OsEngine.
И то, и другое имеет свои преимущества и нужно в разные стадии жизни робота. В этой статье поговорим о том, как роботов (и индикаторы) переносить из проекта в скрипты и обратно.

1. Перенос робота из проекта в скрипты.
Задача: У Вас есть полностью оттестированный и готовый робот внутри проекта. Например, у Вас есть робот «MyEnvelopTrend». В проекте он находится здесь:
Почти сразу, после того, как Вы начнёте писать своих первых роботов, Вам придётся научиться делать записи в лог. Чтобы понимать, правильно ли работают ваши роботы.
Сегодня мы посмотрим, как это делается из кода робота.

1. Каждый робот содержит метод для отправки сообщений в лог.
SendNewLogMessage
В качестве параметров он принимает:
Выглядит в коде робота это так:
Изменения, баг-фикс и улучшения, которые были внесены в проект за предыдущий месяц.
Приближаемся к продакшен-реди версии. Около нового года можно будет об этом говорить, поэтому фокус смещается на инструкции и удобство работы с проектом для начинающих.
Сам ГАЙД здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php
Он делается для того, чтобы было удобно и быстро искать всё в одном месте. Вся информация по алготрейдингу и созданию торговых роботов, которая Вам может понадобиться в одном месте.
Новые статьи за месяц:
1) Оглавление «Быстрого старта в программировании OsEngine». Давно это просили. https://smart-lab.ru/company/os_engine/blog/1044009.php
2) Пример робота на моноисточнике: https://smart-lab.ru/company/os_engine/blog/1044379.php
3) Добавляем в робота индикаторы: https://smart-lab.ru/company/os_engine/blog/1045185.php
В данной статье посмотрим робота, который торгует одновременно всю площадку, к которой подключён. Т.е. может торговать несколько десятков или сотен инструментов одновременно. Не пугайтесь! Это всё ещё чуть больше 200 строк кода, т.к. в OsEngine для этого есть специальный тип источника: BotTabScreener. Им и будем учиться пользоваться.
Прибыльность у данного скринера хорошая из коробки. На некоторых настройках около 0.5% на сделку на MOEX TOP 30 за 10 лет.
По-простому, это импульсный трендовый робот на пробое верхней границы Bollinger с фильтром по Momentum. Вся его соль в том, что он смотрит весь рынок одновременно, и с ним удобно делать кросс-тесты (это когда тестируется торговля одной стратегии на множестве инструментов).
По пунктам:
В данной статье посмотрим на робота с двумя источниками. Один — основной, на котором будет осуществляться торговля, и второй с более старшим таймфреймом, по которому смотрим фильтр.
Это очень популярный подход к торговле, и Вы сможете использовать данного робота в качестве заготовки для ботов с похожей логикой.

Шаг 1. Открываем исходный код робота TwoTimeFramesBot.
Находится он здесь:
Продолжаем заниматься улучшением робота, который начали писать в предыдущей статье. Сегодня добавим в него Параметры для того, чтобы можно было им управлять из интерфейсов.
Начало серии: https://smart-lab.ru/company/os_engine/blog/1044379.php

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

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

Шаг 1. Создаём в проекте класс MyFirstSimpleBot.
Это введение по минисерии статей про то, как быстро научиться делать роботов для OsEngine. Здесь не будет долгих и занудных объяснений всего и вся (это будет чуть позже в этом блоге или было раньше). А в данной серии мы сконцентрируемся на практике.
Чтобы Вы могли за пару вечеров запустить своих первых роботов в тестер и в бой. Этот сборник в первую очередь интересен тем, кто уже какое-то время потратил на создание роботов в других платформах, или уже программист со стажем.
В данном сборнике Вы найдёте примеры создания роботов с использованием разных источников. С очень подробным объяснением того, в каком порядке их надо создавать и зачем нужен тот или иной исходный код: