← Zurück

Недостаток синхронизованного шлюза GuiTrader

http://stocksharp.com/doc/ Статья: Пользовательский интерфейс (GUI)

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

Я сам раньше сохранял лог в textbox и это довольно сильно тормозило процесс работы. Сейчас пишу лог в файл, стало быстрее, но все равно хочеться добавить в скорости, избавиться от ожидания прорисовки графики.

Отсюда вопрос: как проще избавиться от GuiTrader ?

Мне приходит в голову писать лог и другие вещи в память (типа memcached), а уже другой программой читать этот memcached, выводить и сохранять лог в файлы, рисовать графику независимо от робота.

Есть более простые варианты?

War dieses Thema hilfreich?

Thema teilen

Kommentare (5)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

vlad1024
vlad1024

http://stocksharp.com/doc/ Статья: Пользовательский интерфейс (GUI)

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

Я сам раньше сохранял лог в textbox и это довольно сильно тормозило процесс работы. Сейчас пишу лог в файл, стало быстрее, но все равно хочеться добавить в скорости, избавиться от ожидания прорисовки графики.

Отсюда вопрос: как проще избавиться от GuiTrader ?

Мне приходит в голову писать лог и другие вещи в память (типа memcached), а уже другой программой читать этот memcached, выводить и сохранять лог в файлы, рисовать графику независимо от робота.

Есть более простые варианты?

Самый просто вариант, выкинуть GuiTrader и обрабатывать логику в потоке событий ITrader(надо лишь помнить что разные события могут приходить из разных потоков => нужна синхронизация). Либо вариант, который мне больше нравится, запустить робота в отдельном потоке, и пробрасывать туда необходимые события через очередь, за счет чего можно избежать синхронизации внутри стратегии при обработке различных событий.

Sergey Masyura
Sergey Masyura

http://stocksharp.com/doc/ Статья: Пользовательский интерфейс (GUI)

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

Я сам раньше сохранял лог в textbox и это довольно сильно тормозило процесс работы. Сейчас пишу лог в файл, стало быстрее, но все равно хочеться добавить в скорости, избавиться от ожидания прорисовки графики.

Отсюда вопрос: как проще избавиться от GuiTrader ?

Мне приходит в голову писать лог и другие вещи в память (типа memcached), а уже другой программой читать этот memcached, выводить и сохранять лог в файлы, рисовать графику независимо от робота.

Есть более простые варианты?

Самый просто вариант, выкинуть GuiTrader и обрабатывать логику в потоке событий ITrader(надо лишь помнить что разные события могут приходить из разных потоков => нужна синхронизация). Либо вариант, который мне больше нравится, запустить робота в отдельном потоке, и пробрасывать туда необходимые события через очередь, за счет чего можно избежать синхронизации внутри стратегии при обработке различных событий.

Для записи в файл лога - _fileLogManager.Listeners.Add(new Log4NetLogListener("log4net.xml")); UI в роботе должен быть минималистический - в моем случае список стратегий и окно сообщения для ошибок.

Alexander
Alexander

либо использовать Trader и юзать GuiAsync

Макс
Макс Autor

UI в роботе должен быть минималистический - в моем случае список стратегий и окно сообщения для ошибок. Тоже склоняюсь к такому мнению. А где Вы смотрите текущую позицию, заявки? В quik ?

Sergey Masyura
Sergey Masyura

UI в роботе должен быть минималистический - в моем случае список стратегий и окно сообщения для ошибок. Тоже склоняюсь к такому мнению. А где Вы смотрите текущую позицию, заявки? В quik ?

Список заявок лишний, особенно когда их сотни или тысячи, да даже когда десятки - если они имеют смысл при отладке стратегии, то при запуске робота они в целом без надобности. Суммарная текущая позиция по стратегии и PnL отображается в том же списке стратегий. В терминале посмотреть не получится, т.к. может крутиться десяток стратегий с пересекающимися инструментами.