Ошибки, баги, вопросы - страница 1801
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Просто безнравственно предъявлять претензию к демо-серверам, тем более к тем, за которыми не стоит брокер :-)
А MQ сервер должен быть неким "эталоном", на котором как раз можно было бы и нужно обкатывать свои технологии разработчикам алго.
Множественный вызов SymbolSelect вызывает зависание терминала.
{
bool Res = false;
for (int i = SymbolsTotal(MarketWatch) - 1; (i >= 0) && (!Res); i--)
Res = (Symb == SymbolName(i, MarketWatch));
return(Res);
}
bool SymbolOnOff( const string Symb )
{
return(SymbolSelect(Symb, !SymbolExist(Symb)));
}
void OnStart()
{
for (int i = SymbolsTotal(false) - 1; i >= 0; i--)
{
const string Symb = SymbolName(i, false);
if (SymbolOnOff(Symb))
SymbolOnOff(Symb);
}
}
Не увидел в Справке упоминания, что если символ отсутствует в Обзоре рынка, то данные по нему не получить. Методом тыка пришлось.
Возвращаемое значение
Значение типа double. В случае неудачного выполнения информацию об ошибкe можно получить с помощью функции GetLastError():
Ну как же. Есть упоминание
Спасибо, косвенно упоминается.
Скажите, если через SymbolSelect добавляю символ в Обзор рынка, то как понять, что Bid/Ask по символу стали доступны - SymbolIsSynchronized?
SymbolIsSynchronized - вроде, дорого для этих целей, т.к. там поднимается еще вопрос синхронизированности M1-истории.
ЗЫ SymbolIsSynchronized на некоторых символах никогда не становится true.
Спасибо, косвенно упоминается.
Скажите, если через SymbolSelect добавляю символ в Обзор рынка, то как понять, что Bid/Ask по символу стали доступны - SymbolIsSynchronized?
SymbolIsSynchronized - вроде, дорого для этих целей, т.к. там поднимается еще вопрос синхронизированности M1-истории.
ЗЫ SymbolIsSynchronized на некоторых символах никогда не становится true.
Если это делается из индикатора, то будет отдано ровно то, что есть, но с запросом в исторический центр о подкачке. Тогда это может оказаться мучительным.
Если это делается из эксперта или скрипта, то внутри функции может быть сделано несколько циклов запросов с ожиданием ответа, и как правило после такого вызова история будет засинхронизирована
Скажите, если через SymbolSelect добавляю символ в Обзор рынка, то как понять, что Bid/Ask по символу стали доступны?
Сразу после SymbolSelect(true) запрашиваю цены, а они нулевые. При этом _LastError == 0, SymbolInfoTick == true.
Как понять, что цены по новому для Обзора рынка символу доставлены до Marketwatch?
Перед тем, как проверять флаг синхронизированности истории, надо сначала вызвать CopyRates(Symbol(),PERIOD_M1,0,1000,rates)
Если это делается из индикатора, то будет отдано ровно то, что есть, но с запросом в исторический центр о подкачке. Тогда это может оказаться мучительным.
Если это делается из эксперта или скрипта, то внутри функции может быть сделано несколько циклов запросов с ожиданием ответа, и как правило после такого вызова история будет засинхронизирована