Выложил новую версию. Описание будет чуть позднее. Глобальные изменения отсутствуют, так что можно качать тем, кто писал о своих ошибках. Пофиксил все, если не забыл. Только есть одна особенность. Я перешел на VS 2010 (но пока на .NET 3.5). Так что sln файла теперь два. Один для 2010, другой для 2008.
コメント (24)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
А проблемы со стаусами пофиксили? когда приходит несколько State=Done, но с разными балансами в OrderChaged?
Статусами (Status) или состояниями (State)? Пофиксил состояния.
Ну была ситуация кгода приходили подряд в OrderChaged
State = Done, Status= DOne, Balance = 10 State = Done, Status= DOne, Balance = 5
Ну и аналогично
State = Active, Status= Done, Balance = 10 State = Done, Status= NotValidated, Balance = 7 State = Done, Status= NotValidated, Balance = 0
NotValidated изза того (наверное) что в квике заявка еще активна, а на бирже выполнена и я в это время делаю CancelOrder.
Я это пропустил... Так, а какое поведение правильно? Сделки по заявкам появлялись? Именно с объемами 3 и 7?
Да, сделки шли по очереди. Я то сейчас подбил костыль, чт оесли State = Done и Status = NotValidated - то СКОРЕЕ всего была попытка снятия исполненая целиком заявку и перекрываю ее акциями исходяи из того, что она исполнена целиком. Но - а вдруг? Арбитражер у нас впирается постоянно изз этих несоответвий. Как мо моем у субъективному мнению - после записи в OrderChaged со State =Done ничег оне должно приходить. Умерла так умерла :) Да раньше вроде так и было.
То есть для верно работы нужно, чтобы после State = Done баланс не менялся. Иначе - как понять что по заявке больше баланс не будет меняться и можно пееркрывать правую часть в арбитраже?
Полностью согласен с неправильным поведением. Я как-то упустил этот момент. Надо топики разделять по багам. А то все сливается в одно и...
Ок, Ваш ворк эраунд понятен. А как фиксите случай из
http://groups.google.ru/group/stocksharp/msg/17e993e167b85eecкогда статус Done?
Думаю, у Вас обратная ситуация. Когда заявка быстрее изменяется, чем по ней сделки приходят =) Вот ДДЕ то успешно и рапортует о том, что все зер гуд, отмачено. А сделки все идут и идут... Можете трейс повесить на событие NewMyTrades и OrdersChanged. Время появления очень интересует.
А никак. Арбитражер начинает вопить - "ёпвашуматьсноваэтотроботокосячит" и перекрывает руками. а так планирую сделать что то типа отстойника таких заявок, после первого появления Done/Done туда заявку помещать и еще пару секунд ее наблюдать на предмет свежих поступлений :) Но может Вы как то проще пофиксите? ;) Трейс по сделайм ест ьв сосденм файле, еще раз вопремся
А кстати - я же уже замерял эти вещи. Действительно - сделки бывает и потом приходят.
Сделки анализируются для того, чтобы по-быстрее изменять заявку (баланс и если он равен 0, то и состояние).
Ну вот видите - получается сперва состояние, потом баланс уже. Чудесный мир паралерелизма :)
А еще квиковцы говорят что заявки имеют приоритет над сделками
http://quik.ru/forum/qpile/59478/59478/. правда это про QPILE, но наверно и под ДДЕ подходит
Судя по логу и коду, такое может быть тогда, когда заявка изменила свое состояние, а баланс еще пока не ноль... Если будете трейсить NewMyTrades и OrdersChanges, повесьтесь еще на ProcessWellknownData. чтобы точно смотреть на то, что пришло по ДДЕ.
Прочитал тред... Согласен с Максимом. Потоки - независимые. Так что и сделка может прийти раньше и заявка. Как фишка ляжет.
Воооот. из-за этого все мои мытарства с тем .что приходит несколко заявок в OrderChaged со State = Done и балансом разным.
Размер увеличился в два раза. Наверное, из-за двух солюшенов =)
А ещё 10-й солюшен не открывается даблкликом. Если его немного отредактировать, то откроется.
c:>fc d:\StockSharp.sln d:\StockSharp-new.sln Comparing files D:\StockSharp.sln and D:\STOCKSHARP-NEW.SLN ***** D:\StockSharp.sln я╗┐Microsoft Visual Studio Solution File, Format Version 11.00
Visual Studio 2010
***** D:\STOCKSHARP-NEW.SLN я╗┐ Microsoft Visual Studio Solution File, Format Version 11.00
Visual Studio 2010
Увеличиваются скомпилированные примеры. А исходники слабо изменяются в размере.
Ок, поправлю sln. Я правильно понял, что под 10-ым Вы подразумевали 2010? Потому как в 2010 студии формат sln 11 версии =)
Думаю, что размер увеличился из-за Enterprise library. Бестолковая штука, годится только для лабораторных работ.
"10-я студия" это версия студии, просто версия совпала с годом.
http://ru.wikipedia.org/wiki/Visual_Studio
Да и в абауте написано =)
EntLib мне помог в нескольких: у него есть высокоуровневая обертка на Cryptography services. У него есть мега классный ObjectBuilder. И механизм кэширование. Аналоги?
Не знаю аналогов =)
Про криптографию не представляю, чего там оборачивать -- мы подписываем Sha1, шифруем Rijndael. Всё это и так высокоуровнево, особенно, когда MS переписал Rijndael на .Net без тормозного оборачивания native-кода.
ObjectBuilder озадачит, когда вернётесь в какой-нибудь код через год.
Про механизм кэширования сильно зависит от задачи. Я ж не знаю, что вы кэшируете =) В .Net 4.0 естьhttp://msdn.microsoft.com/en-us/library/dd287191.aspx, этого обычно хватает с головой для памяти, особенно учитывая ограничения, накладываемые Quik из-за 32 битов. Этот неймспейс я ждал больше всего в четвёрке.
В целом EL библиотека очень сложная, тяжёлая и тормозная. Прелесть фреймворка, в частности .Net, в простоте. Ваш код и после обфускации простой и понятный, а с активным пользованием EL станет монстроидальным даже с исходниками на руках. Но попробовать это не мешает, конечно =)
Разница есть. Вот например с помощью EntLib (+Ecng.Cryptography) процесс шифрования выглядит следующим образом (пишу по памяти):
var publicKey = "публичный ключ".ToKey(); var privateKey = "закрытый ключ".ToKey();
var algo = CryptographyAlgorithm.Create(AlgorithmTypes.Asymmetric, publicKey, privateKey); algo.Decrupt(algo.Encrypt(data));
Если использовать голый .NET то будет код много больше.
Да, как раз вернулся через 2 года к одному классу. Забыл все сложности конфига с ObjectBuilder.
На .NET 4 перейти не могу. Причина - не все аналитические программы переведены на это FW. Если я перейду, то уже будет невозможно писать адаптеры под те прогаммы на S#.
А будет документация то? а то эвристика со состоянием заявки так и глючит :)
На это неделе будет 2.4. Это отдельная версия со своими изменениями. Но фиксов - море. Причем некоторые кардинальные. Например, событийная модель. Вот сейчас все это дело тестирую. Как закончу тест, то в паблик и новость. Под 2.3 не захотел давать новость, потому что не все дофиксил.