Разработчики! Вы вообще тестируете то, что создаёте? - страница 5

 
Mikalas:

Ответьте, пожалуйста на 2 простых вопроса:

1. Если сделка совершена, я должен получить сообщение TRADE_TRANSACTION_DEAL_ADD --> ORDER_STATE_STARTED или нет?

2. После сообщения, что ордер модифицируется TRADE_TRANSACTION_ORDER_UPDATE --> ORDER_STATE_REQUEST_MODIFY

я должен получить сообщение TRADE_TRANSACTION_ORDER_UPDATE --> ORDER_STATЕ_PLACED или нет?


Хотя вопрос не ко мне, но попробую ответить :)

Работа с событиями подразумевает, что ожидаемые события  могут и не наступить, например потеряться в пути, или в очереди не дождаться, да мало что может произойти (в том числе и баг терминала). Поэтому для надежной работы надо подстраховывать свою модель событий. Я, например, для особо важных событий строю лист ожидания, и контролирую его не только по связанным событиям, но и через косвенные подтверждения, что ожидаемое событие произошло.

 
Mikalas:

Артём, не хочу Вас ловить на слове, но с Вашей стороны это не

обдуманный шаг. Дело в том, что существующие ныне ошибки не

позволят Вам написать советника, по моему ТЗ.

Сейчас мой советник работает и приносит прибыль 1% в день.

Я хотел основательно модернизировать его, но из-за ошибок в

МТ-5 не получается.

И второе, какая предоплата, если тестируем за Ваш счёт с депо 5000 евро?

Я всегда выставляю свои предварительные условия. После согласия с моими предварительными условиями, читаю ТЗ, потом говорю - стоить будет меньше/стоить будет больше/выполнить не реально. После согласия обсуждаем ТЗ до мелочей. И только после полного взаимного понимания, подтверждаем готовность работать. Во время работы плотно работаем вместе с заказчиком. Всегда на связи. Продолжаем обсуждения и уточнения по каждому из "винтиков" алгоритма. Пока не будет отточен и протестирован очередной "винтик", к следующему не приступаем. Перед передачей готового решения тестирую алгоритм на наличие ошибок сам, но только лишь в тестере, и только лишь на верность алгоритма. Тестирование на счёте - только на поиски багов и только заказчиком и только за его счёт.

Я понимаю, что это разговор ни о чём. Давайте уж его прекратим.

 
Mikalas:

P/S Каким языком высогого уровня Вы владеете?

Это мы уже начали "письками меряться" ?

Отвечаю - матерщинным

 

Добрый день, Юрий!

Да, конечно, Вы правы, событие может и не прийти 1 раз, ну два и даже три.

Но они приходят, но ДРУГИЕ!

Подскажите пожалуйста, как Вы контролируете, что ордер модифицировался( без ответа сервера)?

 
artmedia70:

Это мы уже начали "письками меряться" ?

Отвечаю - матерщинным

Артём, Вы как-то извращённо понимаете вопросы!

Я просто подумал, что можно Вам предложить, написать (вместо советника)

небольшой свой терминал для Plaza II, одному тяжко будет...


 
Mikalas:

Артём, Вы как-то извращённо понимаете вопросы!

Я просто подумал, что можно Вам предложить, написать (вместо советника)

небольшой свой терминал для Plaza II, одному тяжко будет...


Извиняюсь. Неправильно понял вас. Всё-таки усталость сказывается - над сложным заказом работаю, спать мало приходится....

Спасибо за предложение. Планы у меня немного другие. Наверное всё же откажусь.

 
Yurich:

Хотя вопрос не ко мне, но попробую ответить :)

Работа с событиями подразумевает, что ожидаемые события  могут и не наступить, например потеряться в пути, или в очереди не дождаться, да мало что может произойти (в том числе и баг терминала). Поэтому для надежной работы надо подстраховывать свою модель событий. Я, например, для особо важных событий строю лист ожидания, и контролирую его не только по связанным событиям, но и через косвенные подтверждения, что ожидаемое событие произошло.

Не, не катит. Событийная модель должна быть абсолютна надежна. Если событие не дошло - значит его и не было. На ФОРТСе события должны исполняться особенно четко, т.к. изменение ордера может порождать десятки трейдов.

 

Mikalas:

И вам спасибо, но думаю, что буду

"переползать" на Plaza II. 


Не советую. Гораздо проще исправить этот баг совместно с MQ, чем одному городить новый терминал под плазу. Увязните в бесконечном исправлении глюков и написании "стандартного функционала". Говорю по собственному опыту. Частично разрабатывал один из таких самопальных комплексов на базе Stock# - результат очередной "велосипед" под специфические задачи. Уж лучше повоюйте со службой поддержки, и проще и дешевле будет. 
 
Mikalas:

Добрый день, Юрий!

Да, конечно, Вы правы, событие может и не прийти 1 раз, ну два и даже три.

Но они приходят, но ДРУГИЕ!

Тем не менее эти один, два или три раза могут случиться в самый неподходящий момент, что как раз и произошло у Вас. В Справке, кстати, это подробно освещено. И сами разработчики как раз таки и не рекомендуют свой торговый алгоритм строить на ожидании поступления одних торговых транзакций после прихода других.

Один торговый запрос, отправленный из терминала вручную или через торговые функции OrderSend()/OrderSendAsync(), может порождать на торговом сервере несколько последовательных торговых транзакций. При этом очередность поступления этих транзакций в терминал не гарантирована, поэтому нельзя свой торговый алгоритм строить на ожидании поступления одних торговых транзакций после прихода других. Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.

//--- 

Подскажите пожалуйста, как Вы контролируете, что ордер модифицировался( без ответа сервера)?

Например, сравнивать предыдущие значения с текущими. 

 
C-4:

Не, не катит. Событийная модель должна быть абсолютна надежна. Если событие не дошло - значит его и не было. На ФОРТСе события должны исполняться особенно четко, т.к. изменение ордера может порождать десятки трейдов.

Событийная модель по определению не может быть абсолютно надежна, если событие не дошло то это совсем не значит, что его не было.

 

tol64!

Да, все-равно, как они приходят(хотя, не логично, что сначала приходит событие "ордер размещён", а за ним "ордер в состоянии модификации" )

Не прав?

Если Вы внимательно посмотрите на мою картинку, то Вы увидите, что пришло сообщение "ордер частично исполнился"(их там два подряд), вместо "ордер размещён"!


P/S И не нужно "вырывать текст" и всего предложения, которое начинается так:

Зная тип торговой операции, можно принять решение об анализе текущего состояния ордеров, позиций и сделок на торговом счете.

Причина обращения: