Andrei-1: Добрый день. Второй день бьюсь на запусками внешних файлов. Подскажите что не так.
//+------------------------------------------------------------------+//| Функция получает хэндл графика |//+------------------------------------------------------------------+int ChartWindowsHandle(long chart_ID)
{
//--- подготовим переменную для получения значения свойстваlong result=-1;
//--- сбросим значение ошибкиResetLastError();
//--- получим значение свойстваif(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result))
{
//--- выведем сообщение об ошибке в журнал "Эксперты"Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- вернем значение свойства графикаreturn((int)result);
}
Но только это будет получение хендла графика. А сам график содержится в окне более высокого класса (родительское окно). В ShellExecuteA нужно подставлять хендл родительского окна.
Посмотрите скрипт Transparent MetaTrader 5: в нем как раз есть функции получения хэндла терминала, через ChartID().
Приветствую всех! В MQL4 есть хорошая функция - Barshift. К сожалению, в MQL5 она отсутствует. Как вариант замены этой функции, можно копировать данные таймсерии с начальной даты (для которой ищется смещение) и смотреть количество скопированных элементов. Однако если надо обработать много разных дат, то загружать комп постоянным многократным копированием таймсерии как-то не хочется. Само-собой напрашивается вариант поиска нужных значений с помощью перебора внутри массива. И тут плавно подходим к вопросу. :) Покопавшись в документации, обнаружил только одну стандартную функцию, которая ищет значение в массиве: ArrayBSearch. Но она не работает с массивами, содержащими данные типа datetime. Существует ли стандартная функция для поиска по дате внутри массива типа datetime? Или возможно использовать какое-то преобразование данных?
BlackTomcat: Приветствую всех! В MQL4 есть хорошая функция - Barshift. К сожалению, в MQL5 она отсутствует. Как вариант замены этой функции, можно копировать данные таймсерии с начальной даты (для которой ищется смещение) и смотреть количество скопированных элементов. Однако если надо обработать много разных дат, то загружать комп постоянным многократным копированием таймсерии как-то не хочется. Само-собой напрашивается вариант поиска нужных значений с помощью перебора внутри массива. И тут плавно подходим к вопросу. :) Покопавшись в документации, обнаружил только одну стандартную функцию, которая ищет значение в массиве: ArrayBSearch. Но она не работает с массивами, содержащими данные типа datetime. Существует ли стандартная функция для поиска по дате внутри массива типа datetime? Или возможно использовать какое-то преобразование данных?
А есть ли способ дополнять файл (особенно csv) через FileOpen без перезаписи? В смысле что FileOpen(name,FILE_CSV|FILE_WRITE|...) просто пересоздает чистый файл, а не открывает существующий в случае, если он уже был. С текстовым вроде удалось разобраться, хоть и не особо элегантным способом: просто прочитывать его предварительно в переменную и добавлять к новой записи. Вот только csv подобный фокус не прокатывает...
Всем привет и доброго времени суток!!!Сегодня пытался заработать на новостях по GBP,выставил два отложеных ордера buy stop и sell stop,стоп лосс выставил по 200 пунктов,тейк профит по 100 пунктов.После выхода новостей цена пошла строго вверх,но ордер,который buy stop закрылся с результатом -0,34$ хотя цена шла строго вверх на 500 пуктов.Подскажите новичку что это может быть и с чем это едят!?Кстати это уже не в первый раз,а раньше все было нормально.
Вот какой код:
//--- Для работы с брокерами, использующими 3-х и 5-ти значные котировки,}
Кто что подскажет
Всем привет!!! Я начинающий. Хочу спросить: при компиляции советника в ошибках выдается:'StopLoss' - declaration without type.
Всем привет!!! Я начинающий. Хочу спросить: при компиляции советника в ошибках выдается:'StopLoss' - declaration without type.
Вот какой код:
//--- Для работы с брокерами, использующими 3-х и 5-ти значные котировки,}
Кто что подскажет
так лучше должно быть
Добрый день. Второй день бьюсь на запусками внешних файлов. Подскажите что не так.
Но только это будет получение хендла графика. А сам график содержится в окне более высокого класса (родительское окно). В ShellExecuteA нужно подставлять хендл родительского окна.
Посмотрите скрипт Transparent MetaTrader 5: в нем как раз есть функции получения хэндла терминала, через ChartID().
В MQL4 есть хорошая функция - Barshift. К сожалению, в MQL5 она отсутствует. Как вариант замены этой функции, можно копировать данные таймсерии с начальной даты (для которой ищется смещение) и смотреть количество скопированных элементов. Однако если надо обработать много разных дат, то загружать комп постоянным многократным копированием таймсерии как-то не хочется. Само-собой напрашивается вариант поиска нужных значений с помощью перебора внутри массива. И тут плавно подходим к вопросу. :) Покопавшись в документации, обнаружил только одну стандартную функцию, которая ищет значение в массиве: ArrayBSearch. Но она не работает с массивами, содержащими данные типа datetime. Существует ли стандартная функция для поиска по дате внутри массива типа datetime? Или возможно использовать какое-то преобразование данных?
Приветствую всех!
В MQL4 есть хорошая функция - Barshift. К сожалению, в MQL5 она отсутствует. Как вариант замены этой функции, можно копировать данные таймсерии с начальной даты (для которой ищется смещение) и смотреть количество скопированных элементов. Однако если надо обработать много разных дат, то загружать комп постоянным многократным копированием таймсерии как-то не хочется. Само-собой напрашивается вариант поиска нужных значений с помощью перебора внутри массива. И тут плавно подходим к вопросу. :) Покопавшись в документации, обнаружил только одну стандартную функцию, которая ищет значение в массиве: ArrayBSearch. Но она не работает с массивами, содержащими данные типа datetime. Существует ли стандартная функция для поиска по дате внутри массива типа datetime? Или возможно использовать какое-то преобразование данных?