Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
возможное решение для 0 буфера:
int currentBar=0;
double lowestFG=iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0, currentBar);
double highestFG = lowestFG;
for(;currentBar<4; currentBar++) lowestFG=MathMin(lowestFG, iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0,currentBar));
for(currentBar=0;currentBar<4; currentBar++) highestFG =MathMax(highestFG , iCustom(NULL,0, "Forex-Grail Trade Indicator",period,PRICE_CLOSE,0,currentBar));
для буфера # 1 нужно сделать все заново
Как мне ограничить количество знаков после запятой, которое показывает на графике оператор комментария. Сейчас он показывает результат переменной как .00347892, а я хочу, чтобы он показывал только .0035 (округленный до следующего числа)?
функция IndicatorDigits
Прежде всего, я хотел бы поблагодарить всех вас за помощь. Я полагаю, что теперь я могу запустить свой новый советник для тестирования.
У меня все еще есть вопрос по десятичным знакам.
Комментарий генерируется советником, а не индикатором. Функция indicatordigits, как я полагаю, используется в самом индикаторе, а не в советнике. Не существует ли простого округления до x знаков переменной, которое я мог бы использовать. Зачем они делают этот язык таким сложным. Даже базовый язык мог бы это сделать!
Как всегда, приветствуется обратная связь, знания и мудрость. Пожалуйста, помогите, если можете.
Спасибо большое!
Я наконец-то правильно прочитал ваше сообщение, попробуйте Comment(DoubleToStr(doubleVariable, 4));
Получилось! Теперь нужно подправить и протестировать. Вы все благословили меня - спасибо!
Нужна помощь, пожалуйста!
Я пытаюсь сделать так, чтобы советник автоматически изменял уровень OpenTriggerLevel по умолчанию с 4 знаков после запятой на 2, когда пользователь выбирает 2 (currency_decimal) из 4 в настройках советника. Такое изменение должно происходить на такой валюте, как USDJPY, которая имеет 2 знака после запятой.
Очевидно, компилятору не нравится второй знак ' = ' в приведенном выше утверждении.
С неизменной благодарностью, заранее спасибо за вашу помощь!
В MQL4 есть предопределенная переменная Digits, которая соответствует количеству десятичных знаков пары.
DoubleToStr(OpenTriggerLevel, Digits);
код правильный, возможно, ошибка в определении переменной.
В MQL4 есть предопределенная переменная Digits, которая соответствует количеству десятичных знаков пары.
DoubleToStr(OpenTriggerLevel, Digits);
код правильный, возможно, ошибка в определении переменной.Я попробовал это, но он по-прежнему отображает OpenTriggerLevel как .0004 против .04:
Все еще запутался?
What I am attempting to do is have the EA automatically change the default OpenTriggerLevel from 4 decimal places to 2 when the user selects 2 (currency_decimal) from 4 in the EA setup. Such a change would have to take place on a currency like USDJPY which is 2 decimal places.
Evidently the compiler does not like the second ' = ' sign in the above statement.
With continued appreciation, Thanks in Advance for your input assistance!
Проблема этого утверждения в том, что переменная 'OpenTriggerLevel' имеет тип 'double', в то время как функция возвращает 'string'. Таким образом, хотя код синтаксически правильный, он семантически неправильный, и я полагаю, что именно поэтому компилятор жалуется.
Если вы хотите перенести строку в переменную, вам понадобится переменная для этого. В противном случае вы можете использовать функцию 'DoubleToStr' в аргументе 'Comment', чтобы заменить место, где сейчас написано 'OpenTriggerLevel'. Там может быть написано
[PHP]DoubleToStr( OpenTriggerLevel, currency_decimal )и вам вообще не понадобится оператор 'if ...'.
кто-нибудь знает, как получить общую сумму каждой покупки, продажи, buystop, sellstop, buylimit и sellstop с помощью скрипта? спасибо.