Plaza2
Atom Ответить
21.07.2010


Говорят РТС перешел на плаза 2, и поменял что т отам в строке
транзакции. И наш старый робот (написаный дано и не н стокшарпе) стал
лажать на тех местах где надо двинуть заявку фортсовую. вы что то об
этом знаете?

Теги:


Спасибо:




76 Ответов
< 1 2 3 4  >
Tauler

Фотография
Дата: 23.07.2010
Ответить


Нет, речь совершенно о другом.

Насчет тестов - видите как получается? чудеса в решете - у меня
ТрансИД генерится на резервном сервере и м-10 (те что вроде на плаза),
но старый робот(не на стокшарпе) как раз на них и не работает, а
работает на основном -там, где как раз старый протокол и робот
работает

Автор топика
Спасибо:

artemox

Фотография
Дата: 23.07.2010
Ответить


С переходом на плазу многие почертыхаются :)

Может быть Михаил уточнит, как правильно самостоятельно обрабатывать
ошибки со стороны биржи, чтобы не допускать авто перезапуск стратегии.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Тоесть, на плазовом сервере как раз и работает S#? А что случилось с
обычным?

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Не совсем понял, что это значит - авто перезапуск и ошибки биржи?
Какие именно?

Спасибо:

Tauler

Фотография
Дата: 23.07.2010
Ответить


Без понятия. за что купил - за то и продаю. на основном сервере не
генерится ид в перемещеной заявке, но робот старый работает, на
резервном и м-10 - наоборот.
Дать код тестера?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


1. Не "не генерится", а "не приходит" от сервера. Потому что
идентификатор транзакциии генерируется на клиенте. Можете посмотреть,
что отсылается в квик через событие

https://stocksharp.ru/doc/help/html/E_Ecng_Trading_Quik_QuikTrader_FormatTransaction.htm

2. Основной не на плазе?
3. m-10 и резервный - на плазе? В чем их отличие?

Спасибо:

Tauler

Фотография
Дата: 23.07.2010
Ответить


ну в общем нету айдишника :)
именно так - основной на старом протоколе , резервный и м-10 на плазе
(по крайне мере так саппорт открытия сказал)
а как из TransactionBuilder выдрать текст транзакции я так и не
понял :)

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


TransactionBuilder.GetInstruction(TransactionBuilder.TransactionId)

Спасибо:

Tauler

Фотография
Дата: 23.07.2010
Ответить


На основном генерятся номера транзакций нормально. что то эти черти
видимо с ответом намутили.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Тоесть, на том сервере (я уж запутался, и думаю не только я), где
номера не приходили в таблицу заявок, теперь стали приходить?

Спасибо:

Tauler

Фотография
Дата: 23.07.2010
Ответить


Да нет же . я потестил
TransactionBuilder.GetInstruction(TransactionBuilder.TransactionId) -
в программе номера генерятся , а в квике их как не было так и нет (на
основном сервере)

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Ок понятно... И такой вопрос. Это только при перемещении заявки? При
регистрации заявки все приходит?

А Вы уже сказали Квику про это? Есть вероятность, что при переходе на
плазу поломали старое.

Спасибо:

Tauler

Фотография
Дата: 23.07.2010
Ответить


Только при перемещении. Квику задавал - но они отфутболили стандартным
- давай журнал транзакций, ответов на транзакции и скрин. а где я им
журнал фозьму -я же не через три и тро файлы работаю

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Дык это, скопировать две строчки транзакции. Проверить, что они
приводят к баге. Отослать им три и тро файлы со скрином.

Спасибо:

Tauler

Фотография
Дата: 23.07.2010
Ответить


Их самому наклепать или можно откуда то перехватить? из события какого
нибудь?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Вот из этого события можно попробовать вызвать через Reflection
internal method для построения транзакции. Например с помощью
Ecng.Reflection:

var mi = typeof(TransactionBuilder).GetMembers<MethodInfo>().where(m
=> m.ReturnType == typeof(string));
mi.invoke(builder);

Спасибо:

artemox

Фотография
Дата: 23.07.2010
Ответить


Вот пример протокола с ошибкой со стороны брокера и последующим
перезапуском стратегии

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 запущена.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


А в чем смысле в перезапуске, если средств недостаточно
(заблокированы)?

Спасибо:

artemox

Фотография
Дата: 23.07.2010
Ответить


Так в том то и дело, что я умышленно её не перезапускаю (Stop()
вызывается только по кнопке)
Не понял это поведение библиотеки, поэтому и спрашиваю :(

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


А понял. Сорри - сразу не догнал.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Думаю, у Вас где в основном коде (OnProcess Вашей стратегии) идет
пересоздание стратегии.

Спасибо:

artemox

Фотография
Дата: 23.07.2010
Ответить


Т.е. чтобы стратегия не останавливалась надо небезопасные функции
обернуть в try catch (в том числе вызовы некоторых функций S#,
RegisterOrder например)

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 23.07.2010
Ответить


Подождите, Вы меня запутали. Какой результат Вы ожидаете - чтобы
стратегия останавливалась или не останавливалась?

Спасибо:

Tauler

Фотография
Дата: 26.07.2010
Ответить


Вот что мне ответили квики

http://quik.ru/forum/import/58076/58076/


я теперь вообще перестал что либо понимать

получается что наш старый робот работает на основном сервере, который,
как утверждает открытие остался на старом протоколе.
Но тесты (кторые я написал на стокшарпе) показали, что как раз на
основном сервере заявка формируется без трансИД, а на резервном - с
ТрансИД. но старый робот на резервном сервре не работает - говорит не
найдена заявка для передвижения. мистика какая то.
Автор топика
Спасибо:
< 1 2 3 4  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy