Как сделать такое событие, которое бы мониторило ордера и передавала в обработчик коллекцию активных заявок? Ну типа trader.ActiveOrders += actords => и т.д. Просто сложность для меня пока в том, что данные действия должны скорее всего выполняться асинхронно, а в многопоточном программировании я пока не очень, да и инфы с примерами использования async/await пока маловато. Там внутри, наверное, должен быть зацикленный или рекурсивный метод?
И заодно подкину ещё пара вопросов:
- Почему свойство Quote.Volume возвращает тип decimal, а не что-нибудь целочисленное?
- Можно ли вернуть позу, отфильтрованную по фирме, типа: trader.GetPosition(account, sec, "SPBFUT") ?
Comentários (21)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Продолжаю поток новичковских вопросов 🙄 Что такое Правило и Токен? Например, создаю переменную rule. Как я её могу практически использовать во благо?
OrdersChanged - может это подойдет.
OrdersChanged - может это подойдет.
Пока думаю над оптимальным алгоритмом. Получается, без всяких заморочек просто рефрешить таблицу и генерировать своё событие? А если периодичность задавать через MarketTimeChanged, там счёт идёт на единицы миллисекунд? А если такую функцию зациклить, то ведь лучше это сделать асинхронно, в другом потоке?
Справку читать пробовал, но не получилось. Не нашёл. Спасиб за наводку. Неплохо было бы делать ссылки в хэлпе на подобные материалы по ключевым словам, это вопрос по организации навигации.
Вы напишите зачем вам это надо, возможно это можно сделать без циклов, рекурсии, таймеров, потоков, async/await и прочей хрени.🙂
Сейчас у меня в QPILE так: раз в секунду пробегаюсь по заявкам. Если заявка активна, то беру её цену и проверяю насколько она адекватна текущей ситуации в стакане. Если не адекватна - снимаю. В следующую секунду выставляю новую заявку и по новой начинаю её мониторить.
Подписаться на событие изменения стакана MarketDepthsChanged. Сработало. Проверять что с ордерам.
Или использовать правило WhenMarketDepthChanged.
А, возвращаясь ко второму посту, можно показать пример как использовать?
Нашли нужный инструмент, зарегистрировали стакан, создали правило.
Если внутри стратегии, то вместо Apply(), Apply(this);
А в чём преимущества правил перед событиями? В каких случаях предпочтительнее применять и те и другие?
Все зависит от конкретной ситуации. Если на примере MarketDepthsChanged и WhenMarketDepthChanged
Допустим зарегистрировали стаканы по 10 инструментам. И теперь каждый раз когда будет изменятся стакан по одному из этих инструментов, каждый раз будет срабатывать событие MarketDepthsChanged. Что может быть не совсем удобно. Поэтому создаем правило для конкретного инструмента и обрабатываем изменение стакана именно по нему.
C правилами много чего можно делать. Почитайте справку, попробуйте применить, посмотрите как работает.
А где-то ещё можно посмотреть примеры создания Стратегий, в т.ч. и дочерних, и стратегий котирования? Пример их хэлпа с хеджированием мало что объясняет 😭 Может кто поделится, пусть и бесполезными в плане извлечения прибыли, кодами!
Жаль 😢 Придётся изобретать велосипед и писать свои шаблоны для стратегий всё с нуля.
Так есть исходники S#, чем они не подходят?
Ну чем больше источников и информации, чтобы въехать в тему, тем лучше. В исходниках тоже надо привыкнуть разбираться, где там что и как. Внутренности классов и методов там отражено, а вот примеры имплементаций скорее всего нет.
Чем не "примеры имплементации"?
Чем не "примеры имплементации"?
Ну, например, пытаюсь выставить заявку пропуская 100 контрактов вперёд в стакане. Не понимаю точно, как выполнить котирование (наверное, то что я пытаюсь сделать это так и называется), но пытаюсь написать что-то типа того:
Не вижу, чтобы что-то где-то говорилось о конкретной имплементации, в исходниках или хелпе.
А почему этот код не выводит активные заявки? Ордера меняю по всякому, а breakpoint внутри цикла даже не задевается.
При этом заявки со статусом OrderStates.Done выводятся! 🤨
После медитации над таблицей заявок мне пришла в голову одна гипотеза: экспортируются заявки только с наличием транз. ID. Насколько она бредовая?
Нашёл. Не прошло и суток.
Читайте документацию.
на ней скоро дыры появятся
На форуме помню выкладывали шаблон стратегии на свечках. Искать лень.
Нужны "продвинутые" примеры - Algo.Strategies.