суббота, 27 ноября 2010 г.

Stock# 2.6

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

Нововведения:
  1. Появился интерфейс ICandleSource, через который можно переопределять источник тиковых сделок. Например, когда считываются исторические сделки из файла или из базы данных. Теперь такие сделки можно автоматически комбинировать во все свечки, которые поддерживаются S# (или собственные, которые создаются с помощью CandleFactory).
  2. Добавил интерфейс ICandleManager для создания своих собственных менеджеров свечек (например, когда они вообще не создаются, а напрямую подгружаются из ранее сохраненного места).
  3. GuiTrader и GuiCandleManager перенес в Xaml сборку.
  4. Обновил документацию о дочерних стратегиях, в связи с упоминанием, а так же о стратегиях тейк-профит и стоп-лосс, как об этом говорили тут.
  5. Уменьшил время ожидания в QuikTerminal.Launch, а так же сделал это время настраиваемым.
  6. Сделал возможность изменять Strategy.Interval после регистрации стратегии.
  7. ClientCode теперь можно задавать на уровне заявки.

Исправления:
  1. Ошибка метода GetTrades Quik.
  2. Неверная свеча из CandleManager.

пятница, 12 ноября 2010 г.

Почему лучше готовое, чем свое

Прислали мне ссылку на платформу собственного изобретения. Отвечу честно приславшему, в детали не вдавался, потому что там прогресса как такового практически нет. Но сразу вспомнилась картинка (cорри за мат, но из песни слов не выкинешь):


Или роботы, или своя платформа. Я уже сам стал замечать, какое сильное влияение оказал на мое личное время S#.

четверг, 11 ноября 2010 г.

Stock# 2.5.2

Обновление версии 2.5. Исправлены следующие баги:
  1. Не вызываются события заявок и стоп заявок в синхроннмо режиме QuikTrader.
  2. Вернуть в StrategyMonitorWindow корневой уровень.
Первая ошибка критическая, поэтому рекомендуется обновиться как можно быстрее.

Список изменений:
  1. События ITrader.OrdersFailed и ITrader.StopOrdersFailed теперь передают коллекцию OrderFail.
  2. Strategy.OnProcess теперь возвращается тип StrategyProcessResults. Я уже стал сам подзабывать, в каком случае true и false что именно обозначает. Со StrategyProcessResults эта проблема отпала.
  3. Обновил список SmartCOM адресов в класса SmartAddresses в соответствии с данной новостью.
  4. Strategy.TotalWorkingTime расчитывается сразу, а не после остановки стратегии.
  5. Verifier теперь проверят и настройки DDE.

суббота, 6 ноября 2010 г.

Stock# 2.5.1

Обновление предыдущего резиза до версии 2.5.1. Исправил ошибки, о которых писали на форуме, плюс те, которые нашел сам. Параллельно добавил ряд новых фич, с которых и начну:

Нововведения:
  1. QuikTerminal теперь умеет работать с выключенным Quik-ом. Через свойство QuikTerminal.IsLaunched определяется, запущен ли процесс или пока еще нет.
  2. Добавил метод TraderHelper.Invert, который "переворачивает" направление заявки. Например, такой код:
    if (order.Direction == OrderDirections.Buy)
        return OrderDirections.Sell
    else
        return OrderDirections.Buy;
    теперь можно написать как
    return order.Direction.Invert();
  3. QuikTrader.ClientCode теперь имеет значение по умолчанию "S#", а не три икса.
  4. Добавил в отчеты вывод средневзвешенной цены заявки TraderHelper.GetAveragePrice.
  5. Отчеты теперь выводят информацию о стоп-заявках.
  6. ExcelStrategyReport выводит состояние заявки, и признал ее выполненности (снята, удовлетворена).
  7. Как верно заметил Alexander Strategy.TotalWorkingTime выводит неправильное значение. Вернее оно правильно, но означает реальное время обработки компьютером (= процессором). Я переделал это поведение, и теперь Strategy.TotalWorkingTime выводит  сумму временных отрезков между запуском и остановкой стратегии. А предыдущее вычисление теперь выводится в Strategy.TotalCPUTime.
  8. Добавил событие MarketDepth.QuoteOutOfDepth для нотификации робота о том, что необходимо расширить глубину стакана через свойство MarketDepth.MaxDepth.
  9. SmartTrader теперь обновляет Quote.Volume для Security.BestBid и Security.BestAsk, если по инструменту идет экспорт стакана. Напомню, сам SmartCOM транслирует почему-то не сами объемы для лучшего бида и оффера, а сумму объемов в стакане, что является, конечно, очень неудобным поведением.
  10. В классе QuikTerminal изменил название метода GetDdeSettingsResult на GetTableSettings.
  11. Измененный QuikTerminal.GetTableSettings теперь умеет проверять настройки стаканов, что автоматически расширило возможности Verifier.
Исправления:
  1. Strategy.NewMyTrade не вызывается, если информация о заявке пришла раньше, чем изменение стоп-заявки.
  2. StrategiesMonitorWindow. Не видно название выделенных стратегий.
  3. SharpZipLib отсутствует.
  4. Ошибка «Access is denied» для чужого Quik.
  5. Генерация отчётов (Excel) не сохраняет файл.
  6. Неправильное проскальзывание для заявки, кинутой глубоко в рынок.
  7. Неагрегированный стакан в SmartTrader приводит к ошибке.