Как запускать несколько стратегий через quik ? Если мне надо поправить одну, то приходиться все выключать и перезапускать после правки. 2-й quik не выход т.к. если будет 3-4 стратегии.
Есть какие то варианты, чтобы можно было остановить одну стратегию, ее поправить и перезапустить в то время как остальные продолжают работать?
Comments (20)
Login or Create account, Log in or register to leave a comment
Динамическая подгрузка dll. Динамическое конфигурирование.
есть пример? не умею это делать.
Если стратегия "вживлена" в оболочку через которую запускается робот, то придется переписывать.
Механизм примерно такой: Есть dll в которой лежат классы стратегий, как вариант на каждую стратегию отдельная dll. В оболочке подгружается данная либа. Через рефлексию вытаскиваются типы(классы стратегий). Создаются и запускаются стратегии.
В итоге получается стратегию можно отлаживать отдельно(если она в отдельной dll) пока работает бот. И потом в любой момент подгрузить эту dll, создать и запустить стратегию вместе с текущей.
На codeplex лежат исходники гидры. Источники сделаны в виде плагинов - dll, которые подгружаются при запуске, затем через рефлексию берутся типы(классы) и создаются объекты.
Студия?
Студия?
нет 4.1.7 давно работает один робот, хочу 2-й алгоритм добавить не трогая 1-й.
Динамическая подгрузка это конечно хорошо, но нельзя просто так выгрузить ранее загруженную сборку, а значит нельзя и повторно ее загрузить после правки.
А кто-нибудь торгует несколько стратегий через quik? Как Вы это реализовали?
Ещё можно:
А можно просто использовать S#.Studio, где этот функционал идет из коробки.
Всем спасибо за советы. Но все это теория. А есть кто-нибудь реально торгющий несколько стратегий через quik ?
Мне еще приходит идея сделать типа шлюза, который будет подключаться к квику, а все остальные роботы будут подключаться к шлюзу, получать данные и отправлять туда заявки, но все это велосипед, который не хочется изобретать...
PS Кстати Assembly.LoadFile dll не лочит. Но повторно не загружает. Так что переименовывать-таки надо. Некоторые особенности: Assembli.LoadFrom загружает референсные библиотеки из целевой папки Assembly.LoadFile загружает референсные библиотеки из стартовой папки