Как запускать несколько стратегий через quik ? Если мне надо поправить одну, то приходиться все выключать и перезапускать после правки. 2-й quik не выход т.к. если будет 3-4 стратегии.
Есть какие то варианты, чтобы можно было остановить одну стратегию, ее поправить и перезапустить в то время как остальные продолжают работать?
Kommentare (20)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Динамическая подгрузка dll. Динамическое конфигурирование.
есть пример? не умею это делать.
Если стратегия "вживлена" в оболочку через которую запускается робот, то придется переписывать.
Механизм примерно такой: Есть dll в которой лежат классы стратегий, как вариант на каждую стратегию отдельная dll. В оболочке подгружается данная либа. Через рефлексию вытаскиваются типы(классы стратегий). Создаются и запускаются стратегии.
В итоге получается стратегию можно отлаживать отдельно(если она в отдельной dll) пока работает бот. И потом в любой момент подгрузить эту dll, создать и запустить стратегию вместе с текущей.
На codeplex лежат исходники гидры. Источники сделаны в виде плагинов - dll, которые подгружаются при запуске, затем через рефлексию берутся типы(классы) и создаются объекты.
Студия?
Студия?
нет 4.1.7 давно работает один робот, хочу 2-й алгоритм добавить не трогая 1-й.
Динамическая подгрузка это конечно хорошо, но нельзя просто так выгрузить ранее загруженную сборку, а значит нельзя и повторно ее загрузить после правки.
А кто-нибудь торгует несколько стратегий через quik? Как Вы это реализовали?
Ещё можно:
А можно просто использовать S#.Studio, где этот функционал идет из коробки.
Всем спасибо за советы. Но все это теория. А есть кто-нибудь реально торгющий несколько стратегий через quik ?
Мне еще приходит идея сделать типа шлюза, который будет подключаться к квику, а все остальные роботы будут подключаться к шлюзу, получать данные и отправлять туда заявки, но все это велосипед, который не хочется изобретать...
PS Кстати Assembly.LoadFile dll не лочит. Но повторно не загружает. Так что переименовывать-таки надо. Некоторые особенности: Assembli.LoadFrom загружает референсные библиотеки из целевой папки Assembly.LoadFile загружает референсные библиотеки из стартовой папки