http://stocksharp.com/doc/ Статья: Пользовательский интерфейс (GUI)
Как резюме, такое решение стоит использовать только в начале разработки роботов, когда еще нет достаточного опыта по написанию автономным торговых программ с графическим интерфейсом.
Я сам раньше сохранял лог в textbox и это довольно сильно тормозило процесс работы. Сейчас пишу лог в файл, стало быстрее, но все равно хочеться добавить в скорости, избавиться от ожидания прорисовки графики.
Отсюда вопрос: как проще избавиться от GuiTrader ?
Мне приходит в голову писать лог и другие вещи в память (типа memcached), а уже другой программой читать этот memcached, выводить и сохранять лог в файлы, рисовать графику независимо от робота.
Есть более простые варианты?
Самый просто вариант, выкинуть GuiTrader и обрабатывать логику в потоке событий ITrader(надо лишь помнить что разные события могут приходить из разных потоков => нужна синхронизация). Либо вариант, который мне больше нравится, запустить робота в отдельном потоке, и пробрасывать туда необходимые события через очередь, за счет чего можно избежать синхронизации внутри стратегии при обработке различных событий.
Для записи в файл лога - _fileLogManager.Listeners.Add(new Log4NetLogListener("log4net.xml"));
UI в роботе должен быть минималистический - в моем случае список стратегий и окно сообщения для ошибок.