Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А где нынче 5 справку раздают?
Рашид для этого специальную тему создал.
Я знаю что по логике вещей и в справке это int. Речь как раз и идет о том что некорректно работает команда...
В пятой версии справки тоже на этот счет ничего не менялось
На 87 странице я уже выкладывал пример получения информации о спреде.
На 87 странице я уже выкладывал пример получения информации о спреде.
Рашид здравствуйте!
Если не сложно скажите какими средствами можно запросить историю по инструменту, проконтролировать её получение и чем анализировать окончание расчета индикатора на инструменте.
Хочется самому поправить алгоритм. мультивалютного говоруна.
При компиляции Вашего кода тоже выдаются ошибки "conversion possible loss of data test.mq5"
на строки
Spread=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);
Spread=(Ask-Bid)/Point();
Рашид здравствуй!
Если не сложно скажи какими средствами можно запросить историю по инструменту, проконтролировать её получение и чем анализировать окончание расчета индикатора на инструменте.
Хочется самому поправить алгоритм. мультивалютного говоруна.
Пока можете воспользоваться этим примером для подкачки истории по инструменту, скоро добавим в справку более разевернутый вариант в раздел "Справочник MQL5 / Доступ к таймсериям и индикаторам "
При компиляции Вашего кода тоже выдаются ошибки "conversion possible loss of data test.mq5"
на строки
Spread=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);
Spread=(Ask-Bid)/Point();
Вы можете избавиться от этих предупреждений компилятора, если сделаете приведение типов (цветом выделены измененные места)
Только тут возникла небольшая неувязочка, заключающаяся в том, что вначале числовые значения соответствуют количеству секунд в тайфрейме (как это было в MQL4), а начиная с PERIOD_H1 такой порядок меняется и логика возвращаемого значения не ясна.
Хотелось бы привести возвращаемые числовые значения в соответствии со стандартом MQL4, т.е. возвращается именно количество секунд входящих в тот или иной ТФ.
Используйте функцию PeriodSeconds() в разделе "Справочник MQL5 / Общие функции / PeriodSeconds ":
PeriodSeconds
Возвращает количество секунд в периоде.
int PeriodSeconds(
ENUM_TIMEFRAMES period=PERIOD_CURRENT // период графика
);
Параметры
period=PERIOD_CURRENT
[in] Значение периода графика из перечисления ENUM_TIMEFRAMES. Если параметр не указан, то возвращается количество секунд текущего периода графика, на котором запущена программа.
Возвращаемое значение
Количество секунд в указанном периоде.
Пока можете воспользоваться этим примером для подкачки истории по инструменту, скоро добавим в справку более разевернутый вариант в раздел "Справочник MQL5 / Доступ к таймсериям и индикаторам "
Спасибо!
Вы можете избавиться от этих предупреждений компилятора, если сделаете приведение типов (цветом выделены измененные места)
тогда нужно в справке поправить
SYMBOL_DIGITS
Количество знаков после запятой
int
SYMBOL_SPREAD
Размер спреда в пунктах
int
int->long
Все равно Спасибо!
:-)
Скажите пожалуйста какой оператор выдает состояние расчета индикатора.
Внутри самого индикатора есть такие переменные как rates_total, и prev_calculated, но во время вызова индикатора к примеру
int iMA(
string symbol, // имя символа
ENUM_TIMEFRAMES period, // период
int ma_period, // период усреднения
int ma_shift, // смещение индикатора по горизонтали
ENUM_MA_METHOD ma_method, // тип сглаживания
ENUM_APPLIED_PRICE applied_price // тип цены или handle
);
нет доступа к этим переменным.
тогда нужно в справке поправить
SYMBOL_DIGITS
Количество знаков после запятой
int
SYMBOL_SPREAD
Размер спреда в пунктах
int
int->long
Все равно Спасибо!
:-)
Скажите пожалуйста какой оператор выдает состояние расчета индикатора.
Внутри самого индикатора есть такие переменные как rates_total, и prev_calculated, но во время вызова индикатора к примеру
Если Вы встанете курсором на функцию OnCalculate() в редакторе и нажмете кнопку F1, то попадете на справку по этой функции, где явно написано:
Первый параметр rates_total содержит количество баров, доступных индикатору для расчета, и не превышает максимальное количество баров, доступных на графике. Это значение устанавливается в клиентском терминале в меню "Options" на закладке "Charts" - "Max bars in chart".
Необходимо отметить связь между значением, возвращаемым функцией OnCalculate() и вторым входным параметром prev_calculated. Параметр prev_calculated при вызове функции содержит значение, которое вернула функция OnCalculate() на предыдущем вызове. Это позволяет реализовать экономные алгоритмы расчета пользовательского индикатора с тем, чтобы избежать повторных расчетов для тех баров, которые не изменились с предыдущего запуска этой функции.
Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции. Если с момента последнего вызова функции OnCalculate() ценовые данные были изменены (подкачана более глубокая история или были заполнены пропуски истории), то значение входного параметра prev_calculated будет установлено в нулевое значение самим терминалом.
Примечание: если функция OnCalculate возвращает нулевое значение, то в окне DataWindow клиентского терминала значения индикатора не показываются.
Эти параметры просто передаются внутрь функции.
Проблема возникает для "пятизнака". Благо эта дурь не так сильно распространена.
И это одно из первых с чем столкнулся при знакомстве с мт5...
Путь решения ещё не окончательный, но видимо крайний:
Поразительно, но мне пришла в голову точно такая же мысль и код я использую в точности такой же)))