Скачать MetaTrader 5

SymbolInfoDouble и передача второго аргумента в переменной

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Проблемы с кодом? Загляни в документацию!
Risk
755
Risk 2013.03.04 22:28 

Собственно 

string A;

int N;

SymbolInfoDouble(A, N);

- почему такая конструкция не компилируется из-за того что второй аргумент переменная ?

George Merts
3593
George Merts 2013.03.05 05:33  
Risk:

Собственно 

string A;

int N;

SymbolInfoDouble(A, N);

- почему такая конструкция не компилируется из-за того что второй аргумент переменная ?

Там ошибка в хелпе.

Описание такое:

double SymbolInfoDouble

(
string name, // символ
int prop_id // идентификатор свойства
);

А должно быть такое:

double SymbolInfoDouble

(
string name, // символ
ENUM_SYMBOL_INFO_DOUBLE prop_id// идентификатор свойства
);

 

Собственно, в хелпе уже есть признаки ошибки, в свойство вроде как типа int предлагается передавать значения перечисления ENUM_SYMBOL_INFO_DOUBLE.

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
MetaQuotes Software Corp.
Модератор
181016
MetaQuotes Software Corp. 2013.03.05 07:31  

Спасибо за сообщение. Все методы SymbolInfoXXX() поправили, справка будет обновлена.
Risk
755
Risk 2013.03.05 07:34  

Предлагаю поправить функцию, а не справку. Какие проблемы изменить на double SymbolInfoDouble(string, int) ?

 

Rashid Umarov
Админ
11812
Rashid Umarov 2013.03.05 07:44  
Risk:

Предлагаю поправить функцию, а не справку. Какие проблемы изменить на double SymbolInfoDouble(string, int) ?

Изначально так и было, но потом компилятор сделали более строгим - и это правильно.
Risk
755
Risk 2013.03.05 07:58  
Rosh:
Изначально так и было, но потом компилятор сделали более строгим - и это правильно.

Да что здесь криминального ? что может быть проще функции double F(string, int) ?

А в существующем виде эту функцию в цикле по переборе параметров ENUM_SYMBOL_INFO_DOUBLE вообще теперь вызвать невозможно.

Как мне вытащить ASK и BID. У меня такая конструкция

int X[2] = {SYMBOL_ASK, SYMBOL_BID};

for(int i =0 ; i < 2 ; i++) double y =   SymbolInfoDouble(Symbol(), X[i]); 

 

Sergey Gridnev
4951
Sergey Gridnev 2013.03.05 08:32  
Rosh:
Изначально так и было, но потом компилятор сделали более строгим - и это правильно.
Очень специфичное у вас представление о строгости.
o_o
Модератор
23688
o_o 2013.03.05 08:35  

Risk:

Как мне вытащить ASK и BID. У меня такая конструкция
нет ничего невозможного. и эта конструкция вполне нормально работает.
o_o
Модератор
23688
o_o 2013.03.05 08:36  
Contender:
Очень специфичное у вас представление о строгости.
пойдите пообвиняйте майкрософт. у них еще строже.
Risk
755
Risk 2013.03.05 09:31  
sergeev:
нет ничего невозможного. и эта конструкция вполне нормально работает.
Такая конструкция как раз не работает, ибо она даже не компилируется. 
Risk
755
Risk 2013.03.05 09:37  
sergeev:
пойдите пообвиняйте майкрософт. у них еще строже.
Аргумент на уровне детского сада.
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий