Вопросы по работе с лимитными заявками

  1. surat

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

    Добрый день


    Прошу помощи с реализацией логики исполнения заявок.

    Имеется стратегия, реализующая котирование одного инструмента. На некотором удалении от текущей цены выставляется лимитная заявка (допустим, на покупку) на n контрактов. После срабатывания заявки необходимо выставить противоположную лимитку на продажу. Причем количество контрактов на продажу должно быть равно объему открытой позиции. По правилам торговой логики закрывающую заявку на продажу нужно двигать по цене (то есть отзывать ордеры с биржи и выставлять по новой цене).

    Планирую пользоваться функционалом класса BotPanel, но есть вопросы.

    1. Правильно ли я понимаю механику работы (см далее)? Открываем позицию методом BuyAtLimit объемом в несколько контрактов. Робот отправит соответствующий ордер на биржу, статус позиции будет Opening. При акцепте хотя бы одного контракта статус позиции изменится на Open, произойдет событие PositionOpeningSuccesEvent.

    2. С помощью какого события можно отследить изменение объема в уже открытой позиции?

    3. Закрывающая заявка создается методом CloseAtLimit:

    _tab.CloseAtLimit(position, Price, position.OpenVolume);

    Если OpenVolume изменится, произойдет ли автоматическое выставление на биржу дополнительного ордера на закрытие?

    4. Если метод CloseAtLimit выставил ордер на биржу, а теперь мне нужно перевыставить его по другой цене, как это сделать? Повторно вызвать CloseAtLimit с другой ценой? Или нужно сначала отменить уже выставленный ордер методом CloseOrder?

    surat
    16.05.2018 09:53
    #1
  2. Алексей Ван Команда форума

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

    Добрый.

    Всё это не так просто и такого робота просто так не собрать если у Вас нет хороших скилов в проге.


    Если Вы покупали обучение с поддержкой, напишите мне в скайп. tyam.. Alex Wang OsEngine

    И мы разберёмся. Правда, прошу учесть что я сейчас в разьездах. Могу не очень оперативно отвечать.


    Если Вы не покупали обучение с поддержкой, вариантов несколько:

    1) заказать такого робота.

    2) купить обучение с поддержкой. Сделать все задания. И не задавать вопросов.

    3) ждать пока здесь кто-то ответит. Но это может не случиться. В основном здесь пишу я либо пользователи с багами и предложениями. Вся индивидуальная поддержка в скайпе, т.к. продажа обучения единственное и немногое на что проект живёт.


    С уважением, Алексей.

    Алексей Ван
    16.05.2018 12:52
    #2
  3. surat

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

    Обучение покупал, номер лицензии 931-035-593. В условиях написано, что поддержка на форуме :)

    Курс обучения позиционируется как материал для непрограммистов (коим я и являюсь). Вопросы частичного исполнения заявок в рамках курса не рассматриваются. Нюансы работы методов и классов, про которые я спрашиваю, также не описываются. Так что насчет "купить обучение и не задавать вопросов" я бы поспорил :)

    Про индивидуальную поддержку. Мне кажется, что вопросы исполнения заявок будут актуальны для многих пользователей проекта, разве нет? Тогда не лучше ли их обсудить здесь на форуме?

    surat
    16.05.2018 23:11
    #3
  4. sollers

    Регистрация:
    11.04.17
    Сообщения:
    32
    Был на сайте:
    13.08.18

    Можно разбить ордер на более мелкие и закрывать их по мере исполнения.

    sollers
    17.05.2018 23:52
    #4
  5. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    368
    Был на сайте:
    18.10.18
    Цитата: surat

    Обучение покупал, номер лицензии 931-035-593. В условиях написано, что поддержка на форуме :)

    Курс обучения позиционируется как материал для непрограммистов (коим я и являюсь). Вопросы частичного исполнения заявок в рамках курса не рассматриваются. Нюансы работы методов и классов, про которые я спрашиваю, также не описываются. Так что насчет "купить обучение и не задавать вопросов" я бы поспорил :)

    Про индивидуальную поддержку. Мне кажется, что вопросы исполнения заявок будут актуальны для многих пользователей проекта, разве нет? Тогда не лучше ли их обсудить здесь на форуме?

    Может и лучше здесь что-то обсудить. Но мне нужно идентифицировать пользователя. Нашёл Вас.


    События обновления позиции если она открывается несколько раз по одному ордеру - нет. Это очевидно косяк. Поправлю до конца месяца. Добавлю новое событие связанное с позицией.


    В обучении есть блок про сложных роботов. Это номер СЕМЬ. Там есть такое занятие, которое называется ХФТ стайл. Это когда мы подписываемся на сам сервер и вручную контролируем ордера. Снимаем, выставляем. Плюс проверяем неттоПозицию по инструменту, чтобы когда что-то потеряется, а оно потеряется, можно было это подправить налету.

    Посмотрите интерфейс сервера IServer, в папке сервер. В нём есть всё что Вам нужно. Входящие ордера, мои трейды. Подписывайтесь на него и контролируйте позицию хардово.

    Однако, это конечно же не ИЗИ способ сделать робота. Но то что Вы пишите я бы делал только так.


    Автоматически ничего на биржу не выставиться. Только то что Вы уже запросили. Каждый раз когда объём в позиции будем меняться, нужно выставлять новый ордер. А предыдущие будут сняты. Просто Вызываете ещё раз CloseAtLimit c новым объёмом - и старый ордер будет отозван.



    Алексей Ван
    20.05.2018 13:06
    #5