Мега релиз <a href='http://stockmarketdotnet.blogspot.com/2011/03/stock-30.html' target='_blank'>Stock# 3.0</a>.
Для тех, кто пока еще не знаком с <a href='http://stocksharp.com/' target='_blank'>Stock#</a> и чем знаменательная эта версия.
<a href='http://stocksharp.com/' target='_blank'>Stock#</a> - это бесплатная платформа для программирования на C# роботов, где максимально скрыты технические детали. Трейдер, программирующий на <a href='http://stocksharp.com/' target='_blank'>Stock#</a>, сосредоточен только на ключевых моментах - самих торговых действиях. И не нужно в сотый раз спрашивать, как подключиться к Quik и как работает SmartCOM. А так же плюс в том, что код робота с минимальными изменениями можно перенести с одной платформы на другую.
Версия 3.0 теперь позволяет тестировать роботов, написанных на <a href='http://stocksharp.com/' target='_blank'>Stock#</a>. То, что раньше требовало неповоротливых и дорогих программ в виде WealthLab, NinjaTrader и т.д., теперь бесплатно.
Стратегии и алгоритмы<ol type='1'><li>Собственно, тестирование стратегий через шлюзы HistoryTestTrader, RealTimeTestTrader и EmulationTestTrader. Подробнее, <a href='http://stocksharp.com/doc/help/html/febbcf31-63d1-449d-847e-92fd8424f926.htm' target='_blank'>в документации</a>.</li><li><a href='http://stocksharp.com/doc/help/html/a720a275-440a-44ce-86e2-bcec2e0bc55f.htm' target='_blank'>Гидра</a> - программа для скачивания маркет-данных (сделки + стаканы) для последующего прогона стратегий по ним.</li><li><a href='http://stocksharp.com/doc/help/html/e4a57b52-bd14-4640-a7c7-0979dba1ad0a.htm' target='_blank'>API</a> для работы с <a href='http://stocksharp.com/doc/help/html/7a8a9518-6270-4cfe-a829-fa6c40e5fabd.htm' target='_blank'>хранилищем данных</a>. <a href='http://stocksharp.com/doc/help/html/a720a275-440a-44ce-86e2-bcec2e0bc55f.htm' target='_blank'>Гидра</a> его как раз использует. Позволяет сделки и стаканы сохранять во внутренний формат. Формат очень компактный и ориентирован как раз на маркер-данные. По сравнению с БД сжатие ~ в 15-20 раз.</li><li><a href='http://stocksharp.com/doc/help/html/T_Ecng_Trading_Algo_Strategies_StrategyManager.htm' target='_blank'>StrategyManager</a> теперь имеет методы Start, Stop, Pause и Resume.</li><li>Методы <a href='http://stocksharp.com/doc/help/html/M_Ecng_Trading_Algo_TraderHelper_IsFullEmpty_1_0c809419.htm' target='_blank'>IsFullEmpty</a> и <a href='http://stocksharp.com/doc/help/html/M_Ecng_Trading_Algo_TraderHelper_IsHalfEmpty_1_0c809419.htm' target='_blank'>IsHalfEmpty</a> для определения наполненности стакана.</li></ol>
Quik<ol type='1'><li>Сокращенная таблица инструментов. Теперь имеет всего несколько колонок. Поэтому, у Security значения BestBid и BestAsk теперь инициализируются только когда запущен экспорт стакана. Так же и с LastTrade - нужен экспорт по таблице всех сделок.</li><li>Добавил экспорт портфелей.</li><li>Код клиента в таблицах заявки и стоп-заявки.</li><li>Возможность получить <a href='http://stocksharp.com/doc/help/html/P_Ecng_Trading_Quik_QuikTerminal_Addresses.htm' target='_blank'>список адресов серверов</a>, а так же указать, на какой конкретно адрес нужно <a href='http://stocksharp.com/doc/help/html/52cb16e3-0ff0-4e82-8ad5-73a2e6e918a1.htm' target='_blank'>произвести подключение</a>.</li><li>Переделал работа с экспортом произвольных таблиц.</li></ol>
SmartCOM<ol type='1'><li><a href='http://stocksharp.com/doc/help/html/535227b6-0338-44c9-9a9b-9baf9bab10b4.htm' target='_blank'>SmartComWrapper</a>.</li><li><a href='http://stocksharp.com/doc/help/html/T_Ecng_Trading_Smart_SmartExtensionInfoHelper.htm' target='_blank'>SmartExtensionInfoHelper</a> для получения Smart-овской информации из торговых объектов.</li><li>Вагон и маленькая тележка фиксов. Стало стабильнее работать благодаря фидбекам.</li></ol>
Общее<ol type='1'><li>Добавил свойство <a href='http://stocksharp.com/doc/help/html/P_Ecng_Trading_BusinessEntities_ITrader_OrderFails.htm' target='_blank'>ITrader.OrderFails</a> для получения всех ошибочных заявок.</li><li>Класс <a href='http://stocksharp.com/doc/help/html/T_Ecng_Trading_BusinessEntities_WorkingTime.htm' target='_blank'>WorkingTime</a> для указания расписания работы.</li><li>Метод <a href='http://stocksharp.com/doc/help/html/O_T_Ecng_Trading_Algo_Candles_ICandleManager_GetLastCandle.htm' target='_blank'>ICandleManager.GetLastCandle</a> для получения текущей свечки.</li><li>Методы поиска торговых объектов по критериям переместил из ITrader в TraderHelper и называются теперь они Filter.</li><li>Появилась возможность создавать свои собственные торговые объекты через <a href='http://stocksharp.com/doc/help/html/T_Ecng_Trading_Algo_IEntityFactory.htm' target='_blank'>IEntityFactory</a>. Вместо того, чтобы писать такой код:
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>CODE </td></tr><tr><td id='CODE'><!--ec1-->var riXXX = base.Trader.Securities.First(s => s.Code == "...");
var thPrice = (double)riXXX.ExtensionInfo[DdeSecurityColumns.TheorPrice];
var thPrice = (double)riXXX.ExtensionInfo[DdeSecurityColumns.Volatility];<!--c2--></td></tr></table><span class='postcolor'><!--ec2-->
Теперь можно написать более изящно:
<!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>CODE </td></tr><tr><td id='CODE'><!--ec1-->var riXXX = (Option)base.Trader.Securities.First(s => s.Code == "...");
var thPrice = riXXX.TheorPrice;
var thPrice = riXXX.Volatility;<!--c2--></td></tr></table><span class='postcolor'><!--ec2--></li><li>Переход на формат Excel 2007 в <a href='http://stocksharp.com/doc/help/html/eeaa9b57-9108-4cbb-a9c1-e135eee35ae5.htm' target='_blank'>отчетах</a>.</li><li>Улучшенная работа <a href='http://stocksharp.com/doc/help/html/a8486498-a2d8-4924-b009-8b93138b268a.htm' target='_blank'>Unit</a>.</li></ol>
Всех исправлений и улучшений я не стал описывать, слишком уж много получилось. Но я думаю этого будет достаточно, чтобы для себя окончательно решить в пользу Stock# 3.0. Пользуйтесь!