Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 782
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть идея написать функцию, которая будет принимать и сдвигать массив. Вопрос такой как сделать эту функцию, чтобы она сама определяла какого типа массив одномерный или 2 мерный, чтобы не указывать в аргументах каждый раз что массив 2мерный или обычный. Одновременно с этим я хочу применить шаблон чтобы не указывать какого типа массив.
Как сделать так чтобы не нужно было указывать какой массив?
Перегрузку делать:
Перегрузку делать:
А разве второе измерение может быть динамическим?
Оно не динамическое, просто записывается так в качестве принимаемого аргумента просто ставятся квадратные скобки.
Как реализовать в цикле (или как-то по другому) перебор возможных вариантов условий?
Например есть 2 индикатора MA и MACD, то есть они представляют 3 возможных вариантов условий:
1 вариант - if(iMA ...) {...};
2 вариант - if(iMACD ...) {...};
3 вариант - if(iMA ... iMACD ...) {...};
Комбинирование входных параметров сделать просто, а как сделать комбинирование условий? Ведь это особенно полезно если индикаторов или формул больше чем 2
Дайте ссылки на примеры если есть
Как реализовать в цикле (или как-то по другому) перебор возможных вариантов условий?
Если правильно понял, то ответ можно поискать в теме.
Здравствуйте ещё раз, опять я не понимаю чего-то очевидного.
Так как всё-таки передать массив в функцию?
Ошибки:
']' - expression expected
'b' - parameter conversion not allowed
Допустим, я знаю, как убрать первую ошибку:
Func(b[3]);
Но в таком случае что, будет передан только третий элемент? Это бессмысленно.
Как мне передать массив целиком?
Спасибо.
Здравствуйте ещё раз, опять я не понимаю чего-то очевидного.
Так как всё-таки передать массив в функцию?
Ошибки:
']' - expression expected
'b' - parameter conversion not allowed
Допустим, я знаю, как убрать первую ошибку:
Но в таком случае что, будет передан только третий элемент? Это бессмысленно.
Как мне передать массив целиком?
Спасибо.
Объясните пожалуйста механику переменной begin
По этой ссыке вроде как есть информация https://www.mql5.com/ru/docs/basis/function/events, но я либо её не понял, либо не нашел. Я не могу понять какое значение стоит по умолчанию в начале и как оно изменяется по мере прохождения циклов в индикаторах
Например я знаю что return() внутри функции OnCalculate() присваивает возвращаемое значение переменной prev_calculated, и оно будет использоваться в расчётах при следующем вызове функции OnCalculate(), то есть при следующем тике
Опишите пожалуйста такими же простыми словами механику переменной begin внутри функции OnCalculate()
Добрый день.
Подскажите, пожалуйста, почему-то в функции OnTick не пишутся данные в файл по такому коду:
//=== запись данных в файл ===
h1=FileOpen("test_bar.csv",FILE_CSV|FILE_WRITE|FILE_READ,",");
FileSeek(h1, 0, SEEK_END);
FileWrite(h1, TimeToStr(Time[1],TIME_DATE|TIME_MINUTES),i,Open[1],High[1],Low[1],Close[1], Parabola57Up, " ");
FileClose(h1);
И именно при историческом тестировании. При работе советника в онлайне - запись идет.
Спасибо
Как реализовать в цикле (или как-то по другому) перебор возможных вариантов условий?
Например есть 2 индикатора MA и MACD, то есть они представляют 3 возможных вариантов условий:
1 вариант - if(iMA ...) {...};
2 вариант - if(iMACD ...) {...};
3 вариант - if(iMA ... iMACD ...) {...};
Комбинирование входных параметров сделать просто, а как сделать комбинирование условий? Ведь это особенно полезно если индикаторов или формул больше чем 2
Дайте ссылки на примеры если есть
Я хочу сделать самооптимизацию, но не только по входным параметрам индикаторов, сделать в цикле проходы входных параметров с шагом и выбор лучших результатов это для меня понятно
А как зациклить перебор условий? Например есть 3 индикатора (подбор входных параметров в цикле/ах не берём сейчас во внимание для простоты понимания), и они представляют собой 7 возможных комбинаций условий/совместной работы
Например в первых трёх условиях по одному индикатору
1) if(индикатор №1 ...) {...};
2) if(индикатор №2 ...) {...};
3) if(индикатор №3 ...) {...};
Во второй тройке условий по двум индикаторам
4) if(№1 ... && №2 ...) {...};
5) if(№1 ... && №3 ...) {...};
6) if(№2 ... && №3 ...) {...};
И в последнем седьмом условии все три имеющиеся индикаторы
7) if(№1 ... && №2 ... && №3 ...) {...};
И ещё если это возможно, было бы хорошо зациклить перебор логических условий. Например не прописывать && || > < == и так далее а зациклить
Просто каждый возможный вариант прописывать вручную будет долго, и было бы хорошо что бы советник самостоятельно комбинировал и проверял все возможные варианты входных параметров, совместной или индивидуальной работы индикаторов и логических условий