Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления - страница 3

 

Вспомнилась давняя проблема по балансировке заданий агентам при оптимизации, когда 1-2 агентам осталось несколько сотен заданий (просто неудачно достались задачи, которые медленнее решаются), а другие уже завершили работу и простаивают. Потери времени исчисляются часами.  Может и ее уже можно решить?

https://www.mql5.com/ru/forum/425910/page4#comment_39901662

Новая версия платформы MetaTrader 5 build 3320: Улучшения и исправления - Надеюсь, что в тестере появится время. Надо-же уметь пользоваться стандартными примочками ОС.
Новая версия платформы MetaTrader 5 build 3320: Улучшения и исправления - Надеюсь, что в тестере появится время. Надо-же уметь пользоваться стандартными примочками ОС.
  • 2022.05.31
  • www.mql5.com
что много на себя взяли - раскидало по паре заданий другим. что можно просто отслеживать завершившие задания и давать им на выполнения те задания. что еще не добрались до выполнения ранее выданного задания
 

!

Прошу добавить в терминал революционный функционал:


Нестандартные таймфреймы со сдвигом назад в 1, 2, 3, 4  минуты

Когда сигнал приходит на стандартное начало H1 (как пример), то может произойти неприятная волатильность, реквоты и офквоты. Это связано с выходом новостей и с тем, что 99,99% трейдеров используют классические таймфреймы.

Но что если график будет H1, но со сдвигом в 1-2 минуты. Мы получаем невероятное преимущество над остальными трейдерами.

Особенно будет заметно в автоматических советниках.

Говорят же, что один алгоритм перестаёт работать, если по нему работают много трейдеров. А тут у МТ5 будет преимущество! Это ли не УТП?


Следом, если появится график ренко и XO, то тоже будет гуд. Ходили легенды, что трейдеров, использующих график ренко очень не любят ДЦ.

 

При просмотре длинных сообщений окно алертов приходится растягивать по ширине

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

 
elibrarius #:

Вспомнилась давняя проблема по балансировке заданий агентам при оптимизации, когда 1-2 агентам осталось несколько сотен заданий (просто неудачно достались задачи, которые медленнее решаются), а другие уже завершили работу и простаивают. Потери времени исчисляются часами.  Может и ее уже можно решить?

https://www.mql5.com/ru/forum/425910/page4#comment_39901662

Вместо того, чтобы сразу распределять все задания равномерно по агентам, следует сначала дать каждому максимум, например 10 заданий. Остальные задания распределять по мере выполнения. Тогда у последнего агента останется вместо сотен максимум 10 заданий, что ускорит тестирование в десятки раз. А если при наличии освободившихся агентов отзывать задания у ленивых - будет вообще супер.
 
Konstantin Erin #:
Вы не представляете, сколько лет уже таким предложениям...
По обоим вопросам. И тишина.
 
Edgar Akhmadeev #:
Вы не представляете, сколько лет уже таким предложениям...
По обоим вопросам. И тишина.
С новым годом. Ждали меня. Для скорейшего продвижения толковых предложений обращайтесь в личку ко мне или напрямую к Деду Морозу.
 

Forum on trading, automated trading systems and testing trading strategies

Bug: EnumToString(SYMBOL_SWAP_MODE_CURRENCY_MARGIN)

amrali, 2023.01.02 09:20

I found this bug when using EnumToString() to display the swap calculation mode of a symbol.

#define PRINT(A) Print(#A + " = \"" + (A) + "\"")
void OnStart()
{
    Print("Build: ",TerminalInfoInteger(TERMINAL_BUILD));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_DISABLED));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_POINTS));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_CURRENCY_SYMBOL));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_INTEREST_CURRENT));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_INTEREST_OPEN));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_REOPEN_CURRENT));
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_REOPEN_BID));

    // Error: the returned text description does not match the enumeration value!
        PRINT(EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_CURRENCY_MARGIN));
}

// Output:

/*
Build: 3555
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_DISABLED) = "SYMBOL_SWAP_MODE_DISABLED"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_POINTS) = "SYMBOL_SWAP_MODE_POINTS"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_CURRENCY_SYMBOL) = "SYMBOL_SWAP_MODE_CURRENCY_SYMBOL"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT) = "SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_INTEREST_CURRENT) = "SYMBOL_SWAP_MODE_INTEREST_CURRENT"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_INTEREST_OPEN) = "SYMBOL_SWAP_MODE_INTEREST_OPEN"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_REOPEN_CURRENT) = "SYMBOL_SWAP_MODE_REOPEN_CURRENT"
EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_REOPEN_BID) = "SYMBOL_SWAP_MODE_REOPEN_BID"

EnumToString((ENUM_SYMBOL_SWAP_MODE)SYMBOL_SWAP_MODE_CURRENCY_MARGIN) = "SYMBOL_SWAP_MODE_BY_INTEREST"
*/

Подтверждаю баг.

 

Решил скопом вспомнить несколько старых простых идей:


1. Баланс и прибыль/убыток скрывать, как в банковских приложениях. Ну реально. Проблема трейдеров N1 - нервяки от наблюдения за открытой позицией. Я ещё этот момент видел в позабытом телетрейд-офисе лет 10 назад, когда рекомендовали бумажкой закрывать баланс, чтобы не впадать в тильт и не принимать решения на эмоциях.

https://www.mql5.com/ru/forum/373462/page3#comment_23890468


2. Супер мега удобный шаблон графика (цвета по дефолту) на замену кислотного желтого, который вообще ни к чему.

