Помогите, пожалуйста, с MarketInfo()

 

Никак не могу разобраться с MarketInfo().

Возвращаются округленные double значения.

Например:

double bid=MarketInfo(symbol,MODE_BID);

вернет: 1.1187, а

string bid=MarketInfo(symbol,MODE_BID); 

вернет корректно: 1.11856.

То же касается и MODE_POINT, если string то возвращает 0.00001, если double то 0....

 
smsplay:

Никак не могу разобраться с MarketInfo().

Возвращаются округленные double значения.

Например:

double bid=MarketInfo(symbol,MODE_BID);

вернет: 1.1187, а

string bid=MarketInfo(symbol,MODE_BID); 

вернет корректно: 1.11856.

То же касается и MODE_POINT, если string то возвращает 0.00001, если double то 0....

возвращает куда?
 
Vitalie Postolache:
возвращает куда?
Проверял через Alert и Print
 
DoubleToString() помогает, говорят.
 

Vitalie Postolache:
DoubleToString() помогает, говорят.

 Так дело в том что со String то проблем никаких и нет, мне нужно получить это именно в Double. Если делать StringToDouble, то опять получается округление...

 
smsplay:

Vitalie Postolache:
DoubleToString() помогает, говорят.

 Так дело в том что со String то проблем никаких и нет, мне нужно получить это именно в Double. Если делать StringToDouble, то опять получается округление...

Совершенно наоборот. Ты получаешь пятизначное дробное, а Print или Alert выводят четырёхзначное. И чтобы увидеть нормальное значение необходимо прибегать к таким ухищрениям как DoubleToString()

Посмотри без DoubleToString() что получится если умножить на 10, 100 и более.

 
smsplay:

Никак не могу разобраться с MarketInfo().

Возвращаются округленные double значения.

Например:

double bid=MarketInfo(symbol,MODE_BID);

вернет: 1.1187, а

string bid=MarketInfo(symbol,MODE_BID); 

вернет корректно: 1.11856.

То же касается и MODE_POINT, если string то возвращает 0.00001, если double то 0....

Всё дело в формате вывода. Запишите:

double b=1.11856;
Print("b=",b);
Print("b=",DoubleToStr(b,8));

и вы при выводе получите:

b=1.1186
b=1.11856000

Дополнительно можно почитать https://docs.mql4.com/ru/common/print -- там есть некоторые примеры

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