Спрашивайте! - страница 54

 

возможное решение для 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 нужно сделать все заново

 
iscuba11:
Как мне ограничить количество знаков после запятой, которое показывает на графике оператор комментария. Сейчас он показывает результат переменной как .00347892, а я хочу, чтобы он показывал только .0035 (округленный до следующего числа)?
Благодарю за помощь! Дэйв

функция IndicatorDigits

 

Прежде всего, я хотел бы поблагодарить всех вас за помощь. Я полагаю, что теперь я могу запустить свой новый советник для тестирования.

У меня все еще есть вопрос по десятичным знакам.

Комментарий генерируется советником, а не индикатором. Функция indicatordigits, как я полагаю, используется в самом индикаторе, а не в советнике. Не существует ли простого округления до x знаков переменной, которое я мог бы использовать. Зачем они делают этот язык таким сложным. Даже базовый язык мог бы это сделать!

Как всегда, приветствуется обратная связь, знания и мудрость. Пожалуйста, помогите, если можете.

Спасибо большое!

 

Я наконец-то правильно прочитал ваше сообщение, попробуйте Comment(DoubleToStr(doubleVariable, 4));

 

Получилось! Теперь нужно подправить и протестировать. Вы все благословили меня - спасибо!

Мир и любовь всем, во Имя Иисуса! Преподобный Дэйв
 

Нужна помощь, пожалуйста!

if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);

Я пытаюсь сделать так, чтобы советник автоматически изменял уровень OpenTriggerLevel по умолчанию с 4 знаков после запятой на 2, когда пользователь выбирает 2 (currency_decimal) из 4 в настройках советника. Такое изменение должно происходить на такой валюте, как USDJPY, которая имеет 2 знака после запятой.

Очевидно, компилятору не нравится второй знак ' = ' в приведенном выше утверждении.

С неизменной благодарностью, заранее спасибо за вашу помощь!

Дэйв
 

В MQL4 есть предопределенная переменная Digits, которая соответствует количеству десятичных знаков пары.

DoubleToStr(OpenTriggerLevel, Digits);

код правильный, возможно, ошибка в определении переменной.

 
asmdev:
В MQL4 есть предопределенная переменная Digits, которая соответствует количеству десятичных знаков пары.

DoubleToStr(OpenTriggerLevel, Digits);

код правильный, возможно, ошибка в определении переменной.

Я попробовал это, но он по-прежнему отображает OpenTriggerLevel как .0004 против .04:

if(currency_decimal == 2) DoubleToStr(OpenTriggerLevel,2);

Все еще запутался?

 
iscuba11:
if(currency_decimal == 2) OpenTriggerLevel = DoubleToStr(OpenTriggerLevel,2);[/PHP]

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!

Dave

Проблема этого утверждения в том, что переменная 'OpenTriggerLevel' имеет тип 'double', в то время как функция возвращает 'string'. Таким образом, хотя код синтаксически правильный, он семантически неправильный, и я полагаю, что именно поэтому компилятор жалуется.

Если вы хотите перенести строку в переменную, вам понадобится переменная для этого. В противном случае вы можете использовать функцию 'DoubleToStr' в аргументе 'Comment', чтобы заменить место, где сейчас написано 'OpenTriggerLevel'. Там может быть написано

[PHP]DoubleToStr( OpenTriggerLevel, currency_decimal )

и вам вообще не понадобится оператор 'if ...'.

 

кто-нибудь знает, как получить общую сумму каждой покупки, продажи, buystop, sellstop, buylimit и sellstop с помощью скрипта? спасибо.

Причина обращения: