Написал я простой эксперт, который возвращает 3 переменные и передаёт их в start().
Далее на каждом тике должны эти данные (тип объекта, цена1 и цена2) возвращаться.
//+-------------------------------------------------------------------------------------+//| TradingByLine.mq4 |//| hoz |//| |//+-------------------------------------------------------------------------------------+#property copyright "hoz"#property link ""string objName;
int isObj,
objType;
double price1,
price2;
//+-------------------------------------------------------------------------------------+//| Функция иницилизации |//+-------------------------------------------------------------------------------------+int init()
{
return(0);
}
//+-------------------------------------------------------------------------------------+//| Функция деиницилизации |//+-------------------------------------------------------------------------------------+int deinit()
{
//----//----return(0);
}
//+-------------------------------------------------------------------------------------+//| Блок поиска своих объектов |//+-------------------------------------------------------------------------------------+bool IsObjectFound(double& price1, double& price2, int& objType)
{
for (int obj=0; obj<=ObjectsTotal()-1; obj++)
{
objName = ObjectName(obj);
isObj = ObjectFind(objName);
price1 = ObjectGet("objName", OBJPROP_PRICE1);
price2 = ObjectGet("objName", OBJPROP_PRICE2);
objType = ObjectType("objName");
if (isObj != -1)
return(true);
}
return(false);
}
//+-------------------------------------------------------------------------------------+//| Функция start |//+-------------------------------------------------------------------------------------+int start()
{
if (!IsObjectFound(price1, price2, objType))
return(0);
Print("objType = ", objType);
Print("price1 = ", price1, ", price2 = ", price2);
return(0);
}
Далее я в тестере запускаю этот эксперт в режиме визуализации и рисую рукой линию в на графике. Цены отрисовки и тип объекты, который я получил в функции IsObjectFound() не возвращаются верные. Вот вывод журнала:
Написал я простой эксперт, который возвращает 3 переменные и передаёт их в start().
Далее на каждом тике должны эти данные (тип объекта, цена1 и цена2) возвращаться.
Далее я в тестере запускаю этот эксперт в режиме визуализации и рисую рукой линию в на графике. Цены отрисовки и тип объекты, который я получил в функции IsObjectFound() не возвращаются верные. Вот вывод журнала:
Линия то нарисована рукой, а значит у неё есть тип и другие параметры:
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Господа!Добрый вечер!
Скажите пожалуйста - почему компилятор считает что в нижеприведенном коде
переменная int Ticket не определена.
Он выдает одну ошибку
'Ticket' - variable not defined C:\Program Files\Alpari NZ MT4(2)\experts\hhhh.mq4 (18, 6)
Хотя в нижеприведенном коде переменная Ticket так же определена в операторе присвоения и код компилируется успешно
Наверно просто скобок в одном месте не хватает
Переменная int Ticket - локальная и на следующем тике она обнулится.
Столкнулся с такой проблемой.
Нужно инициализировать одномерный массив типа double на 3000 значений цены bid .Все значения разные и идут не по порядку.
Вручную забивать через запятую каждое значение - не реально.
Пробовал через excel , но в нем если на место плавающей запятой поставить точку, excel не читает числа,чтобы поставить между ними запятую.
Подскажите пожалуйста оптимальный вариант.
Написал я простой эксперт, который возвращает 3 переменные и передаёт их в start().
Далее на каждом тике должны эти данные (тип объекта, цена1 и цена2) возвращаться.
Далее я в тестере запускаю этот эксперт в режиме визуализации и рисую рукой линию в на графике. Цены отрисовки и тип объекты, который я получил в функции IsObjectFound() не возвращаются верные. Вот вывод журнала:
Линия то нарисована рукой, а значит у неё есть тип и другие параметры:
Почему не возвращаются требуемые параметры?
Столкнулся с такой проблемой.
Нужно инициализировать одномерный массив типа double на 3000 значений цены bid .Все значения разные и идут не по порядку.
Вручную забивать через запятую каждое значение - не реально.
Пробовал через excel , но в нем если на место плавающей запятой поставить точку, excel не читает числа,чтобы поставить между ними запятую.
Подскажите пожалуйста оптимальный вариант.
Эксель может прочитать, покажите подробнее как делали
Написал я простой эксперт, который возвращает 3 переменные и передаёт их в start().
Далее на каждом тике должны эти данные (тип объекта, цена1 и цена2) возвращаться.
Далее я в тестере запускаю этот эксперт в режиме визуализации и рисую рукой линию в на графике. Цены отрисовки и тип объекты, который я получил в функции IsObjectFound() не возвращаются верные. Вот вывод журнала:
Линия то нарисована рукой, а значит у неё есть тип и другие параметры:
Почему не возвращаются требуемые параметры?
Надо
objName без кавычек. Это имя переменной (идентификатор в тексте программы), в которой содержится имя объекта (строка)
Надо
objName без кавычек. Это имя переменной (идентификатор в тексте программы), в которой содержится имя объекта (строка)
Кстати, а документация думает иначе. Вот я и попал в заблуждение.
Эксель может прочитать, покажите подробнее как делали
В строке 100 значений с запятой после первого знака(т.е. цена)
Выделяю строку
Главная - найти и заменить
Меняю все запятые на точки - успешно.
Теперь между значениями нужно поставить запятые
Выбираю формат ячеек
Все форматы
В активном поле в котором отображается формат чисел моей строки - в конце ставлю запятую
Эксель говорит,что не в состоянии обработать введенный мною формат.
Кстати, а документация думает иначе. Вот я и попал в заблуждение.