Новая версия MetaTrader 4 Client Terminal build 427 - страница 6

 
WWolf:

MarketInfo(OrderSymbol(), MODE_TICKVALUE) = 0

у всех такой лаг? или тока у меня ламера? :)

при работе с ордерами из истории... хотя не только из истории...

Ошибки нет.

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

 
Renat:

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

Я знаю что решение существует, но лучше бы оно было официальным,
от разработчика.

 

проверял встречное закрытие сделок из-за этого у ордера лотность выдаёт ноль и советник грохается при подсчёте при делении на ноль... сори, сам лапух :)

 
TarasBY:
Сюда ещё можно прикрутить
НО результат и ныне там. Обновление котировок здесь вооче-то вообще ни при чём - мы получаем НОВЫЙ бар, а не текущую котировку. Причём, в более явном виде соседний график открывается с "отложенным спросом" новых баров в несколько дней. И RefreshRates() здесь совсем "не пилюля"...

У меня без RefreshRates вообще давало алерт только один раз при запуске, а с ним алерты приходят часто по мере поступления новых баров. А как оно должно работать?
 
Renat:

Вы не привели ни единой строчки кода и устраиваете тут истерику. Ищите ошибки в своем коде.

Мы все проверили - ошибок нет, функция работает нормально.

Здравствуйте, Renat!

Ниже привожу код функции которую использую в скриптах для удаления перекрытых ордеров (туда только добавлена контрольная точка-алерт, чтобы проверить правильный заход функции OrderCloseBy() на тикеты... проверял - заходит правильно, а затем идет пауза в несколько минут, после чего выбрасывается ошибка №128 или №136. Проблема нарисовалась после апрегдов с 409 билда на 419, 427, 416...)

Реально нужна Ваша помощь, ибо звонил в свой ДЦ, там что-то проверяли и говорят, что на их стороне всё работает, код я не менял и на 409 билде он работал без проблем, пробовал этот код на сервере MIGBank-Demo - MIG Bank, так там он работает ... я попал в замкнутый круг и без Вашей помощи мне из него не выбраться...

Код:

bool FUNC_Orders_CloseBy()
{
   //----- закрываем перекрытые ордера:
   int ticketSELL = 1, ticketBUY = 1; // для входа в while
   while( ticketSELL != 0  &&  ticketBUY != 0 ) // циклим пока есть оба типа ордеров SELL и BUY
   {
      ticketSELL = 0; ticketBUY = 0; // обнуляем перед новым циклом отбора ордеров
      for( int i=0; i<OrdersTotal(); i++ )
      {
         if( OrderSelect(i, SELECT_BY_POS) == false ) 
         {
            myComment = ":  <OrderSelect> failed with Error #" + GetLastError() + " ...";
            Alert(Symbol(), " @ ", ShortName, myComment);
            myComment = "  ... on search the overlap orders for <OrderCloseBy> ...";
            Alert(Symbol(), " @ ", ShortName, myComment); flag_Success = false;
            continue; // продолжаем отбор ордеров
         }
         if( OrderSymbol() != Symbol() ) continue; // смотрим ордера только по текущему инструменту
            
         switch( OrderType() ) // получаем тип ордера
         {
            case OP_SELL: ticketSELL = OrderTicket(); break;  
            case OP_BUY: ticketBUY = OrderTicket(); break;
         }
            
         if( ticketSELL != 0  &&  ticketBUY != 0 ) // найдены ордера SELL и BUY, удаляем:
         {

// контрольная точка входа в OrderCloseBy:
Alert("test:   ticketSELL= ", ticketSELL, "   ticketBUY= ", ticketBUY);// визуальный контроль правильности выбора ордеров            
            
            if( OrderCloseBy(ticketSELL, ticketBUY) == false )
            {
               myComment = ":  <OrderCloseBy> failed with Error #" + GetLastError() + " ...";
               Alert(Symbol(), " @ ", ShortName, myComment); flag_Success = false;
               return(false); // выходим из FUNC_, чтобы не было зацикливания по while на ошибке >>>>>
            } 
            break; // выходим из for в начало while и начинаем заново for  
         }
      }//end: for(i=OrdersTotal()-1; i>=0; i--)
   }//end: while(ticketSELL != 0  &&  ticketBUY != 0) цикла закрытия перекрытых ордеров
return(true);
}//end^ FUNC_Orders_CloseBy -----------------------------------------------------------//

 
Renat:

Ренат, подскажи пожалуйста: пользовательские индикаторы в КПК всунуть реально и как это сделать? Спасибо.

 
andronis:


Никак.
 

Добрый день ! Скажите пожалуйста в обновленной версии мт4 появилась комиссия, а в старой не было . теперь это новшество будет постоянно ? и помимо спредов теперь еще и комиссионные надо отмахивать получается ? работаю на альпари микро .

 
Это вопрос к Вашему брокеру.
 

На 2й стр. темы я привёл код индикатора. Глобальные переменные не сохраняются при переключении ТФ.

Конечно, я могу ошибаться.

Ув. разработчики, пожалуйста, скажите, что вы увидели сообщение.

#property indicator_chart_window
int Glob = 0;

int init()
   {
   Alert("=================================");
   Alert("init1 Glob = ", Glob, "  <---");
   Glob = Glob +1;
   Alert("init2 Glob = ", Glob);
   return(0);
   }
int start()
   {
   Alert("start1 Glob = ", Glob);
   Glob = Glob +1;
   Alert("start2 Glob = ", Glob);
   return(0);
   }
int deinit()
   {
   Alert("deinit1 Glob = ", Glob);
   Glob = Glob +1;
   Alert("deinit2 Glob = ", Glob);
   return(0);
   }
Причина обращения: