Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 125

 
MosheDayan:
порядка 25 человек. Например: 14.02.2017 EURUSD 1,0630

Чисто с помощью mql я, к сожалению, тоже не вижу решения этой задачи.

Только создать шаблон письма с именами всех друзей и по почте... 

 
MosheDayan:
порядка 25 человек. Например: 14.02.2017 EURUSD 1,0630
А обязательно именно уровни передавать? Не лучше ли сигнал создать и транслировать?  
 

Здравствуйте.

Убил весь вечер, но так и не смог понять в чем причина, просьба помочь. Индикатор должен выводить данные на экран в виде текстовой метки, но при запуске терминала этого не происходит, метка появляется только когда меняешь тайм-фрейм, далее работает нормально по тикам. 

Пример максимально упрощен, но суть не меняется:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

int b=1000/a;      // далее выводим b на экран

Методом исключения пришел к выводу, что работает это только если деление заменить на любую другую операцию, либо переменной "а" присвоить любую константу.

Пробовал применять ChartRedraw(), играл с типами integer, double, пробовал MathRound() и много еще всего, ничего не помогло.

Странно все это. 

 
Fam:

Здравствуйте.

Убил весь вечер, но так и не смог понять в чем причина, просьба помочь. Индикатор должен выводить данные на экран в виде текстовой метки, но при запуске терминала этого не происходит, метка появляется только когда меняешь тайм-фрейм, далее работает нормально по тикам. 

Пример максимально упрощен, но суть не меняется:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

int b=1000/a;      // далее выводим b на экран

Методом исключения пришел к выводу, что работает это только если деление заменить на любую другую операцию, либо переменной "а" присвоить любую константу.

Пробовал применять ChartRedraw(), играл с типами integer, double, пробовал MathRound() и много еще всего, ничего не помогло.

Странно все это. 

Ну так в чём проблема переделать вместо деления умножение? 

int b=a*0,001; 

И ещё важно, где именно в коде расчёты проводить. Надеюсь, это не в ините или вообще на глобальном уровне? А то и на ноль поделить можно ;)

 
Fam:

Здравствуйте.

Убил весь вечер, но так и не смог понять в чем причина, просьба помочь. Индикатор должен выводить данные на экран в виде текстовой метки, но при запуске терминала этого не происходит, метка появляется только когда меняешь тайм-фрейм, далее работает нормально по тикам. 

Пример максимально упрощен, но суть не меняется:

int a=AccountInfoInteger(ACCOUNT_LEVERAGE);

int b=1000/a;      // далее выводим b на экран

Методом исключения пришел к выводу, что работает это только если деление заменить на любую другую операцию, либо переменной "а" присвоить любую константу.

Пробовал применять ChartRedraw(), играл с типами integer, double, пробовал MathRound() и много еще всего, ничего не помогло.

Странно все это. 

А если посмотреть в журнал, то там можно найти критическую ошибку "деление на 0"
 
Vitalie Postolache:

Ну так в чём проблема переделать вместо деления умножение? 

int b=a*0,001; 

И ещё важно, где именно в коде расчёты проводить. Надеюсь, это не в ините или вообще на глобальном уровне? А то и на ноль поделить можно ;)

Так не получится, на самом деле вместо 1000 там переменная. Расчеты в OnCalculate.
 
Vitalie Postolache:
А обязательно именно уровни передавать? Не лучше ли сигнал создать и транслировать?  
Я им и по Whatsapp в группу рассылаю. Просто хотел совсем облегчить им жизнь...чтоб открыли график, а там уже мой уровень находится. Можно поподробней о сигнале, он посредством МТ или сторонний?
 
Alexey Viktorov:
А если посмотреть в журнал, то там можно найти критическую ошибку "деление на 0"

В журнале действительно: zero divide. Сейчас буду проверять.

Не пойму, откуда берется 0? При инициализации нет данных из AccountInfoInteger(ACCOUNT_LEVERAGE)? И почему на следующих тиках метка не появляется?

 
MosheDayan:
Я им и по Whatsapp в группу рассылаю. Просто хотел совсем облегчить им жизнь...чтоб открыли график, а там уже мой уровень находится. Можно поподробней о сигнале, он посредством МТ или сторонний?
Он общедоступный:)
 
Fam:

В журнале действительно: zero divide. Сейчас буду проверять.

Не пойму, откуда берется 0? При инициализации нет данных из AccountInfoInteger(ACCOUNT_LEVERAGE)? И почему на следующих тиках метка не появляется?

Потому, что программа получила критическую ошибку и дальше не выполняется. 

Может некоторые конторы не передают плечо? Хотя не встречал на форексе такое... 

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