Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 456
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дааа, точно =D ))) Уже прикрепил.)))
Все эти параметры должны быть перечислены через запятую в iCustom() после названия индикатора, а после них ещё два параметра: номер буфера и номер бара, с которого берутся данные. Т.е.:
iCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 8, 14, 6, 6, 2, true, false, номер_буфера, номер_бара).
Все перечисленные значения можно задать внешними переменными советника и вписывать имена этих переменных в iCustom() вместо жестко заданных величин.
Не подскажите почему:
double d = 0.07;
d = NormalizeDouble(d,2);
в обоих случаях d== 0.07000000000000001
как оставить 2 знака после запятой?
Не подскажите почему:
double d = 0.07;
d = NormalizeDouble(d,2);
в обоих случаях d== 0.07000000000000001
как оставить 2 знака после запятой?
Нужно иметь в виду, что нормализованное число при выводе в Журнал с помощью Print() может содержать большее количество знаков после запятой, чем вы ожидаете. Например,
выдаст в терминале:
То есть для печати вывод лишних значений не есть проблема.
Нужно иметь в виду, что нормализованное число при выводе в Журнал с помощью Print() может содержать большее количество знаков после запятой, чем вы ожидаете. Например,
выдаст в терминале:
То есть для печати вывод лишних значений не есть проблема.
Спасибо, просто при попытке открыть позицию лотом 0.07 выдает ошибку (думал что дело в этом), видимо дело в чем то другом, буду дальше разбираться.
добрый вечер
объявил динамический массив
double all_order[][10];
в OnInit переопределил
ArrayResize(all_order, 20);
в функции заношу данные
void OR_spisok(double a0, double a1, double a2, double a3, double a4, double a5)
{
int a10=int(a0);
all_order[a10][0]=a0;
all_order[a10][1]=a1;
all_order[a10][2]=a2;
all_order[a10][3]=a3;
all_order[a10][4]=a4;
all_order[a10][5]=a5;
}
три строки работает нормально, на 4 клинит
2015.10.09 20:13:47.908 3102 EURUSD,H1: array out of range in '3102.mq4' (393,10)
393, 10 это как раз:
all_order[a10][0]=a0;
в чем ошибка?
Убрал строку #property strict
скрипт работает, без этой строки могу продолжить работу?
добрый вечер
объявил динамический массив
Убрал строку #property strict
скрипт работает, без этой строки могу продолжить работу?
Все эти параметры должны быть перечислены через запятую в iCustom() после названия индикатора, а после них ещё два параметра: номер буфера и номер бара, с которого берутся данные. Т.е.:
iCustom(Symbol(), Period(), "_MTF_ADX3", 0, 500, 6, 8, 14, 6, 6, 2, true, false, номер_буфера, номер_бара).
Все перечисленные значения можно задать внешними переменными советника и вписывать имена этих переменных в iCustom() вместо жестко заданных величин.
Спасибо за ответ. Но дело в том, что я так и делал сперва, но когда получал неверные значения, решил удалить параметры из iCustom, чтобы советник использовал стандартные параметры индикатора. Но в обоих случаях, советник получает неверные значения. То есть на пример Алерт выдает значения Синий линии 30,32362 а когда я смотрю на графике индикатора он в том же месте имеет значение 22,3320. И так же с другими линиями.
Покажите код, в котором вы берёте данные с индикатора.
Код был большой. Но я чтобы узнать в чем проблема что советник не работает по правилам срезал эту часть в отдельную и стал тестировать.
double Ind_Blue=iCustom(NULL, 0, "_MTF_ADX3",1,0);
double Ind_Red=iCustom(NULL, 0, "_MTF_ADX3",2,0);
Alert(" Ind_Blue= " ,Ind_Blue , " Ind_Red= " ,Ind_Red);
Прикрепляю также файл советника. Не хочу тратить ваше время, но ни как не могу найти в чем проблема.
И еще похожий индикатор с такой же проблемой (Adx mtf). К нему есть mq4 файл. Но в коде нету проблем кажется.