Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1051
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не понял, где там ответ. Имеется в виду вот это: "В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды."? Если так, то как убрать этот флаг?
Нет, если-бы ты дочитал до конца, то увидел-бы ответ на сопрос...
Примечание
Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить. В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды. Функция Sleep() в тестере стратегий не вызывает никаких задержек.
Для начала засуньте в конец индикатора вот это. Увидев на экране метку, сообразите как в нее вывести требуемое. Здесь советуют, а засовывает каждый сам.
int Число=25;
if(H==H1&&H1==H2)
{if(J == true) {ObjectCreate(PatternText[shift],
OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*5);
ObjectSetText(PatternText[shift], "pattern", 10, "Arial", Red);
downArrow[shift1] = High[shift1] + Range*0.5;}if(setalert == 0 && Alert == true) {pattern = "pattern";setalert = 1;}}
if(ObjectFind(0,"Text")<0) // Проверка наличия метки для вывода информации
{
ObjectCreate("Text", OBJ_LABEL, 0, 0, 0); // Создание
ObjectSet("Text", OBJPROP_CORNER, 1); // Правый верхний угол
ObjectSet("Text", OBJPROP_XDISTANCE, 10); //X
ObjectSet("Text", OBJPROP_YDISTANCE, 10); //Y
}
ObjectSetText("Text", string(Число), 14,"Arial",Black); // Вывод в метку
}
return(0);
}
Вопрос решается гораздо проще.
StringLen("tickEURUSD")
С ним конечно проще.... Возможно, тогда он отсутствовал. Или затерялся... В моем любимом TurboPascal точно отсутствует. Возведение в степень логарифмом делал.
Какое-то время после перехода на обновлённый mql4 в документации была ошибка. Нажимая на MathLog10 открывалась справка по MathLog
Я по этому поводу писал в сервисдеск, а они половину исправили, а половину так и оставили...
log(10) действительно не 1, а вот что в mql нет десятичного логарифма это ты меня удивил...
А это тогда что? https://docs.mql4.com/ru/math/mathlog10 хотя в тексте допущена ошибка.
Вопрос решается гораздо проще.
Отвечу сразу с последнего сообщения.
Что такое логарифмы я понимаю, я не понимал зачем в том коде это, но после Вашей с тем товарищем переписки понял, что это для определения кол-ва знаков после запятой, верно?
Неужели по другому этого не сделать? Зачем это в коде (int) ? Почему Ваш способ лучше, чем та строка, что я предоставил?))
огромное спасибо)
Отвечу сразу с последнего сообщения.
Что такое логарифмы я понимаю, я не понимал зачем в том коде это, но после Вашей с тем товарищем переписки понял, что это для определения кол-ва знаков после запятой, верно?
Неужели по другому этого не сделать? Зачем это в коде (int) ? Почему Ваш способ лучше, чем та строка, что я предоставил?))
огромное спасибо)
Да, для определения количества знаков после запятой. Это надо для нормализации значения лота если лот определяется какой-либо формулой и результат может иметь больше знаков после запятой чем допустимо. В некоторых случаях можно тупо ставить двойку, но тогда можно нарваться на ошибку, поэтому лучше определить это программно.
Можно и по-другому. Здесь есть уже два варианта решения задачи, есть вариант перевести число в строку, определить длину строки, найти индекс символа "точка" и разница длинны строки и индекса точки будет значность дробной части числа. И на форуме mql5 выложено несколько вариантов, какой-то подлиньше, какой-то попроще.
Вот ещё один мой вариант.
Эта функция определяет количество знаков после запятой абсолютно любого числа.
Алгоритм до безобразия прост, считаем сколько раз остаток от деления на 1 будет больше нуля.
То, что мой способ лучше я не говорил. Каждый программист пишет так как ему видится решение задачи.
Число типа double, даже если оно не имеет значащих цифр в дробной части имеет вид, например 2.0 что не совсем корректно и для того чтобы получить нормальное целое число его приводят к типу int неявно.
Примечание
Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить. В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды. Функция Sleep() в тестере стратегий не вызывает никаких задержек.
Какие все умные - прямо страшно. Только читать не умеют: я ведь и писал, что в тестере слип проигнорирован (что понятно), но позиции-то открыты все, сколько указал. А на демо слип не работает, и позиция открывается только одна, да и та сразу закрывается. Вот эту проблему я и не могу решить.