Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в mql4 просто и эффективно можно узнать high low любого дня например
iHigh( Symbol(), PERIOD_D1, iDAY );
iLow( Symbol(), PERIOD_D1, iDAY );
каким образом эффективно то же самое в MQL5?
--
CopyRates ?
в mql4 просто и эффективно можно узнать high low любого дня например
iHigh( Symbol(), PERIOD_D1, iDAY );
iLow( Symbol(), PERIOD_D1, iDAY );
каким образом эффективно то же самое в MQL5?
--
CopyRates ?
В mql4 это было просто, но неэффективно. При таком запросе в "историческую базу эксперта" сначала копировался весь массив котировок, имеющийся в исторической базе клиентского терминала (правда копирование это - однократное, зато на каждом следующем тике проверяется и обновляется этот массив, независимо от того, будет он использован или нет). А только потом из этого локального массива отдаётся нужное значение.
В mql5 необходимо копировать соответствующий массив (High, Low etc) в свой локальный массив в необходимом объёме (хоть один элемент)
в mql4 просто и эффективно можно узнать high low любого дня например
iHigh( Symbol(), PERIOD_D1, iDAY );
каким образом эффективно то же самое в MQL5?
Вот пример эксперта
Вот пример эксперта
//+------------------------------------------------------------------+
//| Получим Low для заданного номера бара |
//+------------------------------------------------------------------+
double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index)
{
double low=0;
ArraySetAsSeries(Low,true);
int copied=CopyHigh(symbol,timeframe,0,60,Low);
if(copied>0 && index<copied) low=Low[index];
return(low);
}
int copied=CopyLow(symbol,timeframe,0,60,Low);
-----------------------
В MQL4 были готовые функции. В MQL5 похоже, многие функции надо будет создавать самостоятельно.
В MQL4 мы не знали внутренней реализации функций. Поэтому трудно судить со стороны, насколько эффективно было реализовано.
Приведенные примеры немного пугают объемом кода. В примере Юрия :
iLow( Symbol(), PERIOD_D1, iDAY );
все выглядит проще.
Это не критика. А просто описание ощущений от новшеств. Хотя с примерами реальной работы МТ5 и реальной эффективностью MQL5 пока мало кто сталкивался.
В mql5 необходимо копировать соответствующий массив (High, Low etc) в свой локальный массив в необходимом объёме (хоть один элемент)
1) А далее этот локальный массив остается таким и никуда не исчезает до конца работы эксперта? Например необходимо произвести обработку этого локального массива и организовать новый массив, но не копий значений из этого локального массива, а массив ссылок на элементы локального массива таймсерии. Чтобы не тратить время на копирование.
2) Теперь в обязательном порядке будет необходимо копировать таймсерии, прежде чем производить какие-либо вычисления с таймсериями?
В МТ4 мы не задумывались о необходимости копирования.
Это не критика. А просто описание ощущений от новшеств. Хотя с примерами реальной работы МТ5 и реальной эффективностью MQL5 пока мало кто сталкивался.
А кто сказал, что будет легко? ;)
В mql4 это было просто, но неэффективно. При таком запросе в "историческую базу эксперта" сначала копировался весь массив котировок, имеющийся в исторической базе клиентского терминала (правда копирование это - однократное, зато на каждом следующем тике проверяется и обновляется этот массив, независимо от того, будет он использован или нет). А только потом из этого локального массива отдаётся нужное значение.
В mql5 необходимо копировать соответствующий массив (High, Low etc) в свой локальный массив в необходимом объёме (хоть один элемент)
Спасибо!
может удивительно но примерно так и представлял, внутренний механизм mt4
--
c MQL5 видимо все намного быстрее
копирование элемента происходит при каждом обрщении?
видимо копия идет не всего массива от а до я, а только четко указанной части - что ускоряет
причем как я понял копирование (имеется ввиду извлечение данных с базы котировок идет один раз)...
второй раз просто извлечение готовых данных из готового массива
---
Rosh - спасибо за пример!
--
хотел добавить, чем больше будет понятных расжованных примеров, тем быстрее пойдет освоение!
А кто сказал, что будет легко? ;)
Идет погружение в тему...
--------------------
Мы еще не скоро в полной мере ощутим, куда мы попали.
1) А далее этот локальный массив остается таким и никуда не исчезает до конца работы эксперта? Например необходимо произвести обработку этого локального массива и организовать новый массив, но не копий значений из этого локального массива, а массив ссылок на элементы локального массива таймсерии. Чтобы не тратить время на копирование.
2) Теперь в обязательном порядке будет необходимо копировать таймсерии, прежде чем производить какие-либо вычисления с таймсериями?
В МТ4 мы не задумывались о необходимости копирования.
попробую ответить как понимаю
--
2) верно не задумывались
теперь просто получили - более приближенный механизм - более оголенный - более быстрый
имеем массив - серию - далее делаем что хотим и как хотим
функции типа iLow напишем сами
1) сам бы хотел услышать разработчиков
---
В mql4 это было просто, но неэффективно. При таком запросе в "историческую базу эксперта" сначала копировался весь массив котировок, имеющийся в исторической базе клиентского терминала (правда копирование это - однократное, зато на каждом следующем тике проверяется и обновляется этот массив, независимо от того, будет он использован или нет). А только потом из этого локального массива отдаётся нужное значение.
В mql5 необходимо копировать соответствующий массив (High, Low etc) в свой локальный массив в необходимом объёме (хоть один элемент)
корректен ли такой вариант ? получения хай лов текущего дня - и есть ли более быстрое извлечение