Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 669
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте коллеги! Подскажите пожалуйста вариант обработчика вот такой ошибки:
Спасибо.
Господа, как по быстрому узнать - на каком месте находится сигнал в рейтинге?
Это можно узнать только для своего сигнала - "Сигналы" -> "Мои сигналы" и в начале названия сигнала будут цифры - это и есть номер позиции в рейтинге витрины сигналов.
Господа, как по быстрому узнать - на каком месте находится сигнал в рейтинге?
Программно? Вот так
{
//--- запрашиваем общее количество сигналов в базе
int total=SignalBaseTotal();
//--- цикл по всем сигналам
for(int i=0;i<total;i++)
{
//--- выбираем сигнал для дальнейшей работы
if(SignalBaseSelect(i))
{
//--- получение свойств сигнала
long id =SignalBaseGetInteger(SIGNAL_BASE_ID); // id сигнала
long pips =SignalBaseGetInteger(SIGNAL_BASE_PIPS); // результат торговли в пипсах
long subscr=SignalBaseGetInteger(SIGNAL_BASE_SUBSCRIBERS); // количество подписчиков
string name =SignalBaseGetString(SIGNAL_BASE_NAME); // имя сигнала
double price =SignalBaseGetDouble(SIGNAL_BASE_PRICE); // цена подписки на сигнал
string curr =SignalBaseGetString(SIGNAL_BASE_CURRENCY); // валюта сигнала
long rating=SignalBaseGetInteger(SIGNAL_BASE_RATING); // рейтинг и есть
//--- выводим все прибыльные бесплатные сигналы с ненулевым количеством подписчиков
if(price==0.0 && pips>0 && subscr>0)
PrintFormat("id=%d, name=\"%s\", currency=%s, pips=%d, subscribers=%d",id,name,curr,pips,subscr);
}
else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
}
}
Программно? Вот так
{
//--- запрашиваем общее количество сигналов в базе
int total=SignalBaseTotal();
//--- цикл по всем сигналам
for(int i=0;i<total;i++)
{
//--- выбираем сигнал для дальнейшей работы
if(SignalBaseSelect(i))
{
//--- получение свойств сигнала
long id =SignalBaseGetInteger(SIGNAL_BASE_ID); // id сигнала
long pips =SignalBaseGetInteger(SIGNAL_BASE_PIPS); // результат торговли в пипсах
long subscr=SignalBaseGetInteger(SIGNAL_BASE_SUBSCRIBERS); // количество подписчиков
string name =SignalBaseGetString(SIGNAL_BASE_NAME); // имя сигнала
double price =SignalBaseGetDouble(SIGNAL_BASE_PRICE); // цена подписки на сигнал
string curr =SignalBaseGetString(SIGNAL_BASE_CURRENCY); // валюта сигнала
long rating=SignalBaseGetInteger(SIGNAL_BASE_RATING); // рейтинг и есть
//--- выводим все прибыльные бесплатные сигналы с ненулевым количеством подписчиков
if(price==0.0 && pips>0 && subscr>0)
PrintFormat("id=%d, name=\"%s\", currency=%s, pips=%d, subscribers=%d",id,name,curr,pips,subscr);
}
else PrintFormat("Ошибка выбора сигнала. Код ошибки=%d",GetLastError());
}
}
Ребята, осмелюсь спросить повторно, так как мой вопрос потерян среди сообщений
Есть вот такая конструкция, проходит по всем открытым графикам в терминале:
if(currChart == график тестера) continue; // Что сюда написать?
ObjectSetInteger(currChart,"Sync",OBJPROP_BGCOLOR,clrGreen);
}
Как выяснить, что график не основной, а открытый в режиме тестера и его пропустить?
Спасибо!
Что-то явно в свойствах нет. А если в режиме тестера что-то создавать на графике, например кнопку с хитрым именем и потом проверять ее наличие?
Что-то явно в свойствах нет. А если в режиме тестера что-то создавать на графике, например кнопку с хитрым именем и потом проверять ее наличие?
Нет, индикатор стоит на основном графике, а при тестировании открывается график тестируемой пары, и вот в этот момент индикатор понимает, что в терминал добавили ещё один график и пытается ним управлять. Но так-как это график с тестера, а не добавленный с обзора рынка, то ним управлять не нужно.
Как отсечь график с тестера без добавления на него чего либо?
Доброго времени суток.
Помогите решить проблему: мне нужно в роботе поставить защиту от переключений периода и смены инструмента в окне работы робота, чтобы запомнить стартовый инструмент и период, думаю создать глобальную переменную терминала в названии которого будет имя инструмента и период, а значение будет ID окна графика, но ID имеет тип лонг, а значение ГПТ тип double, пытался переводить из лонг в дубл, но терминал округляет две последние цифры, как это исправить?! Или как по другому управлять графиком, даже в случае перезагрузки терминала.
Спасибо.