Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 186

 
Artyom Trishkin:
 Номер1
2
3
4
5
6
7
8
9
10
 Индекс0
1
2
3
4
5
6
7
8
9

Как видите - ордеров десять, но их индексы на 1 меньше, так как в любом массиве счёт начинается с нуля.

OrdersTotal() равен 10, но если начнёте цикл с OrdersTotal(), то будет вылет за пределы массива - индекса ордера 10 нету - самый большой индекс 9 - поэтому OrdersTotal()-1


Спасибо ... понял ... благодарствую.
 
Vitalie Postolache:

Потому, что в счёт ведётся с 0. Если у вас 10 ордеров, то считать порядковые номера следует 0..9, то есть 0..(10-1), где OrdersTotal()=10.

Просто помните об этом, когда пишете программы.


Спасибо ... понял ...
 
Vitaly Muzichenko:
сделайте печать через Print(), и не будет вот таких вопросов, это не сложно

Спасибо ... понял ... я просто думал, что количество OrdersTotal тоже с учётом нуля ... значит ошибался, я писал так (int i=OrdersTotal(); i>-1; i--) и у меня не работало как надо.


 
Здравствуйте!
В документации, в статье "Стили индикаторов в примерах", написано :
По умолчанию индикаторный буфер используется для хранения данных, предназначенных для отрисовки (INDICATOR_DATA).

Если для расчетов значений индикатора требуется проводить промежуточные вычисления и хранить для каждого бара вспомогательное значение, то при связывании такой массив можно объявить в качестве расчетного буфера ( INDICATOR_CALCULATIONS).

Ни в одном из 18 приведённых примеров построений в языке MQL5, нет ни одного демонстрирующего массив расчетного буфера ( INDICATOR_CALCULATIONS).
Подскажите пожалуйста, где ещё можно почитать на эту тему ?
 
Leo59:
Здравствуйте!
В документации, в статье "Стили индикаторов в примерах", написано :
По умолчанию индикаторный буфер используется для хранения данных, предназначенных для отрисовки (INDICATOR_DATA).

Если для расчетов значений индикатора требуется проводить промежуточные вычисления и хранить для каждого бара вспомогательное значение, то при связывании такой массив можно объявить в качестве расчетного буфера ( INDICATOR_CALCULATIONS).

Ни в одном из 18 приведённых примеров построений в языке MQL5, нет ни одного демонстрирующего массив расчетного буфера ( INDICATOR_CALCULATIONS).
Подскажите пожалуйста, где ещё можно почитать на эту тему ?
Считайте его обычным динамическим массивом для хранения данных промежуточных расчётов. Просто вам не нужно самому его контролировать и увеличивать/уменьшать его размер - за вас это будет делать терминал. Данные такого массива-буфера не будут выводиться на график - вот и вся разница между DATA и CALCULATIONS
 
Artyom Trishkin:
Считайте его обычным динамическим массивом для хранения данных промежуточных расчётов. Просто вам не нужно самому его контролировать и увеличивать/уменьшать его размер - за вас это будет делать терминал. Данные такого массива-буфера не будут выводиться на график - вот и вся разница между DATA и CALCULATIONS
А где пример работающего кода, для наглядности посмотреть ?
 
Artyom Trishkin:
Считайте его обычным динамическим массивом для хранения данных промежуточных расчётов. Просто вам не нужно самому его контролировать и увеличивать/уменьшать его размер - за вас это будет делать терминал. Данные такого массива-буфера не будут выводиться на график - вот и вся разница между DATA и CALCULATIONS
Если индикатор #property   indicator_chart_window - то, верно, не выводится. А вот если индикатор #property   indicator_separate_window - то, почему-то выводится.
 
Leo59:
А где пример работающего кода, для наглядности посмотреть ?
DemoBufferPattern
DemoBufferPattern
  • голосов: 21
  • 2010.03.24
  • Loong
  • www.mql5.com
Пример использования нескольких индикаторных буферов(Candles+Fractals+ZigzagColor+ColorMaLine).
 
Artyom Trishkin:
Спасибо!
 
Artyom Trishkin:
Артём, пожалуйста, РАБОТАЮЩИЙ пример кода нужен!!!!

А то, что Вы дали.... Например 87 строка :    maHandle=iMA(Symbol(),0,ExtPeriod,0,MODE_EMA,PRICE_CLOSE);
Ну, в какие это ворота лезет ?
Причина обращения: