Форум устарел! Поддержка тут: https://t.me/osengine_official_support

Актуальные гайды здесь: https://smart-lab.ru/company/os_engine/blog/1024149.php

PairTraderSimple (MM)

робот арбитражный простой. Оснваный на величине движений двух инструментов за N свечей.

  1. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24

    Арбитражная стратегия использующая движение свечей в качестве индикатора входа.


    О вкладках

    В архитектуре Os.Engine предусмотрено подключение к одному роботу нескольких инструментов. Вкладки с ними можно наблюдать слева на панели.

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


    Продажа в нулевой вкладке и покупка в первой:
    Движение в нулевой вкладке в %, за N свечей больше чем в первой вкладке на N


    Покупка в нулевой вкладке и продажа в первой:
    Движение в первой вкладке в %, за N свечей больше чем в нулевой вкладке на N


    Закрытие:
    Во время входа фиксируется размер спреда. И когда спред отклоняется от этой величины на N % - происходит выход.


    Настройки


    1. Режим регулирует состояние робота
    2. Количество свечей за которые мы смотрим ускорение
    3. Величина на которую должно отличаться движение первого и второго инструмента, чтобы произошёл вход в позицию.

    Алексей Ван
    05.12.2016 14:23
    #1
  2. velx

    Регистрация:
    28.12.16
    Сообщения:
    2
    Был на сайте:
    29.04.22

    Здравствуйте.

    Цитата: "В архитектуре 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 и т.п.)

    velx
    29.12.2016 02:15
    #2
  3. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24

    Всё можно.

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

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

    Алексей Ван
    07.01.2017 13:35
    #3
  4. Lexuz77

    Регистрация:
    10.12.16
    Сообщения:
    113
    Был на сайте:
    10.02.24

    Все хорошо, только вот есть один нюанс, который тут не реализован - в парном трейдинге/арбитраже у нас ВСЕГДА должны быть 2 позиции (если мы в рынке) - по одному инструменту в лонг, по другому в шорт (и наоборот). В данной реализации стратегии мы входим в рынок лимитками - если одна "нога" исполнилась, то 2я "нога" может и не исполнится. И если на выход предусмотрена защита от "неисполнения лимитки" , то на вход нет :( ЗЫ: Я понимаю, что это просто базовый вариант - в коде можно все это реализовать, но к сожалению пока что не хватает навыков программирования :(

    Lexuz77
    16.01.2017 22:11
    #4
  5. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24

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

    Алексей Ван
    17.01.2017 08:15
    #5
  6. evgeny000

    Регистрация:
    01.02.17
    Сообщения:
    5
    Был на сайте:
    17.02.17

    Тестировать эту стретгию я так понял не возможно, ибо в тестере можно выбрать только 1 сет с данными ?

    evgeny000
    07.02.2017 20:57
    #6
  7. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24
    Цитата: evgeny000
    Тестировать эту стретгию я так понял не возможно, ибо в тестере можно выбрать только 1 сет с данными ?

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

    Алексей Ван
    08.02.2017 08:09
    #7
  8. evgeny000

    Регистрация:
    01.02.17
    Сообщения:
    5
    Был на сайте:
    17.02.17
    Цитата: Алексей Ван
    Цитата: evgeny000
    Тестировать эту стретгию я так понял не возможно, ибо в тестере можно выбрать только 1 сет с данными ?

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

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

    В тестере я могу выбрать только 1 сет!

    evgeny000
    08.02.2017 12:26
    #8
  9. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24

    В тестере я могу выбрать только 1 сет!

    Всё верно. Тестер видит только по одному сету за раз. Подгрузите пожалуйста в рамках одного сета несколько бумаг и нужные Вам таймфреймы.

    В настройках сета, справа есть кнопочка ПЛЮС. Нажмите её несколько раз и создайте в одном сете данных несколько загружаемых инструментов.

    Алексей Ван
    08.02.2017 12:38
    #9
  10. Lexuz77

    Регистрация:
    10.12.16
    Сообщения:
    113
    Был на сайте:
    10.02.24

    Вопрос по Tab.Index: я так понял (в коде подсмотрел) расчет любого индекса ведется с привязкой к завершившемся свечам инструментов, входящих в этот индекс. Т.е. если я например построил индекс из 3х инструментов (или даже 2х), один из этих инструментов малоликвиден, и сделки в нем проходят намного реже, чем в другом. Возмем например "сладкую парочку" Сбер/СберПреф (фьючерсы) - днем все боль менее терпимо, а вот на вечерке все плохо, и получается индекс наш стоит на месте. Конечно в ИДЕАЛЕ (в сильно упрощенном идеале :) ) мы должны считать эти индексы не по закрытиям свечей, а по ХОТЯБЫ по (ask+bid)/2 - такое вообще возможно реализовать? Или тогда сильно возрастет нагрузка на процессор?

    Lexuz77
    24.02.2017 13:14
    #10
  11. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1175
    Был на сайте:
    05.10.24
    Цитата: Lexuz77

    Или тогда сильно возрастет нагрузка на процессор?

    не. всё хорошо с процессором будет. Для малоЛиквида подключайте свечи строящиеся из стакана. И будет Вам счастье.

    Алексей Ван
    24.02.2017 17:08
    #11
  12. Lexuz77

    Регистрация:
    10.12.16
    Сообщения:
    113
    Был на сайте:
    10.02.24
    Цитата: Алексей Ван
    Цитата: Lexuz77

    Или тогда сильно возрастет нагрузка на процессор?

    не. всё хорошо с процессором будет. Для малоЛиквида подключайте свечи строящиеся из стакана. И будет Вам счастье.

    На сколько я понял, т.е. я когда в tab.index добавляю инструменты, я должен выбирать метод сборки свечей не тики, а MarketDepth?

    Я так пробовал (да у меня в квике по всем инструментам настроены стаканы с шаблоном QUIK STOCK и выводом по дде) - но спреды, не строятся. Если просто открыть вкладку с инструментом и туда добавить инструмент с MarketDepth .то да, свечки строятся...

    Lexuz77
    27.02.2017 20:03
    #12