Еще такой вопрос, как задать ТФ для отладки на реальных данных? Для символа я понял - поместить в самый верх окна обзора рынка, а вот ТФ хоть что ты делай открывает Н1
Сервис->Настройки и символ не надо будет никуда двигать...
советник bollinger bands breakout с настройками по умолчанию т.е если ничего не менять показывает убыток на тестере. Поменял(уменьшил) некоторые входные параметры в колонках Значение и Старт , Шаг и Стоп не трогал, не знаю - вообще перестал торговать, по нулям. Подскажите настройки или дайте set файл
Ошибка может быть в количестве цифр после запятой:
Ошибка не в этом, на истории данные не рассчитываются, а с момента создания символа все корректно рассчитывается, подозреваю неправильно работает функция расчета на истории, т.е. это баг.
У меня такая проблема: я только начала в МТ5 допирать, переношу свои индикаторы из МТ4 и столкнулась с проблемами. Мне нужно использовать iMA в одну строчку и получать значение одного конкретного индекса. Видела на форуме сообщения и использование функции iMAGet (как и аналогичные iATRGet и тд). Как я вижу, функции уже не работают, тогда такой вопрос: как изящно получить одно единственное значение iMA? Я используя вышеупомянутые функции пыталась сделать так:
Знаю, без проверки плохо, но мне приходится портировать старый МТ4 код, по другому не придумала как сделать это попроще (у меня десяток машек, и все работают на разных таймфреймах). Инициализировать машки в oninit не могу, так как код имеет трехступенчатую вложенность, и у меня не получится вызвать нужную машку без геморроя. Поэтому, короче говоря, моя цель превратить
У меня такая проблема: я только начала в МТ5 допирать, переношу свои индикаторы из МТ4 и столкнулась с проблемами. Мне нужно использовать iMA в одну строчку и получать значение одного конкретного индекса. Видела на форуме сообщения и использование функции iMAGet (как и аналогичные iATRGet и тд). Как я вижу, функции уже не работают, тогда такой вопрос: как изящно получить одно единственное значение iMA? Я используя вышеупомянутые функции пыталась сделать так:
Знаю, без проверки плохо, но мне приходится портировать старый МТ4 код, по другому не придумала как сделать это попроще (у меня десяток машек, и все работают на разных таймфреймах). Инициализировать машки в oninit не могу, так как код имеет трехступенчатую вложенность, и у меня не получится вызвать нужную машку без геморроя. Поэтому, короче говоря, моя цель превратить
Это :
в то, что работает на MT5 без резких телодвижений.
handle_iMA_High=iMA(Symbol(),Period(),Inp_MA_ma_period,Inp_MA_ma_shift,
Inp_MA_ma_method,PRICE_HIGH);
//--- if the handle is not createdif(handle_iMA_High==INVALID_HANDLE)
{
//--- tell about the failure and output the error codePrintFormat("Failed to create handle of the iMA indicator (\"Price High\") for the symbol %s/%s, error code %d",
Symbol(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped earlyreturn(INIT_FAILED);
}
Ну а потом копируете в буфер нужный элемент(ы) и с ним работаете
if(CopyBuffer(ind_handle,0,-shift,amount,values)<0)
{
//--- if the copying fails, tell the error codePrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
Как я уже писала, мне не подходит инициализация в OnInit. У меня работа со всеми таймфреймами одновременно, мне придется инициализировать все машки на каждом ТФ, а потом в коде где я использую какое-то значение, делать что-то вроде этого:
Как я уже писала, мне не подходит инициализация в OnInit. У меня работа со всеми таймфреймами одновременно, мне придется инициализировать все машки на каждом ТФ, а потом в коде где я использую какое-то значение, делать что-то вроде этого:
И так при каждом вызове каждой машки. Код превратится просто в запутанный понос.
И при этом каждый новый бар нужно будет это как-то обновлять?
Есть ли функция вроде CopyBuffer, только копирующая не массив, а одно значение по нужному индексу?
Сделайте массив хендлов в OnInit() и с ними работайте.
CopyBuffer(...) вынесите в функцию для удобства использования, туда подавайте с массива хендл индикаторов и нужный индекс, а функция вернёт цену
Понял, благодарю
Еще такой вопрос, как задать ТФ для отладки на реальных данных? Для символа я понял - поместить в самый верх окна обзора рынка, а вот ТФ хоть что ты делай открывает Н1
Сервис->Настройки и символ не надо будет никуда двигать...
Создаю синтетик по формуле ask(EURUSD)-bid(EURUSD), все бары кроме текущего нулевые
В чем может быть ошибка?
Создаю синтетик по формуле ask(EURUSD)-bid(EURUSD), все бары кроме текущего нулевые
Ошибка может быть в количестве цифр после запятой:
Ошибка может быть в количестве цифр после запятой:
У меня такая проблема: я только начала в МТ5 допирать, переношу свои индикаторы из МТ4 и столкнулась с проблемами. Мне нужно использовать iMA в одну строчку и получать значение одного конкретного индекса. Видела на форуме сообщения и использование функции iMAGet (как и аналогичные iATRGet и тд). Как я вижу, функции уже не работают, тогда такой вопрос: как изящно получить одно единственное значение iMA? Я используя вышеупомянутые функции пыталась сделать так:
Это :
в то, что работает на MT5 без резких телодвижений.
Добрый день, господа.
У меня такая проблема: я только начала в МТ5 допирать, переношу свои индикаторы из МТ4 и столкнулась с проблемами. Мне нужно использовать iMA в одну строчку и получать значение одного конкретного индекса. Видела на форуме сообщения и использование функции iMAGet (как и аналогичные iATRGet и тд). Как я вижу, функции уже не работают, тогда такой вопрос: как изящно получить одно единственное значение iMA? Я используя вышеупомянутые функции пыталась сделать так:
Это :
в то, что работает на MT5 без резких телодвижений.
Посмотрите примеры в кодобазе, например этот: https://www.mql5.com/ru/code/27161
По факту: Создаёте в ОнИнит() хендл индикатора
Ну а потом копируете в буфер нужный элемент(ы) и с ним работаете
https://www.mql5.com/ru/docs/series/copybuffer
Посмотрите примеры в кодобазе, например этот: https://www.mql5.com/ru/code/27161
По факту: Создаёте в ОнИнит() хендл индикатора
Ну а потом копируете в буфер нужный элемент(ы) и с ним работаете
https://www.mql5.com/ru/docs/series/copybuffer
Как я уже писала, мне не подходит инициализация в OnInit. У меня работа со всеми таймфреймами одновременно, мне придется инициализировать все машки на каждом ТФ, а потом в коде где я использую какое-то значение, делать что-то вроде этого:
И так при каждом вызове каждой машки. Код превратится просто в запутанный понос.
И при этом каждый новый бар нужно будет это как-то обновлять?
Есть ли функция вроде CopyBuffer, только копирующая не массив, а одно значение по нужному индексу?
Как я уже писала, мне не подходит инициализация в OnInit. У меня работа со всеми таймфреймами одновременно, мне придется инициализировать все машки на каждом ТФ, а потом в коде где я использую какое-то значение, делать что-то вроде этого:
И так при каждом вызове каждой машки. Код превратится просто в запутанный понос.
И при этом каждый новый бар нужно будет это как-то обновлять?
Есть ли функция вроде CopyBuffer, только копирующая не массив, а одно значение по нужному индексу?
Сделайте массив хендлов в OnInit() и с ними работайте.
CopyBuffer(...) вынесите в функцию для удобства использования, туда подавайте с массива хендл индикаторов и нужный индекс, а функция вернёт цену
Сделайте массив хендлов в OnInit() и с ними работайте.
CopyBuffer(...) вынесите в функцию для удобства использования, туда подавайте с массива хендл индикаторов и нужный индекс, а функция вернёт цену
капец как неудобно, однако)