Первое знакомство с терминалом, это ведь то, как видешь график. И видеть его в стиле Sega 90-х, прямо вообще никак.

https://www.mql5.com/ru/forum/373462/page3#comment_23890863


3. Боковое меню, контролирующее окна с продуманной архитектурой. Это вообще тренд всех браузеров и веб-приложений и почти всего софта. Не использовать его, просто быть, как Yahoo (может кто читал про череду управленческих решений)

https://www.mql5.com/ru/forum/432624/page5#comment_42121534


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


5. Иконки пора рисовать по новой. Опыт получен, значит можно провести апгрейд ещё более эффективно.

Теперь уже использовать полностью одноцветный вектор для того, чтобы внедрить цветовые темы (тёмная светлая). Веб-терминал сейчас так делается, ну вот.

Даже сейчас белая тема не белая. Но можете добавить в меню выбор оформления Classic и Новый. Некоторые в своём софте делают кнопку переключатель в интерфейсе на переходный период и отслеживают поведение.


6. Почему "Ctrl+колесик вверх" сужает график, а не наоборот?. В любом софте это увеличение масштаба, ну так не путайте.


7. Почему при двойном клике на валютную пару в навигаторе открывается не новый график в новом окне, а окно открытия позиций? Кто-то реально этим пользуется? Ну хоть один. А вот открытие нового графика весьма кстати бы было.


Блин, дальше пока нет смысла писать... Хотя Вы замечали, какая портянка вылезает при нажатии правой кнопки по экрану? По высоте надо сократить раза в три. Сгруппировать хотя бы...

Дизайн терминала Metatrader - Зачем я решил создать тему о дизайне и удобстве терминала?
Дизайн терминала Metatrader - Зачем я решил создать тему о дизайне и удобстве терминала?
  • 2021.07.25
  • www.mql5.com
Конечно для современного дизайна было бы неплохо добавить. Если есть предложения по улучшению дизайна и удобства терминала. Поэтому то я решил создать тему о дизайне терминала и удобств его пользования. А соперники - дизайн и удобство новых других терминалов
 
Vitaliy Kuznetsov #:

Блин, дальше пока нет смысла писать... Хотя Вы замечали, какая портянка вылезает при нажатии правой кнопки по экрану? По высоте надо сократить раза в три. Сгруппировать хотя бы...

А вот это не надо - пусть будет портянка!

 
Vitaliy Kuznetsov #:

Давно обращал внимание на мигание, например, уровневых индикаторов. Мигает до тех пор, пока не загрузятся все бары на графике. Возможное решение - не давать рисовать линии, пока всё не загрузится, но тогда некоторые будут думать, что индикатор не работает. Тогда конечно можно выводить надпись "Loading". И всё же, решение на уровне терминала было бы логичнее. А также скорость перерисовки линий/прямоугольников с привязкой к X/Y тоже происходит с некоторым дёрганьем.

Итог, МТ5 затачивается под автоторговлю, но под работу с индикаторами пока что быстрее МТ4, хоть и не без изъянов. Да, да, всё понимаю, 21 век на дворе, все трейдеры уже в МТ5... но не точно

я решил этот вопрос иначе раз и на всегда, у меня класс индикоторов который создает и расширяет колличество индикаторов с подсчетом резерва plot и buf .... .... ...  на каждый буфер имеет память последнего рассчета, и глобально имеет память всех баров (последние 2048), и вот если прев-кальк = 0 то очевидно произошло обновление баров истории, искуственно, то есть некая синхронизация с сервером, я обращаюсь к базе и проверяю на каком баре был последний рассчет, если обрыв инета или уснул комп то нескольких баров не будет в истории моего индикатора, а тайм коды баров все совпали то проверяем целостность изменения истории и как выяснилось историю правят, не критично 1-2 пункта раз в неделю, и при пересинхронизации может преррасчет происходить то 100 000 раз так как обновление каждого бара с подписью график  синхронизирован может срывать синхронизацию и по времени с биржей и по другим инструментам, и вот если моя история подобна истории графика то ничего не делать, либо пересчитать только точки изменения и блоки изменений например у сма30 болк 30 баров но это 1 свечка с блоком 30 а не вся история, и вот 999 сма запускаем на расчет, мт считает за 8,7 сек на моем компе, а в моем классе за 3,2 сек,
при разрыве истории 16мс, вместо 8700мс, нагрузка на память около 1,5 мегабайта на график так как память истории идет хенделом как отдельный индикатор и все индикаторы графика берут инфу у него,
примечание. любое подобное тестирование требует уникальных параметров так как мт5 экономичный и если вы посчитаете 10 одинаовых сма то расчет будет однократный, а если это еще и применять по обращению через хенделы то можно делать быстрые сборки,
резюме в мт5 все очень круто и гибко сделанно и есть 99% процессов которыми просто тупо никто не пользуется, документации корректной нет, все нужно выявлять тестами ручками и прейти к пониманию что документация кривая и вводит в заблуждение, но потом читаешь и понимаешь что да возможно имелось в виду то что оно и делает, но без полного понимания процесса, от документации толку мало,
есть изящное решение этих вопросов, это выдать большую часть закрытых классов в общий доступ, чтобы можно было понять как на самом деле работает тот или иной процесс, но я думаю мт-шники боятся что кто то начнет копировать терминал.

мт5 супер, нужно просто уметь его готовить, и не пытаться думать что он хоть чем то похож на мт4

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