Ещё такой вопрос, если у меня индикатор в цикле перебирается, то мне надо так же ставить double MA[1]; или больший размер массива лучше сразу запросить/получить? Я просто вообще не понимаю, зачем эти сложности нужны - в чем там преимущество по сравнению с MQL4.
Мой пример с функцией iMAGet - это пример заточенный для получения с индикатора одного значения за один раз. Если нужно получить с индикатора сразу несколько значения подряд - Вам нужно использовать CopyBuffer с параметрами "от" и "до" и сохранением результата в массив.
Добавлено: позже будет пример ...
Обещанный пример.
Входные параметры:
get values into an array - если значение "true" - значит используем получение значения индикатора в массив, если "false" - значит получаем по одному значению за раз
count -> only if "get values into an array"==true - количество баров копируемых в массив
start position -> only if "get values into an array"==true - номер начального элемента (бара) начиная с которого будет копировать в масив
Работа с массивом и индикатором Moving Avegarege в советнике:
Обратите внимание, на массив arr_ma и значения элементов с индексом #0 и с индексом #8.
Мой пример с функцией iMAGet - это пример заточенный для получения с индикатора одного значения за один раз. Если нужно получить с индикатора сразу несколько значения подряд - Вам нужно использовать CopyBuffer с параметрами "от" и "до" и сохранением результата в массив.
Добавлено: позже будет пример ...
Обещанный пример.
Входные параметры:
get values into an array - если значение "true" - значит используем получение значения индикатора в массив, если "false" - значит получаем по одному значению за раз
count -> only if "get values into an array"==true - количество баров копируемых в массив
start position -> only if "get values into an array"==true - номер начального элемента (бара) начиная с которого будет копировать в масив
Работа с массивом и индикатором Moving Avegarege в советнике:
Обратите внимание, на массив arr_ma и значения элементов с индексом #0 и с индексом #8.
ds
Спасибо за пример!
Для меня очень важным является понять, есть ли преимущество при запрашивании одного значения индикатора и копированием десятка значений индикатора - может были какие исследования на этот счет?
То, что тайм серия получилась перевернутой - это не есть хорошо - я привык к стандарту нумерации баров 0123 , а тут получается в обратном порядке 1230.
Если я не знаю, какое количество баров мне будет нужно при переборе (к примеру ищем точку пересечения МА и бара), то надо запрашивать максимально возможное число? Это как то влияет на производительность?
Для меня очень важным является понять, есть ли преимущество при запрашивании одного значения индикатора и копированием десятка значений индикатора - может были какие исследования на этот счет?
...
А кто нам мешает самим такое исследование провести :) ?
...
То, что тайм серия получилась перевернутой - это не есть хорошо - я привык к стандарту нумерации баров 0123 , а тут получается в обратном порядке 1230.
...
Нужно всё го лишь после получения массива (после обращения к iMAGetArray) выполнить ArraySetAsSeries('наш массив',true).
...
Если я не знаю, какое количество баров мне будет нужно при переборе (к примеру ищем точку пересечения МА и бара), то надо запрашивать максимально возможное число? Это как то влияет на производительность?
В таких случаях лучше делать несколько запросов. Например первый запрос - 50 элементов, если нужно - второй запрос (снова 50 элементов) ...
А кто нам мешает самим такое исследование провести :) ?
Мне мешает моя безграмотность в MQL5 - могу ввести всех в заблуждение из-за ошибки в коде, а вот Ваш профессионализм внушал бы большее доверие к подобным исследованиям!
Vladimir Karputov:
Нужно всё го лишь после получения массива (после обращения к iMAGetArray) выполнить ArraySetAsSeries('наш массив',true).
Т.е. сделать это в функции сразу?
Vladimir Karputov:
В таких случаях лучше делать несколько запросов. Например первый запрос - 50 элементов, если нужно - второй запрос (снова 50 элементов) ...
Брр... т.е. вкладывать цикл в цикл? А почему 50, а не 100? Всё ж таки исследования на эту тему необходимы, а то может смысл в получении информации больше чем об одном баре отсутствует...
Нужно всё го лишь после получения массива (после обращения к iMAGetArray) выполнить ArraySetAsSeries('наш массив',true).
-Aleks-:
...
Брр... т.е. вкладывать цикл в цикл? А почему 50, а не 100? Всё ж таки исследования на эту тему необходимы, а то может смысл в получении информации больше чем об одном баре отсутствует...
Никаких вложенных циклов - будет всего один цикл обхода всех значений: вся обработка идёт последовательно - поиск результата в отдельной функции (в ней запрашиваем какое-то определённое значение - например 50 значений). Если результат не найдем - делаем новый запрос.
Работа с индикаторами в MQL5 после MQL4 ужасна! Меня реально тошнит.
Я не понимаю, почему нельзя всё скомпоновать в одну функцию, в том числе хэндл, а не размазывать вызов индикатора по всему коду!?
А если настройки индикатора меняет функция, в которой находиться индикатор - то вообще не понимаю как быть!?!? Мне что, все варианты индикаторов надо инициировать?
вот пример на MQL4 - как это сделать на MQL5 ?
int BarPeresek_iMAf(int PeriodMA)
{
int TFT=0;
int shiftMAT=0;
int typeMAT=0;
int priceMAT=0;
int BarPeresek=0;
if(Bars(Symbol(),0)>PeriodMA)
{
for(int X=1;X<1000; X++)
{
double MAT=NormalizeDouble(iMA(Symbol(),TFT,PeriodMA,shiftMAT,typeMAT,priceMAT,X),Digits());
if((Low(X)>MAT && High(X)>MAT) ||
(Low(X)<MAT && High(X)<MAT))BarPeresek++;
else {BarPeresek++; break;}
}
}
return BarPeresek;
}
Показывать сделки на графике в режиме реального времени — при включении данной опции все сделки, совершаемые трейдером, будут автоматически отмечаться на графике соответствующего символа иконками (сделка на покупку) и (сделка на продажу). При наведении курсора мыши на такой значок будет показана всплывающая подсказка с информацией о сделке: тикет, тип сделки, объем, символ, цена открытия и цена в точке курсора.
Программно всегда можно убрать, так как это графические объекты Arrow и TrandLine.
Показывать сделки на графике в режиме реального времени — при включении данной опции все сделки, совершаемые трейдером, будут автоматически отмечаться на графике соответствующего символа иконками (сделка на покупку) и (сделка на продажу). При наведении курсора мыши на такой значок будет показана всплывающая подсказка с информацией о сделке: тикет, тип сделки, объем, символ, цена открытия и цена в точке курсора.
Программно всегда можно убрать, так как это графические объекты Arrow и TrandLine.
Ещё такой вопрос, если у меня индикатор в цикле перебирается, то мне надо так же ставить double MA[1]; или больший размер массива лучше сразу запросить/получить? Я просто вообще не понимаю, зачем эти сложности нужны - в чем там преимущество по сравнению с MQL4.Мой пример с функцией iMAGet - это пример заточенный для получения с индикатора одного значения за один раз. Если нужно получить с индикатора сразу несколько значения подряд - Вам нужно использовать CopyBuffer с параметрами "от" и "до" и сохранением результата в массив.
Добавлено: позже будет пример ...
Обещанный пример.
Входные параметры:
Работа с массивом и индикатором Moving Avegarege в советнике:
Обратите внимание, на массив arr_ma и значения элементов с индексом #0 и с индексом #8.
ds
Мой пример с функцией iMAGet - это пример заточенный для получения с индикатора одного значения за один раз. Если нужно получить с индикатора сразу несколько значения подряд - Вам нужно использовать CopyBuffer с параметрами "от" и "до" и сохранением результата в массив.
Добавлено: позже будет пример ...
Обещанный пример.
Входные параметры:
Работа с массивом и индикатором Moving Avegarege в советнике:
Обратите внимание, на массив arr_ma и значения элементов с индексом #0 и с индексом #8.
ds
Спасибо за пример!
Для меня очень важным является понять, есть ли преимущество при запрашивании одного значения индикатора и копированием десятка значений индикатора - может были какие исследования на этот счет?
То, что тайм серия получилась перевернутой - это не есть хорошо - я привык к стандарту нумерации баров 0123 , а тут получается в обратном порядке 1230.
Если я не знаю, какое количество баров мне будет нужно при переборе (к примеру ищем точку пересечения МА и бара), то надо запрашивать максимально возможное число? Это как то влияет на производительность?
Спасибо за пример!
Для меня очень важным является понять, есть ли преимущество при запрашивании одного значения индикатора и копированием десятка значений индикатора - может были какие исследования на этот счет?
...
А кто нам мешает самим такое исследование провести :) ?
То, что тайм серия получилась перевернутой - это не есть хорошо - я привык к стандарту нумерации баров 0123 , а тут получается в обратном порядке 1230.
...
Если я не знаю, какое количество баров мне будет нужно при переборе (к примеру ищем точку пересечения МА и бара), то надо запрашивать максимально возможное число? Это как то влияет на производительность?
В таких случаях лучше делать несколько запросов. Например первый запрос - 50 элементов, если нужно - второй запрос (снова 50 элементов) ...
А кто нам мешает самим такое исследование провести :) ?
Мне мешает моя безграмотность в MQL5 - могу ввести всех в заблуждение из-за ошибки в коде, а вот Ваш профессионализм внушал бы большее доверие к подобным исследованиям!
Нужно всё го лишь после получения массива (после обращения к iMAGetArray) выполнить ArraySetAsSeries('наш массив',true).Т.е. сделать это в функции сразу?
В таких случаях лучше делать несколько запросов. Например первый запрос - 50 элементов, если нужно - второй запрос (снова 50 элементов) ......
Т.е. сделать это в функции сразу?
...
Переворачивать массив лучше в:
Vladimir Karputov:
Нужно всё го лишь после получения массива (после обращения к iMAGetArray) выполнить ArraySetAsSeries('наш массив',true).
...
Брр... т.е. вкладывать цикл в цикл? А почему 50, а не 100? Всё ж таки исследования на эту тему необходимы, а то может смысл в получении информации больше чем об одном баре отсутствует...Никаких вложенных циклов - будет всего один цикл обхода всех значений: вся обработка идёт последовательно - поиск результата в отдельной функции (в ней запрашиваем какое-то определённое значение - например 50 значений). Если результат не найдем - делаем новый запрос.
Работа с индикаторами в MQL5 после MQL4 ужасна! Меня реально тошнит.
Я не понимаю, почему нельзя всё скомпоновать в одну функцию, в том числе хэндл, а не размазывать вызов индикатора по всему коду!?
А если настройки индикатора меняет функция, в которой находиться индикатор - то вообще не понимаю как быть!?!? Мне что, все варианты индикаторов надо инициировать?
вот пример на MQL4 - как это сделать на MQL5 ?
Подскажите, как убрать маркеры после закрытия позиции, чтобы они не отображались?
И есть-ли возможность их убрать программно?
Спасибо!
Подскажите, как убрать маркеры после закрытия позиции, чтобы они не отображались?
И есть-ли возможность их убрать программно?
Спасибо!
Настройки -> Опции -> Торговля:
Настройки -> Опции -> Торговля:
Имел ввиду убрать программно примерно так: CHART_SHOW_OHLC, CHART_SHOW_BID_LINE, ..., а не удалением граф.объектов
Спасибо!