Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 8

 
Vladimir Karputov:

Можно ожидать расширение графических объектов? Например, чтобы можно было рисовать вот такие фигуры

а самое главное - чтобы эта фигуру можно было закрашивать.

Нет, потому что уже сейчас это можно нарисовать и закрасить

 
A100:

Нет, потому что уже сейчас это можно нарисовать и закрасить

Я просил именно про цельную фигуру, а не составную.
 
Vladimir Karputov:
Я просил именно про цельную фигуру, а не составную.

А в чем разница? Нарисовать можно, менять координаты можно, даже двигать можно (при желании). Пока кроме очередной хотелки не видно обоснования.

Мне например не подходит встроенный Фиббоначи - так я свой строю - внешне не отличить

 
mktr8591 :
Проверил в b2981 с развернутым Market - все нормально, советник присутствует.

Я только что протестировал его на Windows 10 на виртуальной машине и специально для этого скачал бесплатный советник. Там тоже было. Но когда я попытался воспроизвести это в другой раз, я не смог. Я хотел описать шаги со скриншотами.

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


I just tested it on a Windows 10 in a VM and downloaded a free EA especially for this. It happened there as well. But when I tried to reproduce it another time, I could not. I wanted to describe the steps with screenshots.

So it does not occur all the time after all, but only sporadically. I can't understand what conditions are necessary for it to occur, but I've had it happen many times.

 
signalfollower:

Я только что протестировал его на Windows 10 на виртуальной машине и специально для этого скачал бесплатный советник. Там тоже было. Но когда я попытался воспроизвести это в другой раз, я не смог. Я хотел описать шаги со скриншотами.

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


I just tested it on a Windows 10 in a VM and downloaded a free EA especially for this. It happened there as well. But when I tried to reproduce it another time, I could not. I wanted to describe the steps with screenshots.

So it does not occur all the time after all, but only sporadically. I can't understand what conditions are necessary for it to occur, but I've had it happen many times.

Спасибо за сообщение. Исправлено.

 
Anton :

Спасибо за сообщение. Исправлено.

Большое спасибо! Также специально за отзывы.

 

Редактор (b.2985) предлагает возможность заменить все вхождения последовательности символов другим не только в текущем файле, но и в нескольких. К сожалению, эти изменения не вносятся в файлы, открытые в редакторе, и нет возможности перезагрузить эти файлы. Нужно закрыть все файлы, а затем снова открывать их один за другим.
Мое предложение, помимо предыдущих (кнопка: 1 для поиска / замены вперед и 1 для перехода назад вместо поля включения / выключения для перехода назад и б: оставьте окно поиска открытым после закрытия, в большинстве случаев оно вам нужно несколько раз ):
Автоматическая перезагрузка всех открытых и измененных файлов (или хотя бы кнопка перезагрузки). Есть один, чтобы спасти все, почему не тот, который перезагружает все?

The editor (b.2985) offers the option to replace all occurrences of a character sequence with another not only in the current file but in several. Unfortunately, these changes are not made in the files opened in the Editor and there is no option to reload these files. One has to close all files and then reopen them one by one.
My suggestion besides the previous ones (a: 1 button for forward search/replace and 1 for backward instead of the on/off click box for backward and b: leave the search window open after closing, most of the time you need it several times):
An automatic reload of all opened and changed files (or at least a reload button). There is one to save all, why not one that reloads all?

 
b2985, просьба исправить поведение на прежнее (b2958).

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

Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна

fxsaber, 2021.06.19 14:39

Веский довод, почему сейчас в Терминале неправильно. Переделал скрипт в советник.
// Скрипт позволяет увидеть, как формируется таблица истории ордеров
// при создании/удалении новых ордеров и без этого.

#property script_show_inputs

input bool inFlag = true;  // Проверка истории с открытием ордеров
input datetime inFrom = 0; // Не ноль приведет к ошибке и с новыми ордерами

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

