Ошибки, баги, вопросы - страница 1832

 
Vladislav Andruschenko:


в мт5? 

д‌а как бы да, 

я‌ давно в мт5 не пользуюсь extern 


Ок. Тогда каким способом я из торговой панельки менял значения во входных параметрах не открывая их? Ведь если они отображаются, значит они input их нельзя менять.
 
Alexander Fedosov:

Ок. Тогда каким способом я из торговой панельки менял значения во входных параметрах не открывая их? Ведь если они отображаются, значит они input их нельзя менять.

б‌ез понятия если честно, 


н‌о то что extern не показываются в входных параметрах - так было уже давно ? можно сказат ьс начала терминала мт5

 
Vladislav Andruschenko:

б‌ез понятия если честно, 


н‌о то что extern не показываются в входных параметрах - так было уже давно ? можно сказат ьс начала терминала мт5


Ну значит пора, видимо в СД, т.к. у меня есть скомпиленная на версии ранее 1550 и там через панель меняются переменные типа extern и отображаются во входных параметрах.
 
Alexander Fedosov:

Ну значит пора, видимо в СД, т.к. у меня есть скомпиленная на версии ранее 1550 и там через панель меняются переменные типа extern и отображаются во входных параметрах.

Может быть их ввели потом, а потом опять убрали? с 2012 года я понял что extern заменены на input и собственно все поменял на input
 

Здравствуйте Имею 2 терминала мт5 Альпари и мт5  брокер Открытие. \

В открытие Запущено 12 инструментов +установлены индикаторы. нагрузка на процессор 5-10%

В Альпари открыто 3 окна теже индикаторы процессор грузит 25-30% и комп жутко тупит

В настройках в истории и там и там стоит 5000 баров
даже при закрытых всех графиках и закрытом окне символы рынка в Альпари нагрузка 14%

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

П‌ри свернутом окне нагрузка на ЦП 8-9%

Я так понимаю это глюк с отрисовкой графиков? Но тогда почему у Брокера Открытия нету таких проблем?


 
Alexander Fedosov:

Ну значит пора, видимо в СД, т.к. у меня есть скомпиленная на версии ранее 1550 и там через панель меняются переменные типа extern и отображаются во входных параметрах.


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

Extern переменные

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

Можно создавать программы, которые состоят из нескольких исходных файлов, для этого используется директива препроцессору #include. Переменные, объявленные как extern с одним и тем же типом и идентификатором, могут существовать в разных исходных файлах одного проекта.

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

 
Что это?
2017.03.14 09:51:34.866 Trades  use Hosting Service to speed up the execution - 0.31 ms via 'MQL5 Amsterdam 2 (MQL5 Ltd.)' instead of 72.36 ms
 
fxsaber:
Что это?
Реклама:)
 

Не замечал раньше 1554 request-состояний

И‌нтересно, что еще до placed-состояния данные маржи полностью доступны.

 
Торговый сервер FXOpen-MT5, запускаем скрипт
void OnStart()
{
  MqlTradeRequest Request = {0};
  
  Request.action = TRADE_ACTION_PENDING;
  Request.symbol = _Symbol;
  Request.volume = 1;
  Request.price = SymbolInfoDouble(Request.symbol, SYMBOL_ASK) - 100 * _Point;
  Request.type = ORDER_TYPE_BUY_LIMIT;
  Request.type_filling = ORDER_FILLING_IOC;
  Request.comment = "FirstComment";
  
  MqlTradeResult Result;
  
  if (OrderSend(Request, Result))
  {        
    Request.action = TRADE_ACTION_MODIFY;
    Request.order = Result.order;
    Request.type_time = ORDER_TIME_SPECIFIED;
    Request.expiration = TimeCurrent() + 1000;
    Request.comment = "NewComment";    

    OrderSend(Request, Result);  
  }
}

Он выставляет отложенник и модифицирует его, задавая новое поле Request.comment.

Лог выполнения скрипта

2017.03.14 11:33:47.642 Trades  '10127': buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:33:47.775 Trades  '10127': accepted buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:33:47.777 Trades  '10127': buy limit 1.00 EURUSD at 1.06314 placed for execution
2017.03.14 11:33:47.797 Trades  '10127': order #61938 buy limit 1.00 / 1.00 EURUSD at 1.06314 done in 154.608 ms (FirstComment)
2017.03.14 11:33:47.797 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': accepted modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000 placed for execution
2017.03.14 11:33:47.950 Trades  '10127': modify #61938 buy limit 1.00 EURUSD -> price: 1.06314, sl: 0.00000, tp: 0.00000) done in 154.566 ms (NewComment)

Терминал показывает

Теперь руками удаляем отложенник, получая соответствующие записи в журнале

2017.03.14 11:35:01.198 Trades  '10127': cancel order #61938 buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:35:01.330 Trades  '10127': accepted cancel order #61938 buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:35:01.333 Trades  '10127': cancel order #61938 buy limit 1.00 EURUSD at 1.06314 placed for execution
2017.03.14 11:35:01.465 Trades  '10127': cancel #61938 buy limit 1.00 EURUSD at 1.06314 done in 268.415 ms (NewComment)

Терминал показывает




Т.е. комментарий отложенника изменился на самом деле. Но терминал мог это показать только в логах и в истории - БАГ!

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