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

 
Правильно ли понимаю, что нет мультивалютного советника в поставке MT5?
 
fxsaber #:
Правильно ли понимаю, что нет мультивалютного советника в поставке MT5?

Не видел. Вы будете первым, кто напишет лаконичный и понятный всем код 😉

 

В ALT+E WebView2-отчете есть такая диграмма.

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

 
samores #:
Что делать, куда обращаться ??

Сюда.

 
bred_bred1 #:
Привет,

Нашёл возможную логическую ошибку в ключевом коде стандартной библиотеки, а конкретно в методе Direction класса СExpertSignal
Фильтры посылающие в этот модуль значение 0.0 посредством своих собственных методов Direction

в результате отсутствия раннего выхода из текущей итерации лупа при direction 0.0 добираются до

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

А так как итоговая переменная result определяющая направление и силу сигнала с учётом всех фильтров высчитывается как

что в связке например любого сигнального индикатора и модуля СSignalITF  - intraday time filter - приводит к уменьшению результирующего сигнала в два раза.

Если условная СSignalMA говорит direction = 100, а стандартный СSignalITF в обычный разрешенный день/час/минуту  в соответствии со своим кодом выдаёт всегда direction = 0.0, то сейчас получается result = (100 + 0.0) / 2 проголосовавших = 50 результирующая сила сигнала.
А в реальности все фильтры с 0.0 не должны считаться голосовавшими.

Взял советник, использующий этот модуль. Получил результаты. Внес предложенный Вами текст. Результат абсолютно тот же.

 

В одном случае есть ошибка при компиляции, а в другом - нет

int a{{ 1 }}; //(1)//нормально ???
int b{{{2}}}; //(2)//Error: '{' - unexpected token

А какая принципиальна разница между (1) и (2) ?

 
A100 #:

В одном случае есть ошибка при компиляции, а в другом - нет

А какая принципиальна разница между (1) и (2) ?

Если Вы на двери своей квартиры напишете №125 или №125№ то  соседи это стерпят. Но если Вы напишете №№125№№ то соседи скажут ... Догадываетесь что скажут? Вот такая логика и у компилятора!

Помните в MQL-4 была путаница с приоритетом дизъюнкции и конъюнкции? Ее потом устранили а для совместимости добавили директиву Проперти стрикт ?

В языке MQL-5 есть более серьезные ошибки...

 
Konstantin Erin #:

Помните в MQL-4 была путаница с приоритетом дизъюнкции и конъюнкции? Ее потом устранили а для совместимости добавили директиву Проперти стрикт ?

Не помню - MQL4 не застал

Konstantin Erin #:

В языке MQL-5 есть более серьезные ошибки...

Более серьезные не попадались - последнее время использую MQL только лишь как коннектор к современному языку более высокого уровня. К слову сказать компилятор, который я использую - университетский проект - студенты на коленке собрали и за 3 года активного освоения - ни одной ошибки там не встретилось

 
Ошибка при компиляции:
struct S {
    int i;
    char ch[5];
};
void OnStart()
{
    Print(sizeof(S::ch)); //Error: 'ch' - access to non-static member or function
}
 
A100 #:
Ошибка при компиляции:

Правильно. Вы пытаетесь обратиться к ch как к статическому элементу без объекта. Отсюда и ошибка. В вашем случае:

struct S {
    int i;
    static char ch[5];
};
void OnStart()
{
    Print(sizeof(S::ch));
}

Но тогда ch будет общий на все объекты S.

struct S {
    int i;
    char ch[5];
};
void OnStart()
{
    S s;
    Print(sizeof(s.ch));
}