Скачать MetaTrader 5

Разработчики! Автообновление!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Mikhail Filimonov
5931
Mikhail Filimonov  

Добрый день, господа разработчики!

Дайте возможность людям оставаться на текущем билде!

Так как исправляя старые ошибки, вы приносите в новый билд новые!

Последнее:

в 975 периодически не удаляются лимитные ордера, а

в 965 было всё нормально.

MetaQuotes
Админ
25284
Renat Fatkhullin  
Mikalas:

Добрый день, господа разработчики!

Дайте возможность людям оставаться на текущем билде!

Так как исправляя старые ошибки, вы приносите в новый билд новые!

Последнее:

в 975 периодически не удаляются лимитные ордера, а

в 965 было всё нормально.

А что пишется в логах?

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

Sergey Chalyshev
4903
Sergey Chalyshev  

Новый билд - новые грабли (((

Неужели так сложно написать тестовый скрипт (перед выпуском нового билда), чтобы тестировал ВСЕ-Е-Е-Е существующие функции? 

Каждый раз, как терминал пишет "обновления загружены, перезагрузить?" -  нажимаю позже, и у меня начинается депрессия и истерия,) 

MetaQuotes
Админ
25284
Renat Fatkhullin  
А что именно не работает?
Evgeniy Ledovskih
2463
Evgeniy Ledovskih  

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

А обновляться считаю все равно надо, только нам программистам еще пол беды. Раз и подстроились. Главное вовремя заметить. Уже привыкать начал после обновления все проверять:).

А как люди которые к примеру купили сова в том-же маркете. Туговато наверное.

Anatoli Kazharski
60459
Anatoli Kazharski  
Кто-нибудь код приведёт, который перестал работать ?
MetaQuotes
Админ
25284
Renat Fatkhullin  
svds75:

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

А обновляться считаю все равно надо, только нам программистам еще пол беды. Раз и подстроились. Главное вовремя заметить. Уже привыкать начал после обновления все проверять:).

А как люди которые к примеру купили сова в том-же маркете. Туговато наверное.

Дело в том, что этот режим работает в МТ4 и МТ5 минимум 10 лет.

Не всегда можно выдернуть ордер из под исполнения.

Evgeniy Ledovskih
2463
Evgeniy Ledovskih  
Renat:
А что именно не работает?
Заметил что первый всегда удаляется, а последующие... Неизвестно на каком, то на 3, то на 7 или 10 хаотично как-то класс CTrade.OrderDelete(ticket) к примеру возвращает false. А в логах тишина.
Sergey Chalyshev
4903
Sergey Chalyshev  
Renat:
А что именно не работает?

На сегодняшний день меня такая проблема беспокоит:

DK 0 16:02:03.239 Network : terminal synchronized with ОАО ''Брокерский дом ''ОТКРЫТИЕ''

FO 0 16:04:07.942 Trades : buy limit 1.00 SBPR-9.14 at 5000

QD 0 16:04:08.004 Trades : accepted buy limit 1.00 SBPR-9.14 at 5000

GI 2 16:04:08.020 Trades : failed buy limit 1.00 SBPR-9.14 at 5000 [Invalid price]

А в общем с новым билдом новые сюрпризы ( 

На прошлом билде стакан перестал работать ... 

MetaQuotes
Админ
25284
Renat Fatkhullin  
svds75:
Заметил что первый всегда удаляется, а последующие... Неизвестно на каком, то на 3, то на 7 или 10 хаотично как-то класс CTrade.OrderDelete(ticket) к примеру возвращает false. А в логах тишина.

В логах не может быть тишины.

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

Mikhail Filimonov
5931
Mikhail Filimonov  
tol64:
Кто-нибудь код приведёт, который перестал работать ?

tol64, ясно же написано, что в 965 ВСЁ РАБОТАЛО, как и в 930!

Но если хочется посмотреть, то пожалуйста:

void COrder::Remove()
{
  if ( ticket > 0 )
  {
    if ( OrderSelect( ticket ) )
    {
      mem_magic = ulong( OrderGetInteger( ORDER_MAGIC ) );
      mem_time = TimeCurrent();
      req_id = 0;
      MqlTradeRequest request = {0};
      MqlTradeResult  result  = {0};
            
      request.action = TRADE_ACTION_REMOVE;
      request.magic  = mem_magic;
      request.symbol = a_symbol;
      request.order  = ticket;
          
      if ( OrderSendAsync( request, result ) )
      {
        if ( result.retcode == TRADE_RETCODE_PLACED )
        { 
          req_id = result.request_id;
        }
      }
      else
      {
        mem_magic = 0;
        mem_time = 0;
        Print( "Ордер не удалён! Билет = ", ticket, "; Код возврата = ", GetRetCode( result.retcode ) );
      }
    }
  }
}
123456
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий