← Zurück

Stock# 2.3

Выложил новую версию. Описание будет чуть позднее. Глобальные изменения отсутствуют, так что можно качать тем, кто писал о своих ошибках. Пофиксил все, если не забыл. Только есть одна особенность. Я перешел на VS 2010 (но пока на .NET 3.5). Так что sln файла теперь два. Один для 2010, другой для 2008.

Kommentare (24)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Tauler
Tauler

А проблемы со стаусами пофиксили? когда приходит несколько State=Done, но с разными балансами в OrderChaged?

Mikhail Sukhov
Mikhail Sukhov Autor

Статусами (Status) или состояниями (State)? Пофиксил состояния.

Tauler
Tauler

Ну была ситуация кгода приходили подряд в OrderChaged

State = Done, Status= DOne, Balance = 10 State = Done, Status= DOne, Balance = 5

Tauler
Tauler

Ну и аналогично

State = Active, Status= Done, Balance = 10 State = Done, Status= NotValidated, Balance = 7 State = Done, Status= NotValidated, Balance = 0

NotValidated изза того (наверное) что в квике заявка еще активна, а на бирже выполнена и я в это время делаю CancelOrder.

Mikhail Sukhov
Mikhail Sukhov Autor

Я это пропустил... Так, а какое поведение правильно? Сделки по заявкам появлялись? Именно с объемами 3 и 7?

Tauler
Tauler

Да, сделки шли по очереди. Я то сейчас подбил костыль, чт оесли State = Done и Status = NotValidated - то СКОРЕЕ всего была попытка снятия исполненая целиком заявку и перекрываю ее акциями исходяи из того, что она исполнена целиком. Но - а вдруг? Арбитражер у нас впирается постоянно изз этих несоответвий. Как мо моем у субъективному мнению - после записи в OrderChaged со State =Done ничег оне должно приходить. Умерла так умерла :) Да раньше вроде так и было.

Tauler
Tauler

То есть для верно работы нужно, чтобы после State = Done баланс не менялся. Иначе - как понять что по заявке больше баланс не будет меняться и можно пееркрывать правую часть в арбитраже?

Mikhail Sukhov
Mikhail Sukhov Autor

Полностью согласен с неправильным поведением. Я как-то упустил этот момент. Надо топики разделять по багам. А то все сливается в одно и...

Ок, Ваш ворк эраунд понятен. А как фиксите случай из

http://groups.google.ru/group/stocksharp/msg/17e993e167b85eecкогда статус Done?

Думаю, у Вас обратная ситуация. Когда заявка быстрее изменяется, чем по ней сделки приходят =) Вот ДДЕ то успешно и рапортует о том, что все зер гуд, отмачено. А сделки все идут и идут... Можете трейс повесить на событие NewMyTrades и OrdersChanged. Время появления очень интересует.

Tauler
Tauler

А никак. Арбитражер начинает вопить - "ёпвашуматьсноваэтотроботокосячит" и перекрывает руками. а так планирую сделать что то типа отстойника таких заявок, после первого появления Done/Done туда заявку помещать и еще пару секунд ее наблюдать на предмет свежих поступлений :) Но может Вы как то проще пофиксите? ;) Трейс по сделайм ест ьв сосденм файле, еще раз вопремся

  • посмотрю оба. а разве ДДЕ в топике заявок не выбрасывают инфу как о статусе, так и о балансе?Зачем вообще сделки анализировать?
Tauler
Tauler

А кстати - я же уже замерял эти вещи. Действительно - сделки бывает и потом приходят.

Mikhail Sukhov
Mikhail Sukhov Autor

Сделки анализируются для того, чтобы по-быстрее изменять заявку (баланс и если он равен 0, то и состояние).

Tauler
Tauler

Ну вот видите - получается сперва состояние, потом баланс уже. Чудесный мир паралерелизма :)

Tauler
Tauler

А еще квиковцы говорят что заявки имеют приоритет над сделками

http://quik.ru/forum/qpile/59478/59478/. правда это про QPILE, но наверно и под ДДЕ подходит

Mikhail Sukhov
Mikhail Sukhov Autor

Судя по логу и коду, такое может быть тогда, когда заявка изменила свое состояние, а баланс еще пока не ноль... Если будете трейсить NewMyTrades и OrdersChanges, повесьтесь еще на ProcessWellknownData. чтобы точно смотреть на то, что пришло по ДДЕ.

Mikhail Sukhov
Mikhail Sukhov Autor

Прочитал тред... Согласен с Максимом. Потоки - независимые. Так что и сделка может прийти раньше и заявка. Как фишка ляжет.

Tauler
Tauler

Воооот. из-за этого все мои мытарства с тем .что приходит несколко заявок в 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


Mikhail Sukhov
Mikhail Sukhov Autor

Увеличиваются скомпилированные примеры. А исходники слабо изменяются в размере.

Ок, поправлю sln. Я правильно понял, что под 10-ым Вы подразумевали 2010? Потому как в 2010 студии формат sln 11 версии =)

Иванов Андрей
Иванов Андрей

Думаю, что размер увеличился из-за Enterprise library. Бестолковая штука, годится только для лабораторных работ.

"10-я студия" это версия студии, просто версия совпала с годом.

http://ru.wikipedia.org/wiki/Visual_Studio

Да и в абауте написано =)

Mikhail Sukhov
Mikhail Sukhov Autor

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 станет монстроидальным даже с исходниками на руках. Но попробовать это не мешает, конечно =)

Mikhail Sukhov
Mikhail Sukhov Autor

Разница есть. Вот например с помощью 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#.

Tauler
Tauler

А будет документация то? а то эвристика со состоянием заявки так и глючит :)

Mikhail Sukhov
Mikhail Sukhov Autor

На это неделе будет 2.4. Это отдельная версия со своими изменениями. Но фиксов - море. Причем некоторые кардинальные. Например, событийная модель. Вот сейчас все это дело тестирую. Как закончу тест, то в паблик и новость. Под 2.3 не захотел давать новость, потому что не все дофиксил.