Выложил новую версию. Описание будет чуть позднее. Глобальные изменения отсутствуют, так что можно качать тем, кто писал о своих ошибках. Пофиксил все, если не забыл. Только есть одна особенность. Я перешел на VS 2010 (но пока на .NET 3.5). Так что sln файла теперь два. Один для 2010, другой для 2008.
Comentários (24)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
А проблемы со стаусами пофиксили? когда приходит несколько 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 не захотел давать новость, потому что не все дофиксил.