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

Dominik Egert #:

Также попробуйте мой пример кода.

Вы просто не в курсе архитектурной особенности индикаторов - внутренний счетчик. Видимо, вам нужно прописать эту строку.

int OnInit()
{
    printf("GetTickCount: %llu", GetTickCount());


    indicator_shortname = ::MQLInfoString(MQL_PROGRAM_NAME);
    const int wnd_count  = (int)ChartGetInteger(ChartID(), CHART_WINDOWS_TOTAL);        
    for(int wndptr = NULL; (wndptr < wnd_count) && (indicator_handle == INVALID_HANDLE); wndptr++)
    {
        for(int ind_cnt = ChartIndicatorsTotal(ChartID(), wndptr) - 1; (ind_cnt >= NULL) && (indicator_handle == INVALID_HANDLE); ind_cnt--)
        { indicator_handle = (ChartIndicatorName(ChartID(), wndptr, ind_cnt) == indicator_shortname) ? ChartIndicatorGet(ChartID(), wndptr, indicator_shortname) : indicator_handle; }
        indicator_subwnd_id = (indicator_handle != INVALID_HANDLE) ? wndptr : indicator_subwnd_id;
    }
    printf("Indicator handle: %i", indicator_handle);
    IndicatorRelease(indicator_handle);
    
    return((indicator_subwnd_id != -1) ? INIT_SUCCEEDED : INIT_FAILED);
}
[Удален]
Slava # : Это было сделано специально больше 15 лет назад, чтобы предотвратить массовое исчезновение индикаторов с графиков. Индикатор остаётся на графике, но он не работает , так как не получает событий OnCalculate, OnTimer, OnChartEvent

Я могу принять эту аргументацию, но если это было сделано 15 лет назад, то почему это не было должным образом задокументировано?

I can accept the reasoning, but if it was done 15 years ago, why was it not documented properly?

fxsaber #:

b4158, порядок входных влияет на результат MathMin/MathMax.

Строка для поиска: Uluchshenie 081.

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

Fernando Carreiro #:

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

Индикатор может удалиться самостоятельно при INIT_FAILED, если сделать соответствующие записи в OnDeinit.

Нет ограничений.

A100 #:

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

Это слово не употреблялось.

[Удален]

fxsaber # : Вы просто не в курсе архитектурной особенности индикаторов - внутреннего счетчика. Видимо вам нужно написать эту строку.

You are simply not aware of the architectural feature of indicators - the internal counter. Apparently you need to write this line.

Спасибо за обходной путь, но этого можно было бы избежать, если бы MetaQuotes реализовали правильно (например , мое предложение ). Это также помогло бы, если бы они тоже правильно задокументировали.

Thank you for the work-around, but it could have been avoided if MetaQuotes had implemented properly (e.g. my proposal). It would have also have helped if they had documented correctly too.
Fernando Carreiro #:

Спасибо за обходной путь

По теме, дальше по ссылке.

Fernando Carreiro #:

Это также помогло бы, если бы они тоже правильно задокументировали.

Из Учебника.
Получение дескриптора из функции ChartIndicatorGet увеличивает внутренний счетчик использования данного индикатора. Исполняющая система терминала держит загруженными все индикаторы, чей счетчик больше нуля. Поэтому ненужный больше индикатор необходимо явно освобождать с помощью вызова IndicatorRelease. В противном случае индикатор останется работать вхолостую и потреблять ресурсы.
Учебник по MQL5: Создание прикладных программ / Работа с графиками / Управление индикаторами на графике
Учебник по MQL5: Создание прикладных программ / Работа с графиками / Управление индикаторами на графике
  • www.mql5.com
Создание прикладных программ - Программирование на MQL5 для трейдеров - Учебник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
fxsaber #:

Это слово не употреблялось.

Значит темой ошиблись:

Ошибки, баги, вопросы

A100 #:

Ошибки, баги, вопросы

Вероятность получить компетентный ответ в этой теме самая высокая на этом форуме.
[Удален]
fxsaber # : По теме , дальше по ссылке .

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

Thanks! I will have to include in my own code from now on.