К разработчикам: Ошибка MarketInfo !!!

 

При использовании функции MarketInfo с целью определения цены пункта GOLD,
цена возвращается ошибочная! Проверил налицие данной ошибки на нескольких ДЦ.
Везде одно и тоже. В чем дело? Ошибка терминала?

Во вложении пример кода, иллюстрирующий ошибку.

Файлы:
 

А это потому, что в Вашем коде ошибка - не определено символьное имя инструмента и не объявлена заранее переменная _Symbol.

Вот, посмотрите, я подправил Ваш код.

string Comm;
  string SMB=Symbol();
  
  //Comm="Цена пункта  "+_Symbol+" :   ";
  //Comm=Comm+DoubleToStr(MarketInfo(_Symbol,MODE_TICKVALUE),4);
  //Comment(Comm);
  Comm="Цена пункта  "+SMB+" :   ";
  Comm=Comm+DoubleToStr(MarketInfo(SMB,MODE_TICKVALUE),4);
  Print(Comm);
И вот ещё что - достаточно этот код вставить в тело нового скрипта - не обязательно совать в код советника и ожидать очередной тик, чтобы понять, работает код или нет.
 

О, великий гуру MQL4, drknn!
Преклоняясь и падая ниц перед Вашими знанями этого таинственного языка, осмелюсь, все же, заметить, что строчка

extern string _Symbol="GOLD";

это и есть объявление переменной, причем внешней.

Далее, я прошу простить меня за столь недостойное применение эксперта там, где следовало применить скрипт!

О, несравненный! Следуя Вашим ценнейшим указаниям, я осмелился путем нескольких чудесных манипуляций превратить мой недостойный эксперт в скрипт с искусно исправленным Вами кодом!

И... О чудо! Я увидел, что ничего не изменилось!
Скрипт все равно показывает НЕПРАВИЛЬНУЮ ЦЕНУ ПУНКТА GOLD! (На билде 206.)
В чем предлагаю убедиться Вам.

Скрипт прикрепляю.

Файлы:
 

А сколько стоит пункт золота?

 
Что значит "неправильная цена"? Опубликуйте неправильную и правильную цены, пожалуйста.

Запуск на GOLD: цена пункта $2.5
 

Подтверждаю, для золота MarketInfo выдает неправильную цену пункта = 10. Причём даже если золота нет в обзоре рынка. По спецификации контракта на сайте ДЦ пункт должен стоить 2.5 доллара.

Билд 206, сервер Альпари. На форуме Альпари мне не ответили на этот вопрос :(

 
Такова спецификация контракта GOLD в Альпари:
 

С спецификациях так, а на самом деле все совсем не так! :(
Можно купить лот на демо и увидеть это.....И неважно Альпари это, или НордФинанс, или еще кто.

 
GrayMan77:

>О, великий гуру MQL4, drknn!
>Преклоняясь и падая ниц перед Вашими знанями этого таинственного языка, осмелюсь, все же, заметить, что строчка

extern string _Symbol="GOLD";

>это и есть объявление переменной, причем внешней.

Признаю - не заметил. Просто обычно символьное имя инструмента узнают функцией, чтоб можно было советника кидать на любой инструмент.

>Далее, я прошу простить меня за столь недостойное применение эксперта там, где следовало применить скрипт!


>О, несравненный! Следуя Вашим ценнейшим указаниям, я осмелился путем нескольких чудесных манипуляций превратить мой недостойный эксперт в скрипт с искусно исправленным Вами >кодом!


>И... О чудо! Я увидел, что ничего не изменилось!
>Скрипт все равно показывает НЕПРАВИЛЬНУЮ ЦЕНУ ПУНКТА GOLD! (На билде 206.)
>В чем предлагаю убедиться Вам.

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


>Скрипт прикрепляю.

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

 


 

To drknn:

> И вот ещё что - Вы просили помочь - я помог, ...

Да? Это помощь? Кричать, не разобравшись: "...в Вашем коде ошибка. .."! И предлагать исправления, которые ничего не меняют...

Ну тогда спасибо за помощь.

> Вам я больше помогать не буду.

ТАК помогать - не надо. Извините.

To All:

Спасибо всем, кто откликнулся. Вопрос, все же, остается. Попробую его конкретизировать:

На сайте Альпари в спецификациях контрактов (http://www.alpari-idc.ru/ru/cspec/GOLD.html) читаем:

Золото

Стоимость пункта на 1 лот $25.00

А функция MarketInfo(...) в выложенных выше эксперте и скрипте на терминале Альпари (билд 206) выдает цену пункта 10.00 !

И в свойствах символа (в терминале), как показал ув. Renat, мы тоже видим 10.00.

ПОЧЕМУ?

 
GrayMan77:

Спасибо всем, кто откликнулся. Вопрос, все же, остается. Попробую его конкретизировать:

На сайте Альпари в спецификациях контрактов (http://www.alpari-idc.ru/ru/cspec/GOLD.html) читаем:

Золото

Стоимость пункта на 1 лот $25.00

А функция MarketInfo(...) в выложенных выше эксперте и скрипте на терминале Альпари (билд 206) выдает цену пункта 10.00 !

И в свойствах символа (в терминале), как показал ув. Renat, мы тоже видим 10.00.

ПОЧЕМУ?


1. Фунция работает правильно. Она просто выдаёт то, что записано в настройках сервера.

2. Неправильное значение для демо-Альпари, а также Alpari-Contest касается не только золота, посмотрите, к примеру спред по GBPJPY, для этого даже не нужна функция, можно помотреть в свойствах символа: -3,07 для длинных и -4,14 для коротких.

Думаю, это объясняется невниманием кампаний к своим демо-серверам.

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