void OnTick()
{    
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick) && Tick.ask)
  {
    Print("------------\n" + (string)inFlag); // Отделили строки разных запусков скрипта.
  
    if (inFlag) // Проверка на новых ордерах.
    {
      // Попытка сформировать кеш на случай, если начальная дата будет всегда постоянной, но ненулевой.
      HistorySelect(inFrom, INT_MAX);
      
      Print("Create/Delete orders.");
      
      // Создали первый ордер.
      const TICKET_TYPE Ticket1 = OrderSend(_Symbol, OP_BUYLIMIT, 0.1, Tick.ask - 1000 * _Point, 0, 0, 0);
      
      Sleep(2000); // Подождали и создали второй ордер.
      const TICKET_TYPE Ticket2 = OrderSend(_Symbol, OP_BUYLIMIT, 0.1, Tick.ask - 1000 * _Point, 0, 0, 0);
      
      Print(Ticket1); // Тикет первого.
      Print(Ticket2); // Тикет второго.
      
      OrderDelete(Ticket2); // Удалили второй - попал в историю.
      
      Sleep(2000); // Подождали и удалили первый - попал в историю.
      OrderDelete(Ticket1);
    
      // Проверка последовательности ордеров в истории - последних двух.
      if (HistorySelect(inFrom, INT_MAX))
      {
        Print("Check the History. inFrom = " + (string)inFrom);
        
        const int Total = HistoryOrdersTotal();
        
        for (int i = Total - 2; i < Total; i++)
          Print(HistoryOrderGetTicket(i)); // Распечатываем тикеты в конце таблицы. 
      }
  
      ExpertRemove();  
    }  
  }  
}


Результат Тестера.

2021.06.19 15:30:46.582 Core 1  EURUSD,M1: testing of Experts\Test9.ex5 from 2021.06.18 00:00 to 2021.06.19 00:00 started with inputs:
2021.06.19 15:30:46.582 Core 1    inFlag=true
2021.06.19 15:30:46.582 Core 1    inFrom=0
2021.06.19 15:30:46.582 Core 1  EURUSD : real ticks begin from 2021.03.15 00:00:00
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:00   ------------
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:00   true
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:00   Create/Delete orders.
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:00   buy limit 0.1 EURUSD at 1.18097 (1.19057 / 1.19097)
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:02   buy limit 0.1 EURUSD at 1.18097 (1.19057 / 1.19069)
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:02   2
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:02   3
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:02   order canceled [#3 buy limit 0.1 EURUSD at 1.18097]
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:04   order canceled [#2 buy limit 0.1 EURUSD at 1.18097]
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:04   Check the History. inFrom = 1970.01.01 00:00:00
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:04   3
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:04   2
2021.06.19 15:30:46.582 Core 1  2021.06.18 00:00:04   ExpertRemove() function called

Все четко и правильно в Тестере! Это не повод ломать Тестер. Это повод вернуть хотя бы поведение Терминала к тому, что было еще в b2958. Там работало только для inFrom = 0, но работало. В Тестере работает для любого inFrom правильно. Это абсолютно логично.


Что имеем на данный момент. HistorySelect в Терминале и в Тестере работают разными алгоритмами. При этом в Тестере этот алгоритм удобный и логичный, да еще и супер-быстрый - дозапись всего, что приходит в историю, в конец таблицы. В Терминале же - нет.


Заметьте, не упоминаю сортировку по какому-либо признаку во время работы советника. Просто говорю о дозаписи в конец (а не в середину) новых элементов истории.

Если же говорить о сортировке, то она нужна только один раз - при запуске советника. И сортировка должна быть по ORDER_TIME_DONE_MSC (при совпадающих значениях - по тикету). Тогда будет полная однозначность HistorySelect-таблицы во время работы и сразу после запуска.

 
Anton:

Вы точно вводите правильный пароль? Сборка (билд) терминала и редактора какая?

b2985, проблема актуальна.

 

Можно ожидать появление нового вида графического объекта - сплайна?

Примерно так это выглядит:

сплайн