Говорят РТС перешел на плаза 2, и поменял что т отам в строке
транзакции. И наш старый робот (написаный дано и не н стокшарпе) стал
лажать на тех местах где надо двинуть заявку фортсовую. вы что то об
этом знаете?
Поступила информация, что сервера М-10 и Резервный у открытия - на
Плаза2 и там есть траблы с пеермещением заявок (с транзакцией
MOVE_ORDER), а основной - на старом протоколе.
Я так и не понял, как те сообщения связаны с Вашей ошибкой. Там вполне
штатные ситуации, когда меняется формат сообщения от Квик (это надо же
было додуматься, парсить текст =) чтобы узнать кол-во) и когда заявка
уже не активна на попмент отправки транзакции. Надо писать код,
устойчивый к ошибкам. Я по этому как раз и делаю в стратегии перехват
ошибок в лог и не сразу останавливаю стратегию, а дают производному
классу "одуматься", послав true.
Это не моя софтина, просто в ней возникла такая ошибка. Причем ошибка
такого рода - при попытке перемешщения фортс выдает - Не найдена
заявка для перемещения., а сама заявка как висела активная, так и
висит.
Так ни одно перемещение не прокатывает. а вот через стокшарп
прокатило. Там люди говорят - как-то ответ изменился. тот который
через коллбек в trans2quik. вам об этом ничего не известно?
Но походу он возникает, когда я пытаюсь переместить выполенную или
снятую заявку.
в логе Status = NotValidated пишет мне. как нить можно отловить
неуспешное перемещение в асинзронном режиме? OrderFailed молчи ткак
рыба об лед.
Никаких. Единственная информация, по кторой можно хоть что то
определитть - в OrderChaged смотреть Status новой заявки - если
NotValidated - значит дело труба.
Кого? при перемещении как я понял в квике физически генерится новая
заявка.а старая снимается. и видимо если старую снять не удается -
возникает статус NitValidated
физически генерица в самой бирже. в том числе и новый объект Order в
S#. вот интересно, что приходит в OrderChanged - newOrder или oldOrder
(те объекты, что передаются в ReRegisterOrder)
Больше подробностей. ТрансИд = 0 у новой заявки, которая была создана
биржей в результате перемещения. и у нее естественно уже есть ордерИд,
но нулевой ТрансИд
18:03:51,140 - Orders new count = 1
выставляет мой робот заявку, трансИд ее - 67253
18:03:51,140 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Active, Status = Done
18:03:51,796 - Orders cnanged count = 2
18:03:51,796 - TransID = 67254, Id = 0, Vol = 1, Bal = 0, State =
Active, Status = Done
18:03:51,796 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Done, Status = Done
тут от отправил транзакцию на перемещение, ТрансИд у этой транзакции
на перемещение - 67254
18:03:51,921 - Orders cnanged count = 1
18:03:51,921 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Active, Status = Done
18:03:51,921 - Orders cnanged count = 1
18:03:51,921 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Active, Status = Done
18:03:52,421 - Orders cnanged count = 1
18:03:52,421 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Done, Status = Done
18:03:52,421 - Orders new count = 1
а вот тут БИРЖА прислала новую заявку, кторая была сформирована в
результате транзакции 67254
и я думаю так - раз ее сгенерировала биржа, то и ТрансИд будет 0.
18:03:52,421 - TransID = 0, Id = 1968291046, Vol = 1, Bal = 1, State =
Active, Status = SentToServer
18:04:04,187 - Orders cnanged count = 1
18:04:04,187 - TransID = 0, Id = 1968291046, Vol = 1, Bal = 0, State =
Done, Status = SentToServer
18:05:37,109 - Orders new count = 1
18:05:37,109 - TransID = 0, Id = 1218218312, Vol = 100, Bal = 0, State
= Done, Status = SentToServer
я пользуюсь методом в кторы не передаю новую заявку, а передаю стару,
цену и объем
А вы не таймстампы гляньте - я не успею так резко ручками :) Нет, не
ручками. Но гонял я это добро на сервере .торый щас на плаза 2. завтра
попробую на старом
Это явно ошибка Квика. Потому что сама транзакция отлывается с неким
номером, но в результате в Квик приходит заявке без номера транзакции.
Эта заявка появляется в таблице, и интерпретируется как параллельно
созданная. Пора писать в Квик о баге.
Можете сделать простой тест? Регистрация заявки и ее перерегистрация.
Я так думаю, сразу появится пустой TransID в таблице заявок. В
качестве подтверждения можете подписаться на ProcessTransaction, чтобы
увидеть текст транзакции - там она идет с неким номером. ДДЕ экспорт и
прочее для такого примера можно не включать.
на основном сервере вот лог (новая заявка с пустым ТрансИД)
Set order
Order Id = 0, TransID = 77962203, Status = None, State = SentToServer
NewOrders
Order Id = 1969350467, TransID = 77962203, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 77963500, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 77963500, Status = Active, State = Done
Order Id = 1969350467, TransID = 77962203, Status = Done, State = Done
резервный (плаза2)
Set order
Order Id = 0, TransID = 78155453, Status = None, State = SentToServer
NewOrders
Order Id = 1969355042, TransID = 78155453, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78156500, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78156500, Status = Active, State = Done
Order Id = 1969355042, TransID = 78155453, Status = Done, State = Done
Set order
Order Id = 0, TransID = 78353328, Status = None, State = SentToServer
NewOrders
Order Id = 1969362384, TransID = 78353328, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78354375, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78354375, Status = Active, State = Done
Order Id = 1969362384, TransID = 78353328, Status = Done, State = Done
Новая заявка без трансИД
резервный сервер (говорят плаза2)
Set order
Order Id = 0, TransID = 78653734, Status = None, State = SentToServer
NewOrders
Order Id = 1969374406, TransID = 78653734, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78655015, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78655015, Status = Active, State = Done
Order Id = 1969374406, TransID = 78653734, Status = Done, State = Done
И вот тут новая заявка с ТрансИД! (может я ошибаюсь и у открытия
резервный по старому, а основной плаза2)
и вдогонку лог с М-10 - на нем тоже ТрансИД сгенерился
Set order
Order Id = 0, TransID = 78765765, Status = None, State = SentToServer
NewOrders
Order Id = 1969380130, TransID = 78765765, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78766796, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78766796, Status = Active, State = Done
Order Id = 1969380130, TransID = 78765765, Status = Done, State = Done
Можно уточнить - речь идет о Strategy.OnProcess?
У меня часто при каких либо ошибках со стороны брокера стратегия
автоматически перезапускается.
А как это регулировать я не разобрался.
Насчет тестов - видите как получается? чудеса в решете - у меня
ТрансИД генерится на резервном сервере и м-10 (те что вроде на плаза),
но старый робот(не на стокшарпе) как раз на них и не работает, а
работает на основном -там, где как раз старый протокол и робот
работает
Без понятия. за что купил - за то и продаю. на основном сервере не
генерится ид в перемещеной заявке, но робот старый работает, на
резервном и м-10 - наоборот.
Дать код тестера?
Не "не генерится", а "не приходит" от сервера. Потому что
идентификатор транзакциии генерируется на клиенте. Можете посмотреть,
что отсылается в квик через событие
ну в общем нету айдишника :)
именно так - основной на старом протоколе , резервный и м-10 на плазе
(по крайне мере так саппорт открытия сказал)
а как из TransactionBuilder выдрать текст транзакции я так и не
понял :)
Да нет же . я потестил
TransactionBuilder.GetInstruction(TransactionBuilder.TransactionId) -
в программе номера генерятся , а в квике их как не было так и нет (на
основном сервере)
Т.е. чтобы стратегия не останавливалась надо небезопасные функции
обернуть в try catch (в том числе вызовы некоторых функций S#,
RegisterOrder например)
получается что наш старый робот работает на основном сервере, который,
как утверждает открытие остался на старом протоколе.
Но тесты (кторые я написал на стокшарпе) показали, что как раз на
основном сервере заявка формируется без трансИД, а на резервном - с
ТрансИД. но старый робот на резервном сервре не работает - говорит не
найдена заявка для передвижения. мистика какая то.
Насколько я вижу из ветки, квиковцы еще ничего не ответили. Если
имеется ввиду "при перемещении пары заявок UID и TRANS_ID будет
проставляться только на одной, во второй заявке эти параметры будут
пустыми. " то это не особо важно. Вернее, это как раз правильное и
ожидаемое поведением. Удивлен, что раньше было не так. Впрочем,
перемещение пару заявок S# не предумсотрено вообще. Перемещается
только одна заявка.
Смотрите, у Вас проблема то совсем тривиальна, и связана с плазой
косвенно. Не работает основной сервер на старом протоколе? Значит
брокер что-то у себя поломал при миграции. Позвоните ему - скажите о
проблеме. Предоставьте текст tri и tro. Скрин. Напишите на форум
квика. Или им на почту... Я бы действовал так. А та ветка - это
результать объединения нескольких проблем в один топик. Думаю, Вас
просто не поняли, что за проблема.
We use cookies to ensure the best experience on our website. By continuing to use our site, you agree to the use of cookies.
Comments (76)
Login or Create account, Log in or register to leave a comment
Я пока не работал с плазовым брокером. Но есть предчувствие, что плаза тут ни при чем.
Я работаю с плазовым. Всё нормально, возможно дело в том что было и у меня при переходе на 2.1 - надо использовать Cтратегии для перестановки заявок.
http://groups.google.ru/group/stocksharp/browse_thread/thread/5a31b6dff9d30e05#
Да в том роботе вообще генерится транзакция и через trans2quik отправляется
и выскакивает ошибка на перемещении.
вот что нарыл на форуме
http://quik.ru/forum/import/57225/57225/
и вот
http://quik.ru/forum/qpile/56633/56633#m56633
Поступила информация, что сервера М-10 и Резервный у открытия - на Плаза2 и там есть траблы с пеермещением заявок (с транзакцией MOVE_ORDER), а основной - на старом протоколе.
Я так и не понял, как те сообщения связаны с Вашей ошибкой. Там вполне штатные ситуации, когда меняется формат сообщения от Квик (это надо же было додуматься, парсить текст =) чтобы узнать кол-во) и когда заявка уже не активна на попмент отправки транзакции. Надо писать код, устойчивый к ошибкам. Я по этому как раз и делаю в стратегии перехват ошибок в лог и не сразу останавливаю стратегию, а дают производному классу "одуматься", послав true.
Это не моя софтина, просто в ней возникла такая ошибка. Причем ошибка такого рода - при попытке перемешщения фортс выдает - Не найдена заявка для перемещения., а сама заявка как висела активная, так и висит.
Так может это та самя ошибка, когда биржа приняла заявку, а Квик сервер ее еще не схавал?
а почему тогда именно перемещение, и именно на серверах, кторые на плаза2?
Увеличение произволительности. Стакан чаще обновляется, заявки быстрее отсылаются, ошибок больше сыпется. Прогресс, что ни говори!
Так ни одно перемещение не прокатывает. а вот через стокшарп прокатило. Там люди говорят - как-то ответ изменился. тот который через коллбек в trans2quik. вам об этом ничего не известно?
Нет, я пока на плазу не перешел. Даю шанс обкатать ее другим трейдерам.
а как в стокшарпе реализован ReRegisterOrder? в общих чертах алшоритм можете обрисовать?
Такое ощущение, что заявка генерится, но регистрируется
Режим - асинхронный. версия стокшарпа 2.1, квика 5.17
ReRegisterOrder? Ды обычно. Вот код:
TransactionBuilder transactionBuilder = oldOrder.CreateMoveTransaction(newOrder); if (this.IsAsyncMode) { this.SendAsyncTransaction(transactionBuilder);
else { this.SendSyncTransaction(newOrder, transactionBuilder, true, true);
Так я не понял. У Вас где проблема? В S# приложении или не в S#? Если первое, то на каком действии?
Да я в этом посте 2 проблемы смешал.
в стокшарпе вот трабл при перемещении возник.
Но походу он возникает, когда я пытаюсь переместить выполенную или снятую заявку. в логе Status = NotValidated пишет мне. как нить можно отловить неуспешное перемещение в асинзронном режиме? OrderFailed молчи ткак рыба об лед.
Так, а какие-нибудь ошибки получаете от Квика?
Никаких. Единственная информация, по кторой можно хоть что то определитть - в OrderChaged смотреть Status новой заявки - если NotValidated - значит дело труба.
А новая заявка приходит в OrdersChanged?
Ну да - только там и можно оперделить что перемещение не прокатило по NotValidated
А туда приходит oldOrder или newOrder?
Судя по TransactionID - новая заявка. в NewOrders ее вообще нету.
А если проверить на ссылочную эквивалентность?
Кого? при перемещении как я понял в квике физически генерится новая заявка.а старая снимается. и видимо если старую снять не удается - возникает статус NitValidated
физически генерица в самой бирже. в том числе и новый объект Order в S#. вот интересно, что приходит в OrderChanged - newOrder или oldOrder (те объекты, что передаются в ReRegisterOrder)
я вызываю Order ReRegisterOrder( Order oldOrder, double price, int volume )
в OrderChanged приходит заявка .кторая возвращается этим методом. Видимо, в случае
void ReRegisterOrder( Order oldOrder, Order newOrder )
в OrderChanged придет newOrder
Ок, понятно. У этой заявки Id чему равен?
Нулю конечно. она же NotValidated - биржа ее не приняла, ИД не присвоила.
Ок, понятно. В принципе ясно, где бага.
То, что OrderFailed не возникает?
Да, такую заявку не в OrdersChanged нужно засовывать, а OrdersFailed
А при успешном перемещении новой заявке TransID не присваивается. это нормально?
Больше подробностей. ТрансИд = 0 у новой заявки, которая была создана биржей в результате перемещения. и у нее естественно уже есть ордерИд, но нулевой ТрансИд
Так не может быть, потому что Order.TransactionId генерируется ДО отправки транзакции в Квик. Может в другом проблема?
Смотрите что происходит. вот кусок моего лога
18:03:51,140 - Orders new count = 1 выставляет мой робот заявку, трансИд ее - 67253
18:03:51,140 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1, State = Active, Status = Done 18:03:51,796 - Orders cnanged count = 2 18:03:51,796 - TransID = 67254, Id = 0, Vol = 1, Bal = 0, State = Active, Status = Done 18:03:51,796 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1, State = Done, Status = Done тут от отправил транзакцию на перемещение, ТрансИд у этой транзакции на перемещение - 67254
18:03:51,921 - Orders cnanged count = 1 18:03:51,921 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1, State = Active, Status = Done 18:03:51,921 - Orders cnanged count = 1 18:03:51,921 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1, State = Active, Status = Done 18:03:52,421 - Orders cnanged count = 1 18:03:52,421 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1, State = Done, Status = Done 18:03:52,421 - Orders new count = 1 а вот тут БИРЖА прислала новую заявку, кторая была сформирована в результате транзакции 67254 и я думаю так - раз ее сгенерировала биржа, то и ТрансИд будет 0. 18:03:52,421 - TransID = 0, Id = 1968291046, Vol = 1, Bal = 1, State = Active, Status = SentToServer 18:04:04,187 - Orders cnanged count = 1 18:04:04,187 - TransID = 0, Id = 1968291046, Vol = 1, Bal = 0, State = Done, Status = SentToServer 18:05:37,109 - Orders new count = 1 18:05:37,109 - TransID = 0, Id = 1218218312, Vol = 100, Bal = 0, State = Done, Status = SentToServer
я пользуюсь методом в кторы не передаю новую заявку, а передаю стару, цену и объем
Сейчас попробую метод , в кторы передаются новый и старый ордера
А в таблице в Квике у нее какой TransID?
Пустой.
А это точно заявка, которая была выставлена в результате перемещения? Может это так, которая ручками выставлялась из Квика?
А вы не таймстампы гляньте - я не успею так резко ручками :) Нет, не ручками. Но гонял я это добро на сервере .торый щас на плаза 2. завтра попробую на старом
Это явно ошибка Квика. Потому что сама транзакция отлывается с неким номером, но в результате в Квик приходит заявке без номера транзакции. Эта заявка появляется в таблице, и интерпретируется как параллельно созданная. Пора писать в Квик о баге.
Можете сделать простой тест? Регистрация заявки и ее перерегистрация. Я так думаю, сразу появится пустой TransID в таблице заявок. В качестве подтверждения можете подписаться на ProcessTransaction, чтобы увидеть текст транзакции - там она идет с неким номером. ДДЕ экспорт и прочее для такого примера можно не включать.
нет такого события в QuikTrader
Результаты
на основном сервере вот лог (новая заявка с пустым ТрансИД)
Set order Order Id = 0, TransID = 77962203, Status = None, State = SentToServer NewOrders Order Id = 1969350467, TransID = 77962203, Status = Active, State = Done Reregister order Order Id = 0, TransID = 77963500, Status = None, State = SentToServer OrdersChaged Order Id = 0, TransID = 77963500, Status = Active, State = Done Order Id = 1969350467, TransID = 77962203, Status = Done, State = Done
резервный (плаза2)
Set order Order Id = 0, TransID = 78155453, Status = None, State = SentToServer NewOrders Order Id = 1969355042, TransID = 78155453, Status = Active, State = Done Reregister order Order Id = 0, TransID = 78156500, Status = None, State = SentToServer OrdersChaged Order Id = 0, TransID = 78156500, Status = Active, State = Done Order Id = 1969355042, TransID = 78155453, Status = Done, State = Done
но! в новой заявке есть ТрансИД!
основной сервер
Set order Order Id = 0, TransID = 78353328, Status = None, State = SentToServer NewOrders Order Id = 1969362384, TransID = 78353328, Status = Active, State = Done Reregister order Order Id = 0, TransID = 78354375, Status = None, State = SentToServer OrdersChaged Order Id = 0, TransID = 78354375, Status = Active, State = Done Order Id = 1969362384, TransID = 78353328, Status = Done, State = Done
Новая заявка без трансИД
резервный сервер (говорят плаза2) Set order Order Id = 0, TransID = 78653734, Status = None, State = SentToServer NewOrders Order Id = 1969374406, TransID = 78653734, Status = Active, State = Done Reregister order Order Id = 0, TransID = 78655015, Status = None, State = SentToServer OrdersChaged Order Id = 0, TransID = 78655015, Status = Active, State = Done Order Id = 1969374406, TransID = 78653734, Status = Done, State = Done
И вот тут новая заявка с ТрансИД! (может я ошибаюсь и у открытия резервный по старому, а основной плаза2)
вот такие пироги
и вдогонку лог с М-10 - на нем тоже ТрансИД сгенерился
Set order Order Id = 0, TransID = 78765765, Status = None, State = SentToServer NewOrders Order Id = 1969380130, TransID = 78765765, Status = Active, State = Done Reregister order Order Id = 0, TransID = 78766796, Status = None, State = SentToServer OrdersChaged Order Id = 0, TransID = 78766796, Status = Active, State = Done Order Id = 1969380130, TransID = 78765765, Status = Done, State = Done
Можно уточнить - речь идет о Strategy.OnProcess? У меня часто при каких либо ошибках со стороны брокера стратегия автоматически перезапускается. А как это регулировать я не разобрался.
Нет, речь совершенно о другом.
Насчет тестов - видите как получается? чудеса в решете - у меня ТрансИД генерится на резервном сервере и м-10 (те что вроде на плаза), но старый робот(не на стокшарпе) как раз на них и не работает, а работает на основном -там, где как раз старый протокол и робот работает
С переходом на плазу многие почертыхаются :)
Может быть Михаил уточнит, как правильно самостоятельно обрабатывать ошибки со стороны биржи, чтобы не допускать авто перезапуск стратегии.
Тоесть, на плазовом сервере как раз и работает S#? А что случилось с обычным?
Не совсем понял, что это значит - авто перезапуск и ошибки биржи? Какие именно?
Без понятия. за что купил - за то и продаю. на основном сервере не генерится ид в перемещеной заявке, но робот старый работает, на резервном и м-10 - наоборот. Дать код тестера?
http://stocksharp.com/doc/help/html/E_Ecng_Trading_Quik_QuikTrader_FormatTransaction.htm
ну в общем нету айдишника :) именно так - основной на старом протоколе , резервный и м-10 на плазе (по крайне мере так саппорт открытия сказал) а как из TransactionBuilder выдрать текст транзакции я так и не понял :)
TransactionBuilder.GetInstruction(TransactionBuilder.TransactionId)
На основном генерятся номера транзакций нормально. что то эти черти видимо с ответом намутили.
Тоесть, на том сервере (я уж запутался, и думаю не только я), где номера не приходили в таблицу заявок, теперь стали приходить?
Да нет же . я потестил TransactionBuilder.GetInstruction(TransactionBuilder.TransactionId) - в программе номера генерятся , а в квике их как не было так и нет (на основном сервере)
Ок понятно... И такой вопрос. Это только при перемещении заявки? При регистрации заявки все приходит?
А Вы уже сказали Квику про это? Есть вероятность, что при переходе на плазу поломали старое.
Только при перемещении. Квику задавал - но они отфутболили стандартным
Дык это, скопировать две строчки транзакции. Проверить, что они приводят к баге. Отослать им три и тро файлы со скрином.
Их самому наклепать или можно откуда то перехватить? из события какого нибудь?
Вот из этого события можно попробовать вызвать через Reflection internal method для построения транзакции. Например с помощью Ecng.Reflection:
var mi = typeof(TransactionBuilder).GetMembers().where(m
=> m.ReturnType == typeof(string));
mi.invoke(builder);
Вот пример протокола с ошибкой со стороны брокера и последующим перезапуском стратегии
14:05:33.437 MS_RIU0 => Transaction: ACCOUNT=SPBFUT00129; CLIENT_CODE=XXX; TYPE=L; TRANS_ID=55198437; CLASSCODE=SPBFUT; SECCODE=RIU0; ACTION=NEW_ORDER; OPERATION=B; QUANTITY=1; PRICE=144960; 14:05:33.640 MS_RIU0 => System.ArgumentException: Транзакции 'ACCOUNT=SPBFUT00129; CLIENT_CODE=XXX; TYPE=L; TRANS_ID=55198437; CLASSCODE=SPBFUT; SECCODE=RIU0; ACTION=NEW_ORDER; OPERATION=B; QUANTITY=1; PRICE=144960; не была зарегистрирована. Причина '[FORTS] Нехватка средств по брокерской фирме.'. Parameter name: transactionTxt at . (String , OrderStatus& , UInt32& , Double& , String& ) at Ecng.Trading.Quik.QuikTrader. (Order , TransactionBuilder , Boolean , Boolean ) at Ecng.Trading.Quik.QuikTrader.RegisterOrder(Order order) at Ecng.Trading.Algo.Strategy.RegisterOrder(Order order) at My1.MyStrategy.OnProcess() in D:\My1\My1Strategy.cs:line 425 at Ecng.Trading.Algo.Strategy. () 14:05:33.640 MS_RIU0 => MS_RIU0 останавливается. 14:05:34.187 MS_RIU0 => MS_RIU0 остановлена. 14:06:07.296 MS_RIU0 => OnRunning() 14:06:07.296 MS_RIU0 => MS_RIU0 запущена.
А в чем смысле в перезапуске, если средств недостаточно (заблокированы)?
Так в том то и дело, что я умышленно её не перезапускаю (Stop() вызывается только по кнопке) Не понял это поведение библиотеки, поэтому и спрашиваю :(
Я понял. Стратегия останавливается и в случае ошибки. Отсюда и вопрос
А понял. Сорри - сразу не догнал.
Думаю, у Вас где в основном коде (OnProcess Вашей стратегии) идет пересоздание стратегии.
Т.е. чтобы стратегия не останавливалась надо небезопасные функции обернуть в try catch (в том числе вызовы некоторых функций S#, RegisterOrder например)
Подождите, Вы меня запутали. Какой результат Вы ожидаете - чтобы стратегия останавливалась или не останавливалась?
Вот что мне ответили квики
http://quik.ru/forum/import/58076/58076/
я теперь вообще перестал что либо понимать
получается что наш старый робот работает на основном сервере, который, как утверждает открытие остался на старом протоколе. Но тесты (кторые я написал на стокшарпе) показали, что как раз на основном сервере заявка формируется без трансИД, а на резервном - с ТрансИД. но старый робот на резервном сервре не работает - говорит не найдена заявка для передвижения. мистика какая то.
Насколько я вижу из ветки, квиковцы еще ничего не ответили. Если имеется ввиду "при перемещении пары заявок UID и TRANS_ID будет проставляться только на одной, во второй заявке эти параметры будут пустыми. " то это не особо важно. Вернее, это как раз правильное и ожидаемое поведением. Удивлен, что раньше было не так. Впрочем, перемещение пару заявок S# не предумсотрено вообще. Перемещается только одна заявка.
Смотрите, у Вас проблема то совсем тривиальна, и связана с плазой косвенно. Не работает основной сервер на старом протоколе? Значит брокер что-то у себя поломал при миграции. Позвоните ему - скажите о проблеме. Предоставьте текст tri и tro. Скрин. Напишите на форум квика. Или им на почту... Я бы действовал так. А та ветка - это результать объединения нескольких проблем в один топик. Думаю, Вас просто не поняли, что за проблема.