Предложения по улучшению MetaEditor'а - страница 10

 
Yedelkin:

Я пример наглядный просил привести.

Хотите сказать, что если у индикатора 10 буферов, то на MQL4  можно с помощью одной строчки получить получить, например, позавчерашние значения седьмого индикаторного буфера?

Угу, https://docs.mql4.com/ru/indicators/icustom
iCustom - Документация на MQL4
  • docs.mql4.com
iCustom - Документация на MQL4
 
Renat:
Господа, система доступа к индикаторным буферам в MQL5 в разы эффективнее и быстрее, чем в MQL4.

Никто не говорил про эффективность, речь об удобстве.

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

Но это лишь дело привычки, если бы в 4-ке не было иначе, разговора бы не было вообще. 

 

Работа программиста в том, чтобы эффективно решать задачи, а не в том, чтобы получить в одну строчку медленное по факту, но дешевое для программиста решение. В MQL4 не было шанса получить быстрый массовый доступ к данным индикаторов, а в MQL5 такой доступ есть.

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

Если предлагается решение, которое в разы эффективнее старых методов, то это однозначно выгоднее для конечного результата. Эффективность важнее.

 

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

Ключевые слова: а) массив, б) десятый индикаторный буфер. :)

 
Renat:

Компостеру надо бы перестать глупости публиковать. По факту человек не понимает, что...

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

Если я объясняю суть позиции, которую понимаю, другому форумчанину, это не значит, что я этой позиции придерживаюсь. Более того, я специально для непонятливых уточнил, что "это лишь дело привычки", и проблемы нет вообще.

 
Yedelkin:

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

Ключевые слова: а) массив, б) десятый индикаторный буфер. :)

Вам скопировать его сюда? Вот, пожалуйста:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 - индекс буфера (10-й по счету), 2 - индекс бара.

Переменной val присваивается позавчерашнее значение 10-го индикаторного буфера.

 

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

В этом случае, ответ - нет, одной строкой массив не вернешь. Но можно написать простую функцию, которая будет этим заниматься. Правда, тогда и отличий от MQL5 практически не будет - под каждый индикатор придется писать свою функцию.

 
Я позицию Вашу вижу "одна строчка - это классно, а три - очень плохо".

На объяснения технического плана не реагируете, внутренней архитектуры обоих терминалов не знаете, стоимости вызовов не знаете, но критикуете решения тех, кто не только создал эффективные методы доступа, но и объясняет причины.
 

komposter:

Yedelkin:

komposter:

Yedelkin: Хотите сказать, что если у индикатора 10 буферов, то на MQL4  можно с помощью одной строчки получить получить, например, позавчерашние значения седьмого индикаторного буфера?

Угу... 


...Хорошо, идём дальше. Как с помощью Вашей ссылки получить одной строчкой массив позавчерашних значений десятого индикаторного буфера?

Ключевые слова: а) массив, б) десятый индикаторный буфер. :)


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

Понятно. Невнимательное прочтение моего вопроса про "позавчерашние значения" привело к неправильному ответу. Поэтому мне пришлось вместо термина "значения" использовать тавтологию типа "массив значений". В итоге правильный ответ получен, так и запишем: нет, одной строкой в MQL4 позавчерашние значения не вернешь.

komposter:

Вам скопировать его сюда? Вот, пожалуйста:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 - индекс буфера (10-й по счету), 2 - индекс бара.

Переменной val присваивается позавчерашнее значение 10-го индикаторного буфера.

Как Вы уже поняли, вопрос был про множественное число "позавчерашних значений", и при этом нигде не говорилось, что позавчерашние значения необходимо искать для PERIOD_D1 (особенно если учесть, что дневной период по определению не может содержать несколько позавчерашних значений для одного буфера). Идём дальше. Я, конечно, не спец в MQL4, но процитированную выше строчку формально нельзя считать правильной.  Ибо в ссылке, которую Вы привели, говорится о том, что "Индекс линии индикатора. Может быть от 0 до 7". Вы же почему-то, без дополнительных объяснений, приводите индекс буфера == 9.

 
komposter:
За раскрытие темы - спасибо!
 
Renat:
Я позицию Вашу вижу...

...не реагируете...не знаете...критикуете...
Ренат, найдите для диалога другое зеркало. До свидания.
Причина обращения: