Форум устарел! Поддержка тут: https://t.me/osengine_official_support
Актуальные гайды здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php
робот арбитражный простой. Оснваный на величине движений двух инструментов за N свечей.
Арбитражная стратегия использующая движение свечей в качестве индикатора входа.
О вкладках
В архитектуре Os.Engine предусмотрено подключение к одному роботу нескольких инструментов. Вкладки с ними можно наблюдать слева на панели.
В данном случае имеем две вкладки в которые нужно подключить инструменты для арбитража.
Продажа в нулевой вкладке и покупка в первой:
Движение в нулевой вкладке в %, за N свечей больше чем в первой вкладке на N
Покупка в нулевой вкладке и продажа в первой:
Движение в первой вкладке в %, за N свечей больше чем в нулевой вкладке на N
Закрытие:
Во время входа фиксируется размер спреда. И когда спред отклоняется от этой величины на N % - происходит выход.
Настройки
1. Режим регулирует состояние робота
2. Количество свечей за которые мы смотрим ускорение
3. Величина на которую должно отличаться движение первого и второго инструмента, чтобы произошёл вход в позицию.
Здравствуйте.
Цитата: "В архитектуре Os.Engine предусмотрено подключение к одному роботу нескольких инструментов."
Вопрос: "А можно ли подключить к одному роботу не сами инструменты, а их производные (наверное, можно
назвать их индикаторами, и как это сделать?"
например, такой арбитраж: K1*ln(P1(t)/P1(t-n)) - K2*ln(P2(t)/P2(t-n)), где индексы 1 и 2 относятся к ценам
первого и второго инструмента (акции, фьючерса и т.п.), К1,2 - константы, t -текущая свеча, t-n - свеча, закрытая
n периодов назад, P -в общем случае цена (Close, Bid, Ask и т.п.)
Всё можно.
Нужно создать вкладки в панель, для всех инструментов и ТФ что Вам нужны. Затем добавить на эти вкладки соответствующие индикаторы. И затем посчитать это дело в коде.
Воспользоваться можно стандартным индекс билдером можно. Однако там формула таких подробностей не принимает.
Все хорошо, только вот есть один нюанс, который тут не реализован - в парном трейдинге/арбитраже у нас ВСЕГДА должны быть 2 позиции (если мы в рынке) - по одному инструменту в лонг, по другому в шорт (и наоборот). В данной реализации стратегии мы входим в рынок лимитками - если одна "нога" исполнилась, то 2я "нога" может и не исполнится. И если на выход предусмотрена защита от "неисполнения лимитки" , то на вход нет :( ЗЫ: Я понимаю, что это просто базовый вариант - в коде можно все это реализовать, но к сожалению пока что не хватает навыков программирования :(
Надо пробовать. Чем сложнее роботов мы будем делать, тем труднее в них будет разбираться. Попробуйте выставлять одну ногу лимиткой, подпишитесь на событие открытия позиции _tabOne.PositionOpenEvent(как то так) и в этом эвенте заходите второй ногой с проскальзыванием.
Тестировать эту стретгию я так понял не возможно, ибо в тестере можно выбрать только 1 сет с данными ?
Цитата: evgeny000
Тестировать эту стретгию я так понял не возможно, ибо в тестере можно выбрать только 1 сет с данными ?
возможно. В одном сете могут быть разные данные. Как по инструментам так и по таймфреймам. Тестер будет транслировать их синхронизируя подачу. Единственное, в тестере нужно проверять перед заходом в логику, имеют ли текущие свечи у инструментов одно время.
Цитата: Алексей Ван
Цитата: evgeny000
Тестировать эту стретгию я так понял не возможно, ибо в тестере можно выбрать только 1 сет с данными ?
возможно. В одном сете могут быть разные данные. Как по инструментам так и по таймфреймам. Тестер будет транслировать их синхронизируя подачу. Единственное, в тестере нужно проверять перед заходом в логику, имеют ли текущие свечи у инструментов одно время.
В таком случае я не понимаю, почему у меня сеты с данными отображаются только один. К примеру вот как у меня.
В тестере я могу выбрать только 1 сет!
В тестере я могу выбрать только 1 сет!
Всё верно. Тестер видит только по одному сету за раз. Подгрузите пожалуйста в рамках одного сета несколько бумаг и нужные Вам таймфреймы.
В настройках сета, справа есть кнопочка ПЛЮС. Нажмите её несколько раз и создайте в одном сете данных несколько загружаемых инструментов.
Вопрос по Tab.Index: я так понял (в коде подсмотрел) расчет любого индекса ведется с привязкой к завершившемся свечам инструментов, входящих в этот индекс. Т.е. если я например построил индекс из 3х инструментов (или даже 2х), один из этих инструментов малоликвиден, и сделки в нем проходят намного реже, чем в другом. Возмем например "сладкую парочку" Сбер/СберПреф (фьючерсы) - днем все боль менее терпимо, а вот на вечерке все плохо, и получается индекс наш стоит на месте. Конечно в ИДЕАЛЕ (в сильно упрощенном идеале :) ) мы должны считать эти индексы не по закрытиям свечей, а по ХОТЯБЫ по (ask+bid)/2 - такое вообще возможно реализовать? Или тогда сильно возрастет нагрузка на процессор?
Цитата: Lexuz77
Или тогда сильно возрастет нагрузка на процессор?
не. всё хорошо с процессором будет. Для малоЛиквида подключайте свечи строящиеся из стакана. И будет Вам счастье.
Цитата: Алексей Ван
Цитата: Lexuz77
Или тогда сильно возрастет нагрузка на процессор?
не. всё хорошо с процессором будет. Для малоЛиквида подключайте свечи строящиеся из стакана. И будет Вам счастье.
На сколько я понял, т.е. я когда в tab.index добавляю инструменты, я должен выбирать метод сборки свечей не тики, а MarketDepth?
Я так пробовал (да у меня в квике по всем инструментам настроены стаканы с шаблоном QUIK STOCK и выводом по дде) - но спреды, не строятся. Если просто открыть вкладку с инструментом и туда добавить инструмент с MarketDepth .то да, свечки строятся...
ООО «ВАН ТЕХНОЛОГИИ»т: +7 953 769 56 45
* Торговля на финансовых рынках связана с риском, который лежит на Вас.
* Ничто из написанного на сайте o-s-a.net не является рекомендацией.
* Если Вы этого не понимаете, не читайте этот сайт, ничего не покупайте.