Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 79

 
Vladimir Pastushak:

Что я делаю не так ?

для ChartSaveTemplate, в путЕ (или в путЯх, или как это))... в общем для ChartSaveTemplate слеш нужен в обратную сторону

 
Taras Slobodyanik:

для ChartSaveTemplate, в путЕ (или в путЯх, или как это))... в общем для ChartSaveTemplate слеш нужен в обратную сторону

Благодарю

 
Vladimir Pastushak:

Что я делаю не так ?

bool ChartSaveTemplate2( const long Chart_id, const string FileName )
{
  uchar Bytes[];
  
  return(FileSave(FileName, Bytes) && (ChartSaveTemplate(Chart_id, "\\Files\\" + FileName) || !FileDelete(FileName)));
}

void OnStart()
  {
   string FileName="FoldA\\FoldB\\Templates\\";

   ChartSaveTemplate2(0, FileName + "test.tpl");
   Print(" ChartSaveTemplate "+GetLastError());
  }
 

HistorySelect работает неправильно для отложенных ордеров: ордера попадают в историю по времени ORDER_TIME_SETUP, а не по ORDER_TIME_DONE.


Например, поставили час назад отложенный ордер и только что удалили его. Запрашиваете историю за последние полчаса, а ордера в ней нет.


Такая же ерунда произойдет, если отложенный ордер час висел, а затем исполнился. По итогу в получасовую историю попадет его сделка, но без ордера.


Большая просьба поправить.


ЗЫ Эта ошибка только в Тестере. В Терминале все отрабатывает правильно.

 
Просьба поправить GUI

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

fxsaber, 2018.11.27 18:41

Обозначенная проблема не началась с 19xx билдов, а была и раньше. Переключаюсь между Терминалом и редактором через F4. Несколько раз в день обнаруживаю такое положение окон

Все подокна доведены до минимальных размеров. Правлю до нормальных, проходит какое-то время - повторяется. Не сильно напрягает, но все же.

 
Хотелось бы без костыльного решения избавиться от сбрасывания советника в Тестере

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Особенности языка mql5, тонкости и приёмы работы

fxsaber, 2018.11.21 08:33

Часто происходит ситуация, когда после компиляции советника сбрасываются настройки Тестера, если этот советник был в нем ранее выбран. Это, мягко говоря, раздражает. Т.к. после каждой компиляции нужно лезть в древо советников и выискивать свой. Если кто не знает, есть рецепт, чтобы Тестер не сбрасывался. Нужно один раз запустить советник в дебаг-режиме на истории - CTRL+F5. После этого любые перекомпиляции не будут влиять на настройки Тестера.
 
Taras Slobodyanik:

создайте папку в /Files с помощью FileOpen и сохраняйте в нее с помощью ChartSaveTemplate  )

Для создания папок есть специальная функция FolderCreate

https://www.mql5.com/ru/docs/files/foldercreate

Документация по MQL5: Файловые операции / FolderCreate
Документация по MQL5: Файловые операции / FolderCreate
  • www.mql5.com
//| Script program start function                                    | //| Пытается создать папку и выводит сообщение об этом               |
 
В новой версии (1961) трендовые линии изображаются неверно: какие ни попадя типы, цвета и толщины.
 
Sergey Pavlov:
В новой версии (1961) трендовые линии изображаются неверно: какие ни попадя типы, цвета и толщины.
Перезапустил индикатор, всё стало отображаться корректно. Но всё равно что-то не так. Раньше при перезапуске новой версии терминала, все индикаторы продолжали работать отлично, а сейчас нет.
 
fxsaber:

HistorySelect работает неправильно для отложенных ордеров: ордера попадают в историю по времени ORDER_TIME_SETUP, а не по ORDER_TIME_DONE.


Например, поставили час назад отложенный ордер и только что удалили его. Запрашиваете историю за последние полчаса, а ордера в ней нет.


Такая же ерунда произойдет, если отложенный ордер час висел, а затем исполнился. По итогу в получасовую историю попадет его сделка, но без ордера.


Большая просьба поправить.


ЗЫ Эта ошибка только в Тестере. В Терминале все отрабатывает правильно.

Воспроизведение

int Amount = 0;

void OnInit()
{
  MqlTradeRequest Request = {0};
  MqlTradeResult Result;
  
  Request.action = TRADE_ACTION_PENDING;
  Request.symbol = _Symbol;
  Request.volume = 1;
  
  Request.type = ORDER_TYPE_BUY_LIMIT;
  Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK) - 100 * _Point;
  Amount += OrderSend(Request, Result);

  Request.type = ORDER_TYPE_SELL_LIMIT;
  Request.price = SymbolInfoDouble(_Symbol, SYMBOL_BID) + 100 * _Point;
  Amount += OrderSend(Request, Result);
}

#define PRINT(A) Print(#A + " = " + (string)(A))

void OnTick()
{
  if ((OrdersTotal() != Amount) && HistorySelect(TimeCurrent() - 1, TimeCurrent()))
  {
    PRINT(HistoryOrdersTotal()); // 0
    PRINT(HistoryDealsTotal());  // 1
    
    TesterStop();
  }
}


Результат

2018.12.01 00:00:00   buy limit 1.00 EURUSD at 1.13073 (1.13155 / 1.13173)
2018.12.01 00:00:00   sell limit 1.00 EURUSD at 1.13255 (1.13155 / 1.13173)
EURUSD : real ticks begin from 2018.12.03 00:00:00
2018.12.03 00:02:12   order [#3 sell limit 1.00 EURUSD at 1.13255] triggered
2018.12.03 00:02:12   deal #2 sell 1.00 EURUSD at 1.13499 done (based on order #3)
2018.12.03 00:02:12   deal performed [#2 sell 1.00 EURUSD at 1.13499]
2018.12.03 00:02:12   order performed sell 1.00 at 1.13499 [#3 sell limit 1.00 EURUSD at 1.13255]
2018.12.03 00:02:12   HistoryOrdersTotal() = 0
2018.12.03 00:02:12   HistoryDealsTotal() = 1
Причина обращения: