Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite - страница 39

 
fxsaber:

Нужно оборачивать каждую функцию.
Более того, можно выставить лимитник, но он будет удален автоматически, когда до него дойдет цена, т.к. на открытие нет средств. И это ошибка, которая должна попадать в счетчик.

Паттерны фасад/прокси, в крайности синглтон, думаю могут решить поставленную задачу.
Пока что видится проблема в "дизайне" кода, а не в возможностях MQL.

 
Renat Fatkhullin:

Вышла новая бета 2402:


При отключённой настройке Show trade history, последующие исполненные лимитки выставленные в ручную, всё равно активируют отображение объектов.


 
Roman:


При отключённой настройке Show trade history, последующие исполненные лимитки выставленные в ручную, всё равно активируют отображение объектов.

Исправим.
 
Sergey Dzyublik:

Паттерны фасад/прокси, в крайности синглтон, думаю могут решить поставленную задачу.
Пока что видится проблема в "дизайне" кода, а не в возможностях MQL.

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

ЗЫ На данный момент в некотором смысле счетчиками являются MqlTradeResult.order и MqlTradeResult.id.
 
Roman:

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

На выставление ордера хватает. На его исполнение - нет.

 
Renat Fatkhullin:

Вышла новая бета 2402

Будете что-то с этим делать?

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

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

fxsaber, 2020.03.20 08:36

В MT5 нет никакой защиты от случайного закрытия Терминала. Недавно был такой сценарий.

  • Терминал и браузер раскрыты на все окно. Нахожусь в браузере.
  • Браузер завис, жму на крестик в правом-верхнем углу.
  • Не закрывается, жму еще несколько раз.
  • В определенный момент во время нажатий браузер закрывается - исчезает окно. И в это время крестик Терминала под курсором, куда жал.
  • Терминал закрывается, при этом настолько быстро, что это просто не заметно. Особенно, когда открыто много Терминалов.

Это очень неприятная ситуация во время, например, пакетной Оптимизации. Но еще хуже - для боевого советника. Можно тупо не заметить, что прикончил свой боевой Терминал.


Поставил такую защиту.

void OnDeinit( const int Reason )
{
  if (Reason == REASON_CLOSE)
    MessageBox("Terminal is being closed!");
}

При закрытии появляется сообщение на пять секунд. Поэтому можно понять, что на самом деле произошло. Странно, что в Терминале нет защиты.


Не пробовал, но, возможно, сейчас написание Сервиса с таким MessageBox может также немного помочь.

 
fxsaber:

1) При таком подходе исключается использование чужих библиотек.
2) Ну и маржинальный пример проигнорировали.

1) Абсурдное утверждение, которое противоречит основной сути паттернов фасад/прокси.
2) А в чем игнор? 
Необходим код, определяющий наступления определенного условия - "маржинального события".
Данный код должен вызываться при определенных условиях (таймер, обработчик событий, ...).
Полученный результат выполнения/невыполнения должен передавать на обработку (сохранение, анализ, выполнение действий, ...)

С чем конкретно у вас возникли проблемы и почему "Самому написать такой счетчик почти невозможно" ни кому кроме вас, к сожалению, не известно...

 
Sergey Dzyublik:

1) Абсурдное утверждение, которое противоречит основной сути паттернов фасад/прокси.

2) А в чем игнор? 
Необходим код, определяющий наступления определенного условия - "маржинального события".
Данный код должен вызываться при определенных условиях (таймер, обработчик событий, ...).
Полученный результат выполнения/невыполнения должен передавать на обработку (сохранение, анализ, выполнение действий, ...)

С чем конкретно у вас возникли проблемы и почему "Самому написать такой счетчик почти невозможно" ни кому кроме вас, к сожалению, не известно...

Посмотрите, сколь костыльное решение предлагаете даже на данном этапе обсуждения. Уж не говорю про то, в какие тормоза это будет выливаться при Оптимизации.

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


Счетчик ошибок с их стороны - это элементарно для них и для пользователей. Не надо тормозных костылей.

int _LastErrorCount;
 
Зависание Терминала, если закрыть чарт с этим советником и не нажимать OK.
void OnDeinit( const int Reason )
{
  if (Reason == REASON_CHARTCLOSE)
    MessageBox("ChartClose");
}
 
Renat Fatkhullin:

Вышла новая бета 2402

Есть в планах борьба с жуткими тормоза Тестера при сопровождении нескольких ордеров?

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

Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы

fxsaber, 2020.04.28 23:01

Кто умеет пользоваться СБ для создания ООП-советников, просьба создать советник, как портфель из 20 одинаковых ТС. И поделиться результатами производительности такого портфеля ТС в Тестере.


Для примера, у меня проход одной ТС (на отложках) занимает секунду. Портфель из 20 таких ТС > 30 минут. Т.е. замедление не в 20 раз, а  в 2000 раз - на два порядка больше, чем должно быть.

Выходит, что Тестер не годится для портфельной торговли.