Неприятное поведение тестера в 207-м билде - страница 2

 
bstone:


Универсальная функция модификации ордера мне действительно не нужна, спасибо. И если бы вы читали мои посты, то поняли бы это раньше. Я же не спрашивал, как избавиться от этой ошибки - я поставил вопрос в плане обратной совместимости. Почему раньше такое поведение экспертов было нормой, а теперь резко стало ошибкой?

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

А мне такое поведение тестера помогло найти ошибку в логике, которая приводила к лишним попыткам модификации.

 
bstone писал (а):

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

Будьте гибче. Меняются условия, меняйтесь и Вы, меняйте и свои коды. Я в свои коды уже давно вставляю все необходимые проверки. Даже, пожалуй, больше,чем реально необходимо. И исхожу в первую очередь из нежелания лишний раз тревожить дилера, чтобы не привлекать к себе внимания.
 
Renat:

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

Это очень хорошо. Я тоже считаю, что такая диагностика помогает, но здесь я вел речь конкретно об ошибке ERR_NO_RESULT. Ладно, с этим ясно - придется вносить изменения.

Но продолжая тему о повышении качества кода трейдеров... Я предлагаю повысить информативность новых диагностических сообщений в тестере следующим образом:

  • Для всех сообщений: помимо кода ошибки выводить ее полное текстовое описание - это позволит быстрее разбираться в сути проблемы
  • Для ошибок ERR_INVALID_PRICE и ERR_INVALID_STOPS: указывать конкретный ошибочный параметр и причину, по которой он был признан ошибочным. На данный момент ошибка ERR_INVALID_STOPS является слишком общей, что затрудняет ее диагностику. Например, она может быть вызвана как ненормализованностью ценового аргумента, так и его слишком близким расположением относительно рынка, а также относительно цены открытия. Было бы гораздо полезней видеть в логе вместо:

    OrderModify error 130
    сообщение, наподобие одного из таких:

    OrderModify error 130 - invalid opening price: too close to market (requested 1. 3880, bid: 1.3881)
    OrderModify error 130 - invalid stop loss: too close to market (requested 1.3885, ask: 1.3884)
    OrderModify error 130 - invalid take profit: too close to opening price (requested: 1.3880, open: 1.3878)
    OrderSend error 129 - invalid opening price: non-normalized value (requested: 1. 3882343222)
    OrderModify error 130 - invalid take profit: non-normalized value (requested: 1. 388043241)

Думаю, понятно, что я имел в виду. Обратите внимание на варианты с bid и ask - тестер должен указывать соответствующую цену, в зависимости от типа ошибочного ордера.

Вот это будет реально полезной информацией, особенно для начинающих. В текущем виде она очень не информативна.

 
KimIV писал (а):

chv, не обращайте внимания на эти слова. Я, как программист, сразу понял, что Вы хотели сказать и чем помочь. А если bstone этого не понял, так это его проблемы. Я сначала хотел выложить свою универсальную функция модификации ордера со всеми необходимыми проверками, но передумал. Она bstone не нужна.

Спасибо, Игорь. А тот код - AS IS, NO WARRANTY, как в MS EULA :)
Это идея, а не готовое блюдо, кому что нужно, сам добавит. "Настоящий программист" обнаружит в логе по-прежнему лишние вызовы OrderModify на первом же тесте и нормализует double или введёт шаг в пипсах и сравнение разницы. Я никогда не давал никаких гарантий, что мой код можно вставлять без изменений в свои эксперты. Мозги должны работать самостоятельно.