почему-то MarketInfo(symbol,...) не возвращает цену для неосновной пары - страница 4

 
kharko >>:

Тогда, чем можно объяснить, когда функция перестала работать, стала выдавать нули... Т.е "текущее рыночное окружение терминала" было, а теперь его нет... откуда нули получаются... Ведь ничего не поменялось... По идее, должны остаться старые....

Новое "текущее рыночное окружение" приходит с каждым новым тиком и ДЦ может регулировать какую информацию выдавать терминалу... Если появились нули, то сервер ДЦ прислал нуль ...

Совсем не важно обращается маркетинфо к серверу или нет.... Важно, что источник информации регулируем...

Объясняться должен топикстартер. Но он не привел доказательств наличия полного рыночного окружения, о чем я и написал.


Маркетинфо работает нормально (только в тестере не выдается бид-аск на чужих символах), если есть рыночное окружение. Никакие нули сервер в ценах не шлет и никак не ограничивает терминалы в наличии рыночных цен.


Хватит уже бредить и наговаривать на сервер и брокера. Один человек по незнанию не разобрался в своем терминале и тут же нашелся параноик с наговорами.


ps: это Вам предупреждение, уже пришлось стереть один Ваш некорректный и неправильный пост

 
kharko >>:

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

То есть, как я и говорил, это Ваша ошибка разруливания одновременного трейдинга нескольких экспертов. Неудивительно, что Ваше изначально заявление было совершенно четко негативное и вводящее в заблуждение:

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


С таким уровнем предубеждений, явными попытками очернить торговый терминал и наговорами на брокеров можно получить соответствующий результат. На техническом форуме такие вещи не всегда прощаются. Учтите это.

 
Renat >>:

Объясняться должен топикстартер. Но он не привел доказательств наличия полного рыночного окружения, о чем я и написал.


Маркетинфо работает нормально (только в тестере не выдается бид-аск на чужих символах), если есть рыночное окружение. Никакие нули сервер в ценах не шлет и никак не ограничивает терминалы в наличии рыночных цен.

Renat, спасибо за разъяснение: у меня именно эта проблема и была - "в тестере не выдается бид-аск на чужих символах"


проблему решил iClose(), который работает нормально везде.


P.S. А копия обзора рынка была в моем втором посте на первой странице :)

 

Renat. Поясните ситуацию случившеюся со мной. Какой брокер не говорю, не хочу никого очернить. MarketInfo выдавало разрешение торговли по инструемнту, в реали ордер не открывался. Ни роботом ни руками. Причем до этого и после через некоторое время все работало нормально. Факт в том что маркетинфо показывает одно а в жизни другое. 

 Может на форексе и нет проблем с активно используемыми инструментами, но есть еще цфд, их много и проблемы были, не выдумал же я их)))). Да подтвердить не могу, но врать тут тоже смысла нет. Наоборот хочу предостеречь.

 Вот функция, проверяющая возможность торговли, true возвращает только в случае разрешения торговли по обеим инструментам.


//////////////////////////////////
 // Разрешение торгов по паре //
 //////////////////////////////////
 bool allowtrade ( string sym1, string sym2) {
 RefreshRates();
 if (MarketInfo(sym1,MODE_TRADEALLOWED) == true && MarketInfo(sym2,MODE_TRADEALLOWED) == true) return (true);
 return (false);
 }  
 
vladevgeniy >>:

Renat. Поясните ситуацию случившеюся со мной. Какой брокер не говорю, не хочу никого очернить. MarketInfo выдавало разрешение торговли по инструемнту, в реали ордер не открывался. Ни роботом ни руками. Причем до этого и после через некоторое время все работало нормально. Факт в том что маркетинфо показывает одно а в жизни другое.

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

В таком случае нужно собрать максимум детальной информации:

  1. обязательно неотредактированный кусок логов терминала за указанное время (нельзя вырезать ничего!)
  2. скриншоты окна сделок (причем скриншот должен решать вопрос понимания проблемы, а не доказательства "виновности" брокера, где предоставляется куций кусок).
  3. техническое пошаговое описание производимый операций
  4. обязательное уточнение качества связи (желательно даже IP адрес указать, чтобы техспецы могли самостоятельно проверить трейс)

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


Достаточно ведь прислать неотредактированный кусок лога, чтобы техподдержка дала мгновенный ответ. Но вместо этого часто начинается многоходовая переписка, где вначале стоит обида с заявлением без деталей.


Самый простой способ получить игнор - это прислать абсолютно безинформативное письмо или заявление в техсаппорт (любой техсаппорт).

 

MODE_TRADEALLOWED лишь сообщает, что у символа торговая сессия открыта и в терминале стоит разрешение торговли. Это не означает, что брокер 100% прокотирует прямо сейчас.


Неужели логи терминала не смотрите и не анализируете результат GetLastError()?

 

 Но котировки шли, руками позиция тоже не открывалась. Логи....... Даже не знаю было это более полугода назад, уже нет  в работе этой системы.

 Нет последнюю ошибку не смотрел, это да. Просто задача была заранее знать возможность открытия позиции. А анализировать ошибки, как бы уже поздно. Уже надо выкручиваться, так как одна поза-то открыта а вторая нет....

 А как можно наверняка узнать тогда, откроют тебя или нет (про реквоты не говорю)?

 
vladevgeniy >>:

Но котировки шли, руками позиция тоже не открывалась. Логи....... Даже не знаю было это более полугода назад, уже нет в работе этой системы. Нет последнюю ошибку не смотрел, это да. Просто задача была заранее знать возможность открытия позиции. А анализировать ошибки, как бы уже поздно. Уже надо выкручиваться, так как одна поза-то открыта а вторая нет....

То есть, программист (кто написал строчку кода, с того спрос как с программиста) не смотрит на четкие сообщения об отказах в логах, где в обязательном порядке пишется причина отказа.


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


Это реальная жизнь с реальными процессами и писать экспертов надо с обработкой ошибок и восстановлениями после отказов. По сути код эксперта процентов на 50 должен состоять из обработки отказов.

 
Понимаю. Ладно, просто скажите как нужно узнать заранее. Бог с ним, с гетластеррор. Что кроме MODE_TRADEALLOWE нужно проанализировать?
 
vladevgeniy >>:
Понимаю. Ладно, просто скажите как нужно узнать заранее. Бог с ним, с гетластеррор. Что кроме MODE_TRADEALLOWE нужно проанализировать?

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


В документации очень хорошо описаны ошибки и способы восстановления после них:


Важно запомнить: нет и не может быть вообще никаких гарантий в успешности торговых операций.

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