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

 
s2101:

В МТ5 с этим всё нормально, но его постигла другая беда, - страшно пожирает память. Если для программиста это приемлемо, то совершенно неприемлемо для трейдера. 

Приведите доказательства и точное описание проблемы.

Какая у вас ос, билд, битность ?

 
alexl:

Приведите доказательства и точное описание проблемы.

Какая у вас ос, билд, битность ?

ОС  W-XP  SP3  32 бит   МТ5  билд 1100
Всё началось с версии 1079. До этого я загружал 4-5 терминалов МТ5 и нормально работал.

На графике ниже процесс загрузки одного терминала MT5, выделено памяти 2006 Мб, из них 270 Мб использует ОС и активные процессы. Разницу "сожрал" МТ5. 

 

 Система представляет собой 8 ТФ по 10 "легких" индикаторов на каждом.  Всего 80 индикаторов. Память "съедает" не "вес" индикаторов, а их количество.  Об этом говорил С-4 на стр.1306 этого форума, - "была выявленная степенная зависимость рода кол-во миллисекунд = 0,000005*n^2 где n - количество ордеров для обработки".

Такая же картина происходит в МТ5 и при расчете индикаторов.

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


 Ниже последовательно загружены  пять терминалов МТ4 с 80-тью тех же, что и в МТ5, легких индикаторов каждый. С памятью всё нормально.
Индикаторы системы с MQL5 на MQL4 переведены, когда в МТ5 линии цен аск, бид и последней цены находились где угодно, но только не там, где должны и работать в МТ5 было невозможно.



 
s2101:
ОС  W-XP  SP3  32 бит   МТ5  билд 1100
Всё началось с версии 1079. До этого я загружал 4-5 терминалов МТ5 и нормально работал.

На графике ниже процесс загрузки одного терминала MT5, выделено памяти 2006 Мб, из них 270 Мб использует ОС и активные процессы. Разницу "сожрал" МТ5. 

 

 Система представляет собой 8 ТФ по 10 "легких" индикаторов на каждом.  Всего 80 индикаторов. Память "съедает" не "вес" индикаторов, а их количество.  Об этом говорил С-4 на стр.1306 этого форума, - "была выявленная степенная зависимость рода кол-во миллисекунд = 0,000005*n^2 где n - количество ордеров для обработки".

Такая же картина происходит в МТ5 и при расчете индикаторов.

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


 Ниже последовательно загружены  пять терминалов МТ4 с 80-тью тех же, что и в МТ5, легких индикаторов каждый. С памятью всё нормально.
Индикаторы системы с MQL5 на MQL4 переведены, когда в МТ5 линии цен аск, бид и последней цены находились где угодно, но только не там, где должны и работать в МТ5 было невозможно.



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

80 индикаторов). Стоит наверно быть скромнее, раз машина уже не тянет. Разбивать по терминалам.

В МТ5 больше тиков.

 
 

Вопрос такой. А где указан лимит кол-ва символов для свойства OBJPROP_TEXT?

bool  ObjectSetString(
   long    chart_id,          // идентификатор графика
   string  name,              // имя
   int     prop_id,           // свойство
   string  prop_value         // значение - какая длина строки???
   );
 
denkir:

Вопрос такой. А где указан лимит кол-ва символов для свойства OBJPROP_TEXT?

в типе
string
 

Вызов конструктора до инициализации статического члена

class A;
//---
class B { public:
         B() { a = new A; } // здесь A::s не инициализирована на момент вызова
        ~B() { delete a; }
        A *a;
};
//---
class C { public:
        static B b;
};
B C::b;
//---
class A { public:
         A() : a( s ) {}
        static int s;
        int a;
};
int A::s = 1;
//---
void OnStart() { Print( C::b.a.a ); } //результат = 0, а должен быть 1
а если описание class A поместить вначале, то результат будет равен 1. Очевидно, что результат не должен зависеть от порядка объявления классов
 

Ошибка при выполнении: invalid EX5 file (8)

class A { public:
        A() : text( NULL ) {} // или text( "произвольный" )
        void f() { ::Print( '0' << this.text ); }
        string text;
};
void OnStart()
{
        A a;
        a.f();
}
 
denkir:

Вопрос такой. А где указан лимит кол-ва символов для свойства OBJPROP_TEXT?

ЕМНИП, для всех строковых свойств максимальная длина 63 символа (64 если с '\0');
 

Уже вторую неделю наблюдаю в выходные подобный баг.

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

Вроде бы это пришло с последним обновлением.

 

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