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

 
fxsaber:
LifeHack: получение любого количества окон визуализации.
Делаете из Metaeditor отладку на истории - CTRL+F5. Появившееся окно визуализации не закрываете, но закрываете окно терминала. Далее - с начала. Т.о. будут появляться новые окна визуализации, что бывает удобно при анализе изменений результатов советника, в зависимости от правок в коде.

Можно проще. Запускать визуализацию с форвардом.

Следующая визуализация запустится на втором, форвардном, визуализаторе

 
fxsaber:
Хотелось бы видеть в Тестер->Настройки опцию "Удалить предыдущие журналы после Старта". Утомляет каждый раз мышкой нажимать "Удалить журналы" в Тестер->Журнал. Очевидно же, что журналы от прошлых бэктестов могуть пригодиться в редких случаях. Чаще всего они не нужны. Поэтому опция автоматического удаления старых логов пригодилась бы и для удобства и для экономии пространства на HDD/SDD.
Всё правильно. "могут пригодиться в редких случаях"
 
fxsaber:
Как узнать вкл/выкл Hedge-режим на счете/тестере? В оффлайн-справке об этом ни слова.

Наведите мышку на счёт в навигаторе. Увидите в тултипе счёта.

После подключения к счёту в журнал терминала пишется netting или hedging

 

Ранее по заявке #1534780 об опережающем вызове конструктора где результат прилагаемого кода был

2016.08.10 16:39:26.982 Test (GBPUSD,M15) void A::~A():12855
2016.08.10 16:39:26.982 Test (GBPUSD,M15) OnDeinit:3
2016.08.10 16:39:26.975 Test (GBPUSD,M4) void A::A():17233
2016.08.10 16:39:15.587 Test (GBPUSD,M15) void A::A():12855

ответ (*) был следующим:

Support Team 2016.08.11 13:35

Никакого опережающего вызова нет, при смене таймфрейма создаётся (клонируется) новый индикатор, затем удаляется предыдущий


Если так, то следующий пример говорит о запаздывающем вызове конструктора

Последовательность действий:

  1. Открыть новый график GBPUSD,M15
  2. Изменить период графика на H1
  3. Присоединить к графику индикатор Test.ex5
  4. Изменить период графика на M15

Результат:

2016.08.11 15:51:51.188 Test (GBPUSD,M15) void A::A():17936
2016.08.11 15:51:50.932 Test (GBPUSD,H1) void A::~A():12285
2016.08.11 15:51:50.931 Test (GBPUSD,H1) OnDeinit:3
2016.08.11 15:51:39.421 Test (GBPUSD,H1) void A::A():12285

а должно быть (см.*) - подчеркнутая строка должна идти 2-ой (по времени) а не последней

//Test.mq5
class A { public:
        A() : a( MathRand()) { Print( __FUNCSIG__, ":", a ); }
        virtual ~A()         { Print( __FUNCSIG__, ":", a ); }
        int a;
};
static A a;
void OnInit() {}
void OnDeinit( const int reason ) { Print( __FUNCTION__, ":", reason ); }
int OnCalculate( const int rates_total, const int, const int, const double& [] ) { return rates_total; }
 

Расчёт индикаторов происходит в отдельном потоке символа, установка периода чарта и создание клона - в потоке GUI

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

Работа потока символа (абстрактно)

  1. действие #1
  2. действие #2
  3. действие #3 - расчёт индикаторов
  4. действие #4
  5. действие #5 - проверка и удаление неиспользуемых индикаторов
  6. действие #6
  7. действие #N
  8. перейти к п.1, если не остановка потока

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

 
Slawa:
Всё правильно. "могут пригодиться в редких случаях"
Ну так и логично не писать гигабайты, когда пользователь специально об этом просит. Все равно же приходится их чистить в ручном режиме.
 
Slawa:

Наведите мышку на счёт в навигаторе. Увидите в тултипе счёта.

После подключения к счёту в журнал терминала пишется netting или hedging

Программно как?!
 
fxsaber:
Программно как?!
ENUM_ACCOUNT_MARGIN_MODE margin_mode=(ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE);
bool is_hedging=(margin_mode==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
 
fxsaber:
Как узнать вкл/выкл Hedge-режим на счете/тестере? В оффлайн-справке об этом ни слова.

Справочник MQL5 - Стандартные константы, перечисления и структуры - Состояние окружения - Информация о счёте - ENUM_ACCOUNT_MARGIN_MODE

Справочник MQL5 - Информация о счёте - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade\Trade.mqh - CTrade::IsHedging

 
Slawa:

Справочник MQL5 - Стандартные константы, перечисления и структуры - Состояние окружения - Информация о счёте - ENUM_ACCOUNT_MARGIN_MODE

Справочник MQL5 - Информация о счёте - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade\Trade.mqh - CTrade::IsHedging

Спасибо! Каюсь, искал по слову Hedge.
Причина обращения: