Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что хотелось бы увидеть в следующих релизах:
1. Что сейчас мешает?
2. В MQL5 советники будут иметь возможность обрабатывать события окна (ЕМНИП).
1. Что сейчас мешает?
Ну если Вы знаете как, буду очень признателен, если поделитесь этим умением/знанием.
2. В MQL5 советники будут иметь возможность обрабатывать события окна (ЕМНИП).
Обработчик события ChartEvent будет доступен только в экспертах, кстати... Довольно странная дискриминация )) Имхо в индикаторах эта потребность ничуть не меньше (в экспертах, по мне, это как раз нафиг не нужно).
Ну если Вы знаете как, буду очень признателен, если поделитесь этим умением/знанием.
Не как два пальца об асвальт, но можно. Подключить длл, расчеты вызывать в новом потоке -- здесь WinAPI поможет, окончание по таймеру или коллбэку.
Обработчик события ChartEvent будет доступен только в экспертах, кстати... Довольно странная дискриминация ))
Мне тоже не нравится. Но сейчас индюки не привязаны к графику.
Не как два пальца об асвальт, но можно. Подключить длл, расчеты вызывать в новом потоке -- здесь WinAPI поможет, окончание по таймеру или коллбэку.
Я думал о варианте c DLL, но мне не совсем понятно как из длл получить КОРРЕКТНО доступ к тайм-сериям, плюс к еще к значениям более чем 10 различных индикаторов, и все это на приличную глубину по истории. А если учесть, что время обсчета занимает более минуты (работаю на минутках), то совершенно непонятно, куда будут ссылаться указатели DLL после добавления нового бара в терминале. А еще ведь нужно вернуть пару десятков рассчитанных параметров, а где-то еще и всякой графики накидать на ценовой ряд. Нетривиально, в общем, получается...
Посмотрев на все это и прикинув, сколько времени у меня уйдет на эксперименты и различные проверки и отладку, я написал тайм-кластерную обработку в MQL... Это работает, но... Некрасиво это. А душа то просит! ))) Да и на дворе уже 21 век... А хочется же соответствовать эпохе ))
Предлагаю уточнить (определить) понятие "пункт".
Пункт - это 5я значащая цифра: 1.2345.
Если котировка представлена ещё одним разрядом (1.23456) и спред = 0.00018, то спред в пунктах составляет 1.8 п, а не 18 п.
Это позволит внсти единообразие в терминологию и избегать путаницы.
Предлагаю уточнить (определить) понятие "пункт".
Пункт - это 5я значащая цифра: 1.2345.
Если котировка представлена ещё одним разрядом (1.23456) и спред = 0.00018, то спред в пунктах составляет 1.8 п, а не 18 п.
Это позволит внсти единообразие в терминологию и избегать путаницы.
Совершенно верно - брокеры на своих сайтах пишут "spread 1.8", а не 18 - уж они то точно знают что делают :)
Я пока не представляю, как мне сделать индикатор с объектами да еще без знания количества измененных баров
Вижу есть функция printf
а как было бы здорово получить еще sprintf
Я пока не представляю, как мне сделать индикатор с объектами да еще без знания количества измененных баров
В справке по MQL5 указано:
int OnCalculate (const int rates_total, // размер входных таймсерий
const int prev_calculated, // обработано баров на предыдущем вызове
const datetime& time[], // Time
const double& open[], // Open
const double& high[], // High
const double& low[], // Low
const double& close[], // Close
const long& tick_volume[], // Tick Volume
const long& volume[], // Real Volume
const int& spread[] // Spread
);
Необходимо отметить связь между значением, возвращаемым функцией OnCalculate() и вторым входным параметром prev_calculated. Параметр prev_calculated при вызове функции содержит значение, которое вернула функция OnCalculate() на предыдущем вызове. Это позволяет реализовать экономные алгоритмы расчета пользовательского индикатора с тем, чтобы избежать повторных расчетов для тех баров, которые не изменились с предыдущего запуска этой функции.
Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции. Если с момента последнего вызова функции OnCalculate() ценовые данные были изменены (подкачана более глубокая история или были заполнены пропуски истории), то значение входного параметра prev_calculated будет установлено в нулевое значение самим терминалом.