Всем привет)помогите пожалуйста с проблемой.Разбирался я с функцией написанной в этой статье https://www.mql5.com/ru/articles/1357 .Решил проверить как открываются ордера по сигналам от этой функции, и написал простой код:
А метатрейдер выдает вот что:
Вот и не знаю что делать,то ли с котировками что- то не так ,то ли с кодом функции.
Всем привет)помогите пожалуйста с проблемой.Разбирался я с функцией написанной в этой статье https://www.mql5.com/ru/articles/1357 .Решил проверить как открываются ордера по сигналам от этой функции, и написал простой код:
А метатрейдер выдает вот что:
Вот и не знаю что делать,то ли с котировками что- то не так ,то ли с кодом функции.
Код функции прикрепил.
наверное всё же не та функция в прицепе, в этой на строке 59 нет ничего с массивами, а ошибка явно выход за пределы массива, на строке 59, по второму скриншоту.
наверное всё же не та функция в прицепе, в этой на строке 59 нет ничего с массивами, а ошибка явно выход за пределы массива, на строке 59, по второму скриншоту.
неее,я там коментил просто,вот и строки сдвинулись.
ха!теперь одну сделку открывает и на этом тестирование заканчивается,не понимаю почему вычитаем 2?
Дальше в инклюднике ещё есть массивы, на них наверное спотыкается уже. Или всё ещё на строку 59 жалуется?
А вычитание - арифметика простая - если элементов 100, то их нумерация 0..99 (так как nBars=100, то 99 и есть тот самый ваш nBars-1), а значит вы можете в вашем алгоритме считать от 1 (сравнение с 0 и 2 барами) до 98 (сравнение с 97 и 99 барами), на 99 уже будет вылет за пределы массива.
Дальше в инклюднике ещё есть массивы, на них наверное спотыкается уже. Или всё ещё на строку 59 жалуется?
А вычитание - арифметика простая - если элементов 100, то их нумерация 0..99 (99 и есть тот самый ваш nBars-1), а значит вы можете в вашем алгоритме считать от 1 (сравнение с 0 и 2 барами) до 98 (сравнение с 97 и 99 барами), на 99 уже будет вылет за пределы массива.
так там же меньше либо равно ,т.е 99 включается.Разве не так?Во время открытия ордеров выскакивает ошибка 130.
вот дошли мы до i=99, это край, последний элемент. в цикле сравнение идёт
и где у нас [i+1]?
ааа,понятно)Спасибо.
Вот теперь осталась проблема 130.
То что в справке пишут.
Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).
Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).
вот код.Разве мне нужно нормализовать стопы?
в альпари стоплевел=0 но стопы на цене не принимаются, вот такие они аферисты, в лом им передавать стоплевел по нормальному. приходится расстояние 2 спреда брать вместо стоплевела.
но вобще, такие узкие стопы - пустая трата средств, слишком часто срабатывать будут.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Всем привет)помогите пожалуйста с проблемой.Разбирался я с функцией написанной в этой статье https://www.mql5.com/ru/articles/1357 .Решил проверить как открываются ордера по сигналам от этой функции, и написал простой код:
А метатрейдер выдает вот что:
Вот и не знаю что делать,то ли с котировками что- то не так ,то ли с кодом функции.
Код функции прикрепил.
Всем привет)помогите пожалуйста с проблемой.Разбирался я с функцией написанной в этой статье https://www.mql5.com/ru/articles/1357 .Решил проверить как открываются ордера по сигналам от этой функции, и написал простой код:
А метатрейдер выдает вот что:
Вот и не знаю что делать,то ли с котировками что- то не так ,то ли с кодом функции.
Код функции прикрепил.
наверное всё же не та функция в прицепе, в этой на строке 59 нет ничего с массивами, а ошибка явно выход за пределы массива, на строке 59, по второму скриншоту.
наверное всё же не та функция в прицепе, в этой на строке 59 нет ничего с массивами, а ошибка явно выход за пределы массива, на строке 59, по второму скриншоту.
неее,я там коментил просто,вот и строки сдвинулись.
Вот та что компилировал.
неее,я там коментил просто,вот и строки сдвинулись.
Вот та что компилировал.
попробуйте
попробуйте
ха!теперь одну сделку открывает и на этом тестирование заканчивается,не понимаю почему вычитаем 2?
ха!теперь одну сделку открывает и на этом тестирование заканчивается,не понимаю почему вычитаем 2?
Дальше в инклюднике ещё есть массивы, на них наверное спотыкается уже. Или всё ещё на строку 59 жалуется?
А вычитание - арифметика простая - если элементов 100, то их нумерация 0..99 (так как nBars=100, то 99 и есть тот самый ваш nBars-1), а значит вы можете в вашем алгоритме считать от 1 (сравнение с 0 и 2 барами) до 98 (сравнение с 97 и 99 барами), на 99 уже будет вылет за пределы массива.
Дальше в инклюднике ещё есть массивы, на них наверное спотыкается уже. Или всё ещё на строку 59 жалуется?
А вычитание - арифметика простая - если элементов 100, то их нумерация 0..99 (99 и есть тот самый ваш nBars-1), а значит вы можете в вашем алгоритме считать от 1 (сравнение с 0 и 2 барами) до 98 (сравнение с 97 и 99 барами), на 99 уже будет вылет за пределы массива.
так там же меньше либо равно ,т.е 99 включается.Разве не так?Во время открытия ордеров выскакивает ошибка 130.
так там же меньше либо равно ,т.е 99 включается.Разве не так?Во время открытия ордеров выскакивает ошибка 130.
вот дошли мы до i=99, это край, последний элемент. в цикле сравнение идёт
и где у нас [i+1]?
вот дошли мы до i=99, это край, последний элемент. в цикле сравнение идёт
и где у нас [i+1]?
ааа,понятно)Спасибо.
Вот теперь осталась проблема 130.
То что в справке пишут.
Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).
вот код.Разве мне нужно нормализовать стопы?
ааа,понятно)Спасибо.
Вот теперь осталась проблема 130.
То что в справке пишут.
Цены StopLoss и TakeProfit не могут располагаться слишком близко к рынку. Минимальное расстояние стопов в пунктах можно получить, используя функцию MarketInfo() с параметром MODE_STOPLEVEL. В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).
вот код.Разве мне нужно нормализовать стопы?
в альпари стоплевел=0 но стопы на цене не принимаются, вот такие они аферисты, в лом им передавать стоплевел по нормальному. приходится расстояние 2 спреда брать вместо стоплевела.
но вобще, такие узкие стопы - пустая трата средств, слишком часто срабатывать будут.