Значения переменных shift и iy в приведенном коде не проверяются на предмет выхода за пределы массива. Поэтому все логично. Проверьте их значения перед использованием, ошибка исчезнет.
Ну и чтобы говорить предметно, нужно знать, как формируются значения переменных CountBars и TimeFrame.
CountBars =400 и TimeFrame =30, задаются статично, во внешних.
на М30 всё в порядке, на М15 вылетает.
Как проверить shift и iy на предмет выхода за пределы?
if(TimeFrame>Period())
{
ArrayCopySeries(santa1,5,Symbol(),TimeFrame);
summ=CountBars+TimeFrame/Period();
shift=0;
for(int iy=0; shift<summ; shift++)
{
if(iy>ArraySize(santa1))continue;
if(shift>ArraySize(santa1))continue;
if(Time[shift]<santa1[iy]) iy++;//вот эта santa1[iy] "array out of range"
list[shift]=bufbuy[iy];
}
}
Парни подскажите почему советник на Альпари цент часто ругается failed [Invalid volume], хотя размер лота не превышает максимальный, торговля с 23-45 до 1-00.
Лог прикрепил, на остальных бокерах такой ошибки нет
Ломаю голову как дописать универсальный (для разных инструментов) код для расчета лота для сделки исходя из % от депозита.
Сделал так:
inputdouble MaximumRisk=0.02; //Риск в сделке от депозита
{Lots = NormalizeDouble(((AccountBalance()*MaximumRisk)/((MathAbs(Price-SL))/Point)/((MarketInfo(Symbol(),MODE_LOTSIZE)*(MarketInfo(Symbol(),MODE_ASK)+Point))
-(MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_ASK)))),Digits);}
Price (цена открытия позиции) и SL (стоп лосс) отдельно рассчитываются, не стал сюда добавлять.
Для пар где валюта котировки в долларах (например EURUSD), для индекса SPX500 и для золота - все правильно рассчитывает, но для пар где доллар стоит первый в котировке (например USDJPY) не работает.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Значения переменных shift и iy в приведенном коде не проверяются на предмет выхода за пределы массива. Поэтому все логично. Проверьте их значения перед использованием, ошибка исчезнет.
Ну и чтобы говорить предметно, нужно знать, как формируются значения переменных CountBars и TimeFrame.
CountBars =400 и TimeFrame =30, задаются статично, во внешних.
на М30 всё в порядке, на М15 вылетает.
Как проверить shift и iy на предмет выхода за пределы?
Может, кто найдёт время посмотреть где ошибка.
Может, кто найдёт время посмотреть где ошибка.
Ребята,подскажите,как добавлять данные в файл с новой строки
моя функция записи:
вот ,что отправляю в неё:
нужно,чтобы ниже строчкой ещё добавлять множество:
Ребята,подскажите,как добавлять данные в файл с новой строки
моя функция записи:
вот ,что отправляю в неё:
нужно,чтобы ниже строчкой ещё добавлять множество:
FileSeek() с флагом SEEK_END, вам поможет.
<Вы заменили в коде
//+------------------------------------------------------------------+на
//+но, это не помогло)
Парни подскажите почему советник на Альпари цент часто ругается failed [Invalid volume], хотя размер лота не превышает максимальный, торговля с 23-45 до 1-00.
Лог прикрепил, на остальных бокерах такой ошибки нет
Взял отсюда код из примера и разбираюсь с ним
Я определил метод
он ругается на то что он уже определен и имеет тело.
Вопрос: где определен?
Взял отсюда код из примера и разбираюсь с ним
Я определил метод
он ругается на то что он уже определен и имеет тело.
Вопрос: где определен?
Добрый вечер!
Ломаю голову как дописать универсальный (для разных инструментов) код для расчета лота для сделки исходя из % от депозита.
Сделал так:
Price (цена открытия позиции) и SL (стоп лосс) отдельно рассчитываются, не стал сюда добавлять.
Для пар где валюта котировки в долларах (например EURUSD), для индекса SPX500 и для золота - все правильно рассчитывает, но для пар где доллар стоит первый в котировке (например USDJPY) не работает.
Подскажите пожалуйста, что упустил?