Реквоты и MarketInfo() - страница 2

 
Функция MarketInfo() - это способ доступа к переменным окружения.
Функция RefreshRates() - это способ принудительного обновления этих переменных.

В обычной программе переменные окружения автоматически обновляются при закпуске спец. функции. В зацикленной программе этого не происходит, поэтому использование на каждой итерации RefreshRates() обязательно.

 
SK. писал (а):
Функция MarketInfo() - это способ доступа к переменным окружения.
Функция RefreshRates() - это способ принудительного обновления этих переменных.

В обычной программе переменные окружения автоматически обновляются при закпуске спец. функции. В зацикленной программе этого не происходит, поэтому использование на каждой итерации RefreshRates() обязательно.


вы не правы, попробуйте скомпилировать следующий пример и запустить в качестве скрипта и увидите, что цена в комменте обновляется, хотя рефреш рейтс не используется - программа зациклена и цены обновляются. забыл, что сегодня выходной, но уверяю вас, цены будут меняться...


void start() {
while (!IsStopped()) {
Comment(MarketInfo("EURUSD", MODE_BID));
Sleep(100);
}
}
 
Michael:

прошу ответить разработчиков: действительно ли во втором случае не требуется RefreshRates() или же существуют ситуации при которых даже при получении цены с помощью MarketInfo() (сразу перед открытием позиции) необходимо вызывать RefreshRates()?

MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму
 

Да, действительно. Прошу прощения за ошибку.
Просто я не использую MarketInfo(). Если мне нужен Ask, то я так и указываю в программе: Ask. Но на каждой итерации зацикленного эксперта (один раз) исполняется RefreshRates().

 
MetaQuotes:
Michael:

прошу ответить разработчиков: действительно ли во втором случае не требуется RefreshRates() или же существуют ситуации при которых даже при получении цены с помощью MarketInfo() (сразу перед открытием позиции) необходимо вызывать RefreshRates()?

MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму
спасибо за ответ, я это и пытался доказать. но непонятно почему у меня в обзоре рынка цены совсем другие нежели те, кот. пишутся в логи при реквотах

19:43:47 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086

тут я получил цену с помощью маркет инфо сразу перед открытием, этой ценой была 1.0086


19:43:47 '27544': request was accepted by server
19:43:47 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086

тут видно что цены при реквоте на сервере изменились 1.0084 / 1.0088, хорошо, но почему далее получая цену с помощью маркет инфо у меня не эти цены кот. при реквоте, а таже самая цена 1.0086, и так повторялось оч. долго (лог ниже), пока видимо цены в обзоре рынка не обновились, т. е. получается что дц тормозит поступление цен в обзор рынка, а фактически цены меняются, может такое быть? посмотрите пожалуйста, у меня в обзоре рынка одни цены, а сервер меня реквотирует по совсем другим, а мне не говорит по каким (только в логах я это вижу)





19:43:48 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:48 '27544': request was accepted by server
19:43:48 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:48 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:49 '27544': request was accepted by server
19:43:49 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:49 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:49 '27544': request was accepted by server
19:43:49 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:50 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:50 '27544': request was accepted by server
19:43:50 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:51 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:51 '27544': request was accepted by server
19:43:51 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:51 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:52 '27544': request was accepted by server
19:43:52 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:52 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:52 '27544': request was accepted by server
19:43:53 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:53 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:53 '27544': request was accepted by server
19:43:53 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:54 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:54 '27544': request was accepted by server
19:43:54 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:54 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:55 '27544': request was accepted by server
19:43:55 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:55 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:55 '27544': request was accepted by server
19:43:55 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:56 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:56 '27544': request was accepted by server
19:43:56 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:56 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:57 '27544': request was accepted by server
19:43:57 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:57 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:57 '27544': request was accepted by server
19:43:58 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:58 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:58 '27544': request was accepted by server
19:43:58 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:43:59 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:43:59 '27544': request was accepted by server
19:43:59 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:44:00 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:44:00 '27544': request was accepted by server
19:44:00 '27544': requote 1.0084 / 1.0088 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:44:00 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086

 
Michael:
MetaQuotes:
Michael:

прошу ответить разработчиков: действительно ли во втором случае не требуется RefreshRates() или же существуют ситуации при которых даже при получении цены с помощью MarketInfo() (сразу перед открытием позиции) необходимо вызывать RefreshRates()?

MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму
спасибо за ответ, я это и пытался доказать. но непонятно почему у меня в обзоре рынка цены совсем другие нежели те, кот. пишутся в логи при реквотах
Проверьте качество связи и обязательно поставьте галочку на автоконфигурации дата-центров. Ситуация сильно похожа на проблему с используемым дата-центром.
 
MetaQuotes:
Michael:

прошу ответить разработчиков: действительно ли во втором случае не требуется RefreshRates() или же существуют ситуации при которых даже при получении цены с помощью MarketInfo() (сразу перед открытием позиции) необходимо вызывать RefreshRates()?

MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму
Да уж, тоже был не прав. Сам всегда использую RefreshRates() и никаких проблем замечено не было.
 
MetaQuotes:
Проверьте качество связи и обязательно поставьте галочку на автоконфигурации дата-центров. Ситуация сильно похожа на проблему с используемым дата-центром.
галочка автоконфиг. стоит на всех терминалах, сбоев со связью в это время тоже не было, у меня одноврем. неск. дц терминалов запущено, на одном котировки шли точно на другом похоже стояли, либо некоторые шли, а некот. стояли, файрволы и антивирусы не стоят... такое чувство, что именно дц не посылал мне новые котировки... или у него грубые расхождения цен между теми по кот. он открывает сделки с теми кот. посылает дата центр

в конце концов после 74х реквотов моя позиция все же была закрыта


19:44:38 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0086
19:44:38 '27544': request was accepted by server
19:44:38 '27544': requote 1.0086 / 1.0090 for order #16179795 sell 0.01 USDCAD closing at 1.0086
19:44:39 '27544': close order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 at price 1.0090
19:44:39 '27544': request was accepted by server
19:44:39 '27544': request in process
19:44:41 '27544': order #16179795 sell 0.01 USDCAD at 1.0073 sl: 0.0000 tp: 0.0000 closed at price 1.0090

 
MetaQuotes:
Michael:

прошу ответить разработчиков: действительно ли во втором случае не требуется RefreshRates() или же существуют ситуации при которых даже при получении цены с помощью MarketInfo() (сразу перед открытием позиции) необходимо вызывать RefreshRates()?

MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму

О-как! По крупицам знания приходят.........
 
MetaQuotes:
Michael:
MetaQuotes:
Michael:

прошу ответить разработчиков: действительно ли во втором случае не требуется RefreshRates() или же существуют ситуации при которых даже при получении цены с помощью MarketInfo() (сразу перед открытием позиции) необходимо вызывать RefreshRates()?

MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму
спасибо за ответ, я это и пытался доказать. но непонятно почему у меня в обзоре рынка цены совсем другие нежели те, кот. пишутся в логи при реквотах
Проверьте качество связи и обязательно поставьте галочку на автоконфигурации дата-центров. Ситуация сильно похожа на проблему с используемым дата-центром.

Да! Вспомнил, у меня эта проблема была через эту галочку устранена.