Ошибки, баги, вопросы - страница 3466

[Удален]  
fxsaber # : Перезагружаю терминал и получаю потерю индикатора. Вы так хотите?!

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

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

То же самое можно сделать и с индикаторами. Это не должно быть принудительным. Программист должен контролировать, как он хочет справиться с ситуацией.

Терминал должен обеспечивать одинаковое поведение как советников, так и индикаторов, как это реализовано в МТ4.

It should be up to the developer to decide how they want to handle the various cases.

Just as in EAs, one can that purposely continue execution and manage the disconnections or other situations if one wishes without termination of the EA.

The same can also be done for indicators. It should not be forced. It should be under the programmer's control of how they wish to handle the situation.

The terminal should allow the same behaviour both on EAs and Indicators, just as it is implemented in MT4.

 

Столкнулся с непонятной для меня ситуацией в плане логики, хотел уточнить, частое ли это явление.

Суть, у разных ДЦ код работы с ордерами работает корректно, и вот у одного (лицензия в РФ и название на F) непонятная ситуация, проявляется редко:

1. При нахождении цены рядом с TP получаю ошибку 10029 (Ордер или позиция заморожены) при попытке закрыть позицию по рыночной цене.

2. Получаю ошибку 10016 (Неправильные стопы в запросе) при попытке удалить отложенный ордер.

По мне так это вообще не законные действия, запрещающие закрываться по рынку и убирать отложку.

И, если с первой ситуацией я справился - ожидая, пока цена не уйдёт подальше, то со второй ситуацией - не понимаю, что делать.

Не могу понять, что не так с ценой.


Если дело опять в "Уровень стопов"(который установлен 110 в спецификации), то почему код ошибки не соответствующий ситуации?

[Удален]  
fxsaber # : Советник торгует, у него гораздо выше требования к безопасности, чем у индикатора. Это же субъективная вещь.

Более того, как обрабатывается ситуация при использовании iCustom() или ChartIndicatorAdd() , если индикатор не дает сбоя?

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

Further more, how is the situation handled when using iCustom() or ChartIndicatorAdd() if the Indicator does not fail?

How will the EA using those function know that the Indicator is invalid if it is not reported?

 
fxsaber #:


Result.

Нет разницы

void OnDeinit(int reason)
{
};
 
fxsaber #:

The advisor trades and has much higher security requirements than the indicator.

This is a subjective thing.

Я понимаю, что вы говорите. Но я все же придерживаюсь мнения, что он ведет себя не так, как надо. - Здесь я на стороне Фернандо.

 
Fernando Carreiro #:

It's up to the developer to decide how he wants to handle different situations.

Just like with EAs, you can deliberately continue execution if you wish and manage outages or other situations without terminating the EA.

The same can be done with indicators. It shouldn't be forced. The programmer must control how he wants to handle the situation.

The terminal must provide the same behavior for both advisors and indicators, as implemented in MT4.

It should be up to the developer to decide how they want to handle the various cases.

Just as in EAs, one can that purposely continue execution and manage the disconnections or other situations if one wishes without termination of the EA.

The same can also be done for indicators. It should not be forced. It should be under the programmer's control of how they wish to handle the situation.

The terminal should allow the same behaviour both on EAs and Indicators, just as it is implemented in MT4.

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

На самом деле имеет смысл держать индикатор на графике. Тем не менее, обработка возвращаемого значения должна быть последовательной. - Возможно, было бы хорошо добавить еще одну причину инициализации. Так что индикатор фактически удаляется.
 
Alexey Viktorov #:

Зато у меня были женщины с другим размером. А теперь я довольствуюсь тем что осталось со мной.

Я рад за Вас, Алексей.
Но речь, про то, что используется не одним, а многими. 
Поэтому женщина не подходит для подобной аналогии.
[Удален]  
Dominik Egert # : I understand why it is not removed, but the return value is currently just "eaten" by the terminal. It should not be. It actually makes sense to keep the indicator on the chart. However, the processing of the return value must be consistent. - Perhaps it would be good to add another reason for initialization. So the indicator is effectively removed.

Да, я могу пойти на компромисс с двумя кодами возврата (примерно так):

  • INIT_FAILED_WARNING (по умолчанию, только сообщает об этом, но остается активным)
  • INIT_FAILED_ERROR (который сообщит об этом и удалит)

Yes, I can accept a compromise with two return codes (something like this):

  • INIT_FAILED _WARNING (default, which will only report it but remain active)
  • INIT_FAILED_ERROR (which will report and remove it)
[Удален]  
Fernando Carreiro #:

Да, я могу пойти на компромисс с двумя кодами возврата (примерно так):

  • INIT_FAILED_WARNING (по умолчанию, только сообщает об этом, но остается активным)
  • INIT_FAILED_ERROR (который сообщит об этом и удалит)

Yes, I can accept a compromise with two return codes (something like this):

  • INIT_FAILED _WARNING (default, which will only report it but remain active)
  • INIT_FAILED_ERROR (which will report and remove it)

И в дальнейшем его следует последовательно применять как к индикаторам, так и к советникам, и это следует документировать.

And as a follow-up, it should be applied consistently to both Indicators and EAs, and it should be documented.
 
Fernando Carreiro #:

Это абсолютно смешно (не вы, я имею в виду MetaQuotes).

Если на МТ4 оно работает корректно, то это не фича — это явный баг. Это даже не объяснено в документации, а объясняется так, как это практикуется в реализации МТ4.

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

That is absolutely ridiculous (not you, I mean MetaQuotes).

If it works correctly on MT4, then it is not a feature — it is a blatant bug. It is not even explained in the documentation, and it is explained in the way it is practice in the MT4 implementation.

When an EA fails, it is also removed from the chart. Why would an indicator not follow the same procedure.

Это было сделано специально больше 15 лет назад, чтобы предотвратить массовое исчезновение индикаторов с графиков.

Индикатор остаётся на графике, но он не работает, так как не получает событий OnCalculate, OnTimer, OnChartEvent