помогите найти ошибку в советнике - страница 3

 
отложки я убрал - они там ни к селу, ни к городу. Поэтому из параметров функции нужно убрать bool Delete_Otlozh,
 
RefreshRates();
PriseAsk=MarketInfo(SMB,MODE_ASK);
PriseAsk=NormalizeDouble(PriseAsk,DGS); 

Три строки. Сначала обновляем данные, потом запрашиваем текущую цену, потом её нормализуем до дигитса. Если этого не сделать, то рано или поздно натыкаешься на ошибку, мол, неправильная (ненормализованная) цена. Не всегда тот же аск нормализован без дополнительных "танцев с бубном". Сколько раз уже натыкался на отрицательную реакцию сервера при использовании конструкции типа

OrderClose(Ticket,Lot,Ask,Proskalz,CLR_NONE)
Как только вставляешь нормализацию, глюк исчезает.
 
drknn >>:

Три строки. Сначала обновляем данные, потом запрашиваем текущую цену, потом её нормализуем до дигитса. Если этого не сделать, то рано или поздно натыкаешься на ошибку, мол, неправильная (ненормализованная) цена. Не всегда тот же аск нормализован без дополнительных "танцев с бубном". Сколько раз уже натыкался на отрицательную реакцию сервера при использовании конструкции типа

Как только вставляешь нормализацию, глюк исчезает.

все это конечно странно...

использовал такую конструкцию -

OrderClose(Ticket,Lot,Ask,Proskalz,CLR_NONE)

частенько налитал на реквот цен...

стал использовать такую -

RefreshRates();
OrderClose(Ticket,Lot,Ask,Proskalz,CLR_NONE)

частенько начал налетать на занятость торгового потока...

теперь использую вот так -

while (IsTradeContextBusy()){Sleep(100);}
RefreshRates();
OrderClose(Ticket,Lot,Ask,Proskalz,CLR_NONE)

пока проблем нет...