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

 
Andrey Khatimlianskii:

Были бы тики за 20 лет, использовал бы их? Можно я не буду интересоваться — зачем? )

Ну ок, можно настраивать супер-умную само-адаптирующуюся стратегию, и из интереса прогнать ее разок на 20-тилетней тиковой истории. Из интереса. Разок.

Но не для работы, не в виде штатной возможности.


А если рассинхрон, почему веришь барам? Это вообще нонсенс.

Здесь не в стратегии дело, а в правильной визуализации динамичного ТФ, который будет гораздо более наглядный и удобный, чем существующая архаичная таймфреймовая система. 
Также для возможности внутреннего теста "на лету". 
Хотя на некотурую точность в стратегиях это тоже может повлиять в положительном смысле. 

ну вот хотя бы маленький пример: 
Как строить обычный ZigZag, когда не известно, какое событие наступило первее, High или Low?




или


 
если ты это пытаешься выяснить для дневных баров, то нет гарантий, что при max_bars = 50000, ты сможешь загрузить более младшие таймфреймы для данного времени бара, и тиков тоже. 

 
Ошибка при выполнении:
void OnStart()
{
    uchar array[];
    const string text = "All Files\0*.*\0\0";
    const int start = 0, count = StringLen( text );
    Print( StringToCharArray( text, array, start, count ), ":", count );
}

Результат:  10:15

Ожидалось 15:15

Хотел использовать результат в WinAPI функции GetSaveFileNameA, а не могу из-за бага


 
A100:

Так уже давно. mql строки очень не любят нуль символы внутри строки и в литералах, в функциях тоже.

Единственный нормальный способ - переводить в массив три строки с завершающим нулем.

Т.е. такое поведение как сейчас было сделано намеренно несколько лет назад. Причин не знаю.
 
Andrei Trukhanovich:

Так уже давно. mql строки очень не любят нуль символы внутри строки и в литералах, в функциях тоже.

Единственный нормальный способ - переводить в массив три строки с завершающим нулем.

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

А какая функция, кроме StringToCharArray неправильно с внутренними нулями работает?

Например StringToShortArray - работает без ошибок

StringCompare раньше неправильно работала, но это уже давно исправили

Что касается StringLen, то

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

Ошибки, баги, вопросы

A100, 2019.05.15 13:45

Просто частично исправили ошибки ... почему бы и нет!? На моей памяти StringLen всегда работал правильно (по крайней мере в x32)

 
A100:

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

 

Отличный форум, получил на отправке ответа днем. Ответ само собой потерялся.

Понедельник, середина дня..


 

Несколько терминалов свернуты. При этом каждый терминал выдает алерты в свои алерт-окна - не свернуты.

Как понять, какое алерт-окно соответствует какому терминалу?

 
fxsaber:

Несколько терминалов свернуты. При этом каждый терминал выдает алерты в свои алерт-окна - не свернуты.

Как понять, какое алерт-окно соответствует какому терминалу?

 Про уникальный ID терминала мне ничего не известно, но можно добавить в алерт AccountInfoString(ACCOUNT_COMPANY). Я не думаю, что у кого-либо несколько экземпляров MT5 будут залогинены одновременно в одну и ту же брокерскую компанию, хотя гипотетически такое всё же может быть целесообразно, если необходимо сидеть на разных счетах одного брокера. В таком случае (на худой конец) может сгодиться AccountInfoInteger(ACCOUNT_LOGIN) или AccountInfoString(ACCOUNT_SERVER).

 
x572intraday:

 Про уникальный ID терминала мне ничего не известно, но можно добавить в алерт AccountInfoString(ACCOUNT_COMPANY). Я не думаю, что у кого-либо несколько экземпляров MT5 будут залогинены одновременно в одну и ту же брокерскую компанию, хотя гипотетически такое всё же может быть целесообразно, если необходимо сидеть на разных счетах одного брокера. В таком случае (на худой конец) может сгодиться AccountInfoInteger(ACCOUNT_LOGIN) или AccountInfoString(ACCOUNT_SERVER).

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

 
A100:

А какая функция, кроме StringToCharArray неправильно с внутренними нулями работает?

Например StringToShortArray - работает без ошибок

StringCompare раньше неправильно работала, но это уже давно исправили

Что касается StringLen, то


Вы правы, изменил поведение StringToCharArray, теперь на всю длину строки, а не до первого символа '\0'