Продолжаем заниматься улучшением робота, который начали писать в предыдущей статье. Сегодня добавим в него индикатор и добавим торговую логику. После этого он у нас начнёт торговать.
На текущий момент у нас есть робот, который видит OsEngine и в который можно подключить данные:
=IMPORTXML("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml";"//row[@SECID='DIAS']/@LAST")Вот только импортируется вся эта вещь в непонятном формате, когда речь заходит о числах с точкой.
=REGEXREPLACE(B2; "[.]"; ",")
=IMPORTXML("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml";"//row[@SECID='DIAS']/@LAST")Можно в этот текст внутри кавычек запихнуть не тикер DIAS а ссылку на ячейку? Как?
Сегодня будем создавать робота пустышку, которого станем дополнять в следующих статьях так, чтобы его увидел тестер в OsEngine.
Это введение по минисерии статей про то, как быстро научиться делать роботов для OsEngine. Здесь не будет долгих и занудных объяснений всего и вся (это будет чуть позже в этом блоге или было раньше). А в данной серии мы сконцентрируемся на практике.
Чтобы Вы могли за пару вечеров запустить своих первых роботов в тестер и в бой. Этот сборник в первую очередь интересен тем, кто уже какое-то время потратил на создание роботов в других платформах, или уже программист со стажем.
В данном сборнике Вы найдёте примеры создания роботов с использованием разных источников. С очень подробным объяснением того, в каком порядке их надо создавать и зачем нужен тот или иной исходный код:
Изменения, баг-фикс и улучшения, которые были внесены в проект за предыдущий месяц.
Приближаемся к продакшен-реди версии. Около нового года можно будет об этом говорить. Поэтому фокус смещается на инструкции и удобство работы с проектом для начинающих.
Сам ГАЙД здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php
Он делается для того, чтобы было удобно и быстро искать всё в одном месте. Вся информация по алготрейдингу и созданию торговых роботов, которая Вам может понадобиться, в одном месте.
Новые статьи за месяц:
1) Облегчение загрузки ЦП на удалёнке: https://smart-lab.ru/company/os_engine/blog/1033734.php
2) Слой создания свечей. CandleFactory: https://smart-lab.ru/company/os_engine/blog/1033931.php
3) Слой создания свечей. Реализации и их использование в проекте: https://smart-lab.ru/company/os_engine/blog/1034352.php
Большинство роботов в OsEngine видят и управляют только своими личными позициями. Теми, которые хранятся только в журнале конкретного робота. Роботы открывают и закрывают позиции, управляют ими и видят их только у себя в журнале.
На картинке ниже, изображена разница между позицией на бирже (PositionOnBoard) и позициями (Positioin) у роботов. Из этой картинки Вы должны понять, что у роботов по одному инструменту может быть много позиций (и даже в разные стороны), а в портфеле на бирже она всегда одна:
Когда робот хочет купить или продать какой-то инструмент на бирже, он открывает позицию, которую видит только он и которую можно увидеть в его журнале.
Когда робот хочет выйти из какого-то актива, то робот должен закрыть позицию.
Для тех, кто торговал много лет только в Quik, данная концепция болезненна. Однако, это пришло в OsEngine из WealthLab, а это является мировым стандартом написания роботов уже много лет. Придётся очень плотно работать с этим классом и привыкать к такой абстракции.
Продолжаем связывать данные из терминалов на бирже с тем, как это видят роботы.
Сегодня поговорим про портфель на бирже. Это Ваш «кошелёк», на котором хранятся деньги (активы) и позиции по акциям и деривативам. В вёб-терминале это выглядит как-то так:
В процессе ведения торговой деятельности на финансовом рынке пользователь так или иначе приобретает права на активы, не важно какие, будь то акции, облигации, опционы, криптовалютные пары или любые другие.
Вследствие этого возникает необходимость хранить всю эту информацию в определенном месте. В OsEngine этим целям служит класс Portfolio, представляющий собой реализацию такой абстрактной сущности, как брокерский счет на классических биржах или же кошелек на криптовалютных биржах.
Внутри терминала OsEngine данная сущность хранится в классе Portfolio.
На ГитХаб данный класс хранится по адресу: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Entity/Portfolio.cs