Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1052
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Примечание
Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить. В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды. Функция Sleep() в тестере стратегий не вызывает никаких задержек.
Какие все умные - прямо страшно. Только читать не умеют: я ведь и писал, что в тестере слип проигнорирован (что понятно), но позиции-то открыты все, сколько указал. А на демо слип не работает, и позиция открывается только одна, да и та сразу закрывается. Вот эту проблему я и не могу решить.
А где ваш код?
Может тут помогут?
Какие все умные - прямо страшно. Только читать не умеют: я ведь и писал, что в тестере слип проигнорирован (что понятно), но позиции-то открыты все, сколько указал. А на демо слип не работает, и позиция открывается только одна, да и та сразу закрывается. Вот эту проблему я и не могу решить.
Видимо ты уже не первый раз хамишь потому и не отвечает никто. Хотя тебе и на второй вопрос уже дали ответ.
Но ты смог ответить только так
Понятно, что бид состарился, но я надеялся, что данная конструкция позволит открыть несколько позиций на текущем баре с разными ценами открытия бид. И в тестере это отлично проходит, а на демо открывает одну позу и сразу закрывает. как избежать, не понятно.
А на что надеялся? Решение было предложено. Читай внимательно.
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Sleep(10000);
poz = OrderSend(Symbol(),OP_SELL,lot,Bid,slip,0,0,NULL,magic,Red);
Да, для определения количества знаков после запятой. Это надо для нормализации значения лота если лот определяется какой-либо формулой и результат может иметь больше знаков после запятой чем допустимо. В некоторых случаях можно тупо ставить двойку, но тогда можно нарваться на ошибку, поэтому лучше определить это программно.
Можно и по-другому. Здесь есть уже два варианта решения задачи, есть вариант перевести число в строку, определить длину строки, найти индекс символа "точка" и разница длинны строки и индекса точки будет значность дробной части числа. И на форуме mql5 выложено несколько вариантов, какой-то подлиньше, какой-то попроще.
Вот ещё один мой вариант.
Эта функция определяет количество знаков после запятой абсолютно любого числа.
Алгоритм до безобразия прост, считаем сколько раз остаток от деления на 1 будет больше нуля.
То, что мой способ лучше я не говорил. Каждый программист пишет так как ему видится решение задачи.
Число типа double, даже если оно не имеет значащих цифр в дробной части имеет вид, например 2.0 что не совсем корректно и для того чтобы получить нормальное целое число его приводят к типу int неявно.
Огромное спасибо.
А зачем (int) ставится перед выражением?
Огромное спасибо.
А зачем (int) ставится перед выражением?
Можно в эксперте вызвать открытие графика из Open Offline Chart по названию графика? Я смотрел ChartOpen() но там по названию не получится.