Скачать MetaTrader 5

закрытие по несуществующей цене , возможные причины?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаешь C++? MQL5 очень схож с ним, убедись в этом сам!
Konstantin Staryhin
2362
Konstantin Staryhin 2014.02.11 09:37 

столкнулся с глюком причину которого не могу понять.

есть идеи? что это и как с этим бороться?

функция клосе использует только фактические цены закрытия полученные запросом маркет инфо

.

void AllClose(){
 for(int i=OrdersTotal()-1;i>=0;i--){
 if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
 if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),10,Black);
 if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),10,Black);
 }}}

Vladislav Andruschenko
91972
Vladislav Andruschenko 2014.02.11 09:57  
а проблема то в чем?
Vladislav Andruschenko
91972
Vladislav Andruschenko 2014.02.11 10:00  
void AllClose(){
 for(int i=OrdersTotal()-1;i>=0;i--){
 if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
 if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),
NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),
MarketInfo(OrderSymbol(),MODE_DIGITS)),10,Black);
else
 if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),
NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),
MarketInfo(OrderSymbol(),MODE_DIGITS)),10,Black);
 }}}

чтоб удобнее читать

ордер закрывается по текущей цене, которая есть в момент подачи запроса.

можешь еще перед запросом делать так

RefreshRates();
Artyom Trishkin
Модератор
75802
Artyom Trishkin 2014.02.11 10:05  
Vladon:

чтоб удобнее читать

ордер закрывается по текущей цене, которая есть в момент подачи запроса.

можешь еще перед запросом делать так

RefreshRates() перед запросом - лишнее. Прямо в запросе считываются самые последние данные из MarketInfo(). Вот во время обработки кода возврата торгового сервера, если требуется ожидание, то перед повторным запросом нужно выполнить RefreshRates(), да и то... я не уверен, что в данном случае оно надо - прямо в торговом запросе берутся свежие данные.

Так ведь человек и не сказал какую ошибку он получает. Тогда и гадать смысла не вижу.

Artyom Trishkin
Модератор
75802
Artyom Trishkin 2014.02.11 10:08  
panelektrik:

столкнулся с глюком причину которого не могу понять.

есть идеи? что это и как с этим бороться?

функция клосе использует только фактические цены закрытия полученные запросом маркет инфо

.

В чём глюк-то вы видите?
Vitalie Postolache
12135
Vitalie Postolache 2014.02.11 10:12  
artmedia70:
В чём глюк-то вы видите?


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


Хотя цены такой сегодня вообще не было.

Konstantin Staryhin
2362
Konstantin Staryhin 2014.02.11 10:17  
artmedia70:
В чём глюк-то вы видите?


поясню. глюк в том что фактическое закрытие происходит по левой цене.

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

Artyom Trishkin
Модератор
75802
Artyom Trishkin 2014.02.11 10:17  
panelektrik:


поясню. глюк в том что фактические закрытие происходит по левой цене.

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

А пример "левой" цены можно?
Vitalie Postolache
12135
Vitalie Postolache 2014.02.11 10:17  
panelektrik:


поясню. глюк в том что фактические закрытие происходит по левой цене.

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

Бегите с этого ДЦ, есть много других.
Konstantin Staryhin
2362
Konstantin Staryhin 2014.02.11 10:18  

получается что котиры те что видим на графике идут а котиры для торговых операций заклинили

Vladislav Andruschenko
91972
Vladislav Andruschenko 2014.02.11 10:19  
evillive:

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


Хотя цены такой сегодня вообще не было.


а действительно, :-) там же баров нет.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий