вам даже компилятор в первом случае подсветит "результат OrderSelect должен проверяться" ;-)
если для первого изменить if (!OrderSelect(...)) continue; то варианты идентичны.
в первом код визуально получается линеен, во втором любимой тут лесенкой. Я предпочитаю первый вариант, его читать проще и вообще возникновение глубоких логических вкладок {{{{ }}}} намекают что пора что-то менять :-)
Спасибо. А влияет ли запись лесенкой на скорость исполнения кода? Мне всё же проще разбираться в записи именно лесенкой.
- Вы взяли часть кода из МТ5 и пытаетесь "прикрутить" его к МТ4, в МТ4 не так происходит вызов индикаторов
- Вы не правильно объявили заголовок функции
- в МТ4 отсутствует встроенная функция CopyBuffer()
в общем, так не будет работать, ищите еще варианты прикрутить части кода - синтаксис у MQL4 и у MQL5 похож процентов на 95%, но нельзя бездумно копировать участки кода между платформами
- Вы взяли часть кода из МТ5 и пытаетесь "прикрутить" его к МТ4, в МТ4 не так происходит вызов индикаторов
- Вы не правильно объявили заголовок функции
- в МТ4 отсутствует встроенная функция CopyBuffer()
в общем, так не будет работать, ищите еще варианты прикрутить части кода - синтаксис у MQL4 и у MQL5 похож процентов на 95%, но нельзя бездумно копировать участки кода между платформами
Простите, забыл указать, код для МТ5
Просто не проходит вызов функции Deviation(int kanal).
как вариант, у Вас компиляция проекта под 64 битную dll, терминал МТ4 32-х разрядный, нужно настроить и скомпилировать проект под 32-х разрядную .dll
Я там тоже вопросы задаю, предложенные примеры там я испробовал, собственно я и выложил картинки с экспериментами. Ну да что-то такое там есть с этими версиями, по нормальному всё это должно быть в справке, как подключить какие нюансы. Мне дали какие-то ссылки с кодами, я открыл погортал эти классы и закрыл мне это не по зубам, в общем издевательство информации нет что хочешь то и делай. Ладно извините через 20 лет будет опыт с программированием вернусь к этой теме. Как понять что компиляция под 64, как это выяснить?
- Вы взяли часть кода из МТ5 и пытаетесь "прикрутить" его к МТ4, в МТ4 не так происходит вызов индикаторов
- Вы не правильно объявили заголовок функции
- в МТ4 отсутствует встроенная функция CopyBuffer()
в общем, так не будет работать, ищите еще варианты прикрутить части кода - синтаксис у MQL4 и у MQL5 похож процентов на 95%, но нельзя бездумно копировать участки кода между платформами
Пробую в МТ5 получить данные Индикатора с помощью функции:
//************************************************************************************************/double Envelopes(string symb, ENUM_TIMEFRAMES TF_1, int period, int method, int shift, int price,double Deviation(ENUM_TIMEFRAMES TF_2, int kanal), int buff, int index)
{
double buf[1];
int handle=iEnvelopes(Symbol(), TF_1, period, method, shift, price, Deviation(TF_2, kanal), buff);
if(handle<0)
{
Print("Failed to create handle ATR, Error: ",GetLastError());
return(WRONG_VALUE);
} else
{
if(CopyBuffer(handle,0,index,1,buf)<0)
{
Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
return(WRONG_VALUE);
}
}
return(buf[0]);
}
//************************************************************************************************/
Выдаёт ошибку :
Подскажите как исправить код для МТ5
Выделенное ничем не отличается от объявления функции. Получается во входных параметрах функции объявлена функция.
вам даже компилятор в первом случае подсветит "результат OrderSelect должен проверяться" ;-)
если для первого изменить if (!OrderSelect(...)) continue; то варианты идентичны.
в первом код визуально получается линеен, во втором любимой тут лесенкой. Я предпочитаю первый вариант, его читать проще и вообще возникновение глубоких логических вкладок {{{{ }}}} намекают что пора что-то менять :-)
Спасибо. А влияет ли запись лесенкой на скорость исполнения кода? Мне всё же проще разбираться в записи именно лесенкой.
Спасибо. А влияет ли запись лесенкой на скорость исполнения кода? Мне всё же проще разбираться в записи именно лесенкой.
на скорость исполнения в первую очередь влияет алгоритм. А как вы его изобразили в коде уже не суть как важно.
не о том думаете.
код пишется чтобы с ним потом самому работать. Вот и пишите как вам удобно, не забивайте голову проблемами которые перед вами в реальности не стоят.
Ну нету у вас проблем со скоростью, которые надо обходить трюками и особенностями кодирования. Просто гарантированно нет.
Когда(что вряд-ли) возникнут, тогда и будете оптимизировать выполнение.
на скорость исполнения в первую очередь влияет алгоритм. А как вы его изобразили в коде уже не суть как важно.
не о том думаете.
код пишется чтобы с ним потом самому работать. Вот и пишите как вам удобно, не забивайте голову проблемами которые перед вами в реальности не стоят.
Ну нету у вас проблем со скоростью, которые надо обходить трюками и особенностями кодирования. Просто гарантированно нет.
Когда(что вряд-ли) возникнут, тогда и будете оптимизировать выполнение.
Большое спасибо! Очень доходчиво.
Помогите, пожалуйста, с вопросом : https://www.mql5.com/ru/forum/160683/page833#comment_11585085
сомневаюсь, что Вам поможет, но примерно так:
- Вы взяли часть кода из МТ5 и пытаетесь "прикрутить" его к МТ4, в МТ4 не так происходит вызов индикаторов
- Вы не правильно объявили заголовок функции
- в МТ4 отсутствует встроенная функция CopyBuffer()
в общем, так не будет работать, ищите еще варианты прикрутить части кода - синтаксис у MQL4 и у MQL5 похож процентов на 95%, но нельзя бездумно копировать участки кода между платформами
сомневаюсь, что Вам поможет, но примерно так:
- Вы взяли часть кода из МТ5 и пытаетесь "прикрутить" его к МТ4, в МТ4 не так происходит вызов индикаторов
- Вы не правильно объявили заголовок функции
- в МТ4 отсутствует встроенная функция CopyBuffer()
в общем, так не будет работать, ищите еще варианты прикрутить части кода - синтаксис у MQL4 и у MQL5 похож процентов на 95%, но нельзя бездумно копировать участки кода между платформами
Простите, забыл указать, код для МТ5
Просто не проходит вызов функции Deviation(int kanal).
Хотел спросить как это сделать корректно ?
выполните один в один пример из статьи https://www.mql5.com/ru/articles/18
как вариант, у Вас компиляция проекта под 64 битную dll, терминал МТ4 32-х разрядный, нужно настроить и скомпилировать проект под 32-х разрядную .dll
Я там тоже вопросы задаю, предложенные примеры там я испробовал, собственно я и выложил картинки с экспериментами. Ну да что-то такое там есть с этими версиями, по нормальному всё это должно быть в справке, как подключить какие нюансы. Мне дали какие-то ссылки с кодами, я открыл погортал эти классы и закрыл мне это не по зубам, в общем издевательство информации нет что хочешь то и делай. Ладно извините через 20 лет будет опыт с программированием вернусь к этой теме. Как понять что компиляция под 64, как это выяснить?
Как понять что компиляция под 64, как это выяснить?
свойства проекта в Visual Studio смотрите, там должна быть настройка под какую платформу компилировать dll - в МТ4 нужно 32-х разрядный код
PS: гуглом найдите настройку VS
сомневаюсь, что Вам поможет, но примерно так:
- Вы взяли часть кода из МТ5 и пытаетесь "прикрутить" его к МТ4, в МТ4 не так происходит вызов индикаторов
- Вы не правильно объявили заголовок функции
- в МТ4 отсутствует встроенная функция CopyBuffer()
в общем, так не будет работать, ищите еще варианты прикрутить части кода - синтаксис у MQL4 и у MQL5 похож процентов на 95%, но нельзя бездумно копировать участки кода между платформами
А ничего что указано
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Alexander Layzerevich, 2019.05.06 17:21
Пробую в МТ5 получить данные Индикатора с помощью функции:
Выдаёт ошибку :
Подскажите как исправить код для МТ5