![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Разработчики любом случае попросят все локализовать, создать заявку в СД, прикрепить эксперта и описать все максимально подробно.
На то они и разработчики (ну Вы же их знаете), а телепаты сегодня отдыхают. :)
Да всё нормально.)) Сейчас локализую.))
Телепатия здесь не при чём. Дело в том, что такого рода ошибка у меня возникает впервые и я подумал, что она возникает в каких-то определённых случаях и мне смогут на форуме хотя бы подсказать в каких случаях может быть такое, а далее я уже самостоятельно разберусь.
То есть, я бы хотел узнать, Access violation write (0xкод) и Access violation read (0xкод) в каких случаях возникает? Я приблизительно месяц эту программу не трогал. Значит после какого-то билда эта проблема начала проявлять себя. Возможно разработчики ужесточили проверки и теперь нужно писать код более грамотно. Только где искать теперь ошибку в ~20 000 строк кода? )))
Да всё нормально.)) Сейчас локализую.))
Телепатия здесь не при чём. Дело в том, что такого рода ошибка у меня возникает впервые и я подумал, что она возникает в каких-то определённых случаях и мне смогут на форуме хотя бы подсказать в каких случаях может быть такое, а далее я уже самостоятельно разберусь.
То есть, я бы хотел узнать, Access violation write (0xкод) и Access violation read (0xкод) в каких случаях возникает? Я приблизительно месяц эту программу не трогал. Значит после какого-то билда эта проблема начала проявлять себя. Возможно разработчики ужесточили проверки и теперь нужно писать код более грамотно. Только где искать теперь ошибку в ~20 000 строк кода? )))
Господа, подскажите пожалуйста, какой есть компактный способ (м.б. функции существуют) для выявления самого большого/маленького значения одного из существующих буферов? Не просто выявления, а ещё и определения, что это за буфер с самым большим/маленьким значением.
Допустим у нас 4 буфера, тогда самое простое, что приходит на ум, это сравнивать сначала 1-й с остальными (типа if(one[0]<two[0] && one[0]<three[0]&& ...etc.)). Если ложно, то затем второй сравнить таким же макаром и так далее. Но это как-то громоздко выглядит..
Господа, подскажите пожалуйста, какой есть компактный способ (м.б. функции существуют) для выявления самого большого/маленького значения одного из существующих буферов? Не просто выявления, а ещё и определения, что это за буфер с самым большим/маленьким значением.
Допустим у нас 4 буфера, тогда самое простое, что приходит на ум, это сравнивать сначала 1-й с остальными (типа if(one[0]<two[0] && one[0]<three[0]&& ...etc.)), затем второй сравнить таким же макаром и так далее. Но это как-то громоздко выглядит..
ArrayMinimum возвращает индекс минимального значения массива, по аналогии работает и ArrayMaximum.
если нужно сравнить несколько буферов то получив экстремальные значения потом можно их сравнить с помощью if или fmin, fmax.
Как думаете, этот способ меньше ресурсов требует, чем простой перебор, о котором я писал выше?
Без вариантов,
хотя нет, если массивы в которых ведётся поиск имеют длину 3-4 бара и массивов 2-3 то перебрать будет быстрее.
ArrayMinimum возвращает индекс минимального значения массива, по аналогии работает и ArrayMaximum.
если нужно сравнить несколько буферов то получив экстремальные значения потом можно их сравнить с помощью if или fmin, fmax.
Сейчас почитал описание функций...
ArrayMinimum из другой оперы - т.к. мне нужно сравнивать значение 0 бара, и поиск истории массива не нужен.
fmin сравнивает только два буфера, смысл в ней? С таким же успехом я могу воспользоваться стандартным if.. Но тогда получается много условий.. 4 сложных на минимум и столько же на максимум..
Сейчас почитал описание функций...
ArrayMinimum из другой оперы - т.к. мне нужно сравнивать значение 0 бара, и поиск истории массива не нужен.
fmin сравнивает только два буфера, смысл в ней? С таким же успехом я могу воспользоваться стандартным if.. Но тогда получается много условий.. 4 сложных на минимум и столько же на максимум..
fmin сравнивает не буфера а два значения.
Вот теперь прояснилась ваша задача, те вам нужно найти экстремум среди параллельных значений разных буферов.
Теперь ответьте вам нужно это только для нулевых значений ? или же это действие нужно повторять для множества параллельных значений ?
fmin сравнивает не буфера а два значения.
Вот теперь прояснилась ваша задача, те вам нужно найти экстремум среди параллельных значений разных буферов.
Теперь ответьте вам нужно это только для нулевых значений ? или же это действие нужно повторять для множества параллельных значений ?
Это нужно для советника, который торгует с рынка. Соответственно нужно сравнивать значения всех буферов на текущем баре.
Вот скрин индикатора, на нулевом баре которого нужно найти максимальный и минимальный буффер:
Это нужно для советника, который торгует с рынка. Соответственно нужно сравнивать значения всех буферов на текущем баре.
Вот скрин индикатора, на нулевом баре которого нужно найти максимальный и минимальный буффер:
Тогда проще простого, присвойте по порядку все нулевые значения буферов в один массив (можно даже заданный статично тк количество буфферов зарание известно) и уже к этому сводному массиву применяйте функции ArrayMinimum ArrayMaximum, в результате получите порядковый номер буфера в порядке присвоения.