Используя данный код, эксперт за одну миллисекунду отправляет сразу три сигнала по одной из указанных в коде валютных пар
Вы что то делаете не так. Всё работает как надо.
bar buy! EURUSDrfd 2024.11.0421:03:06
bar buy! GBPUSDrfd 2024.11.0421:03:06
bar buy! AUDUSDrfd 2024.11.0421:03:06
bar buy! EURUSDrfd 2024.11.0421:04:00
bar buy! GBPUSDrfd 2024.11.0421:04:00
bar buy! AUDUSDrfd 2024.11.0421:04:00
bar buy! EURUSDrfd 2024.11.0421:05:01
bar buy! GBPUSDrfd 2024.11.0421:05:01
bar buy! AUDUSDrfd 2024.11.0421:05:01
bar buy! EURUSDrfd 2024.11.0421:06:11
bar buy! GBPUSDrfd 2024.11.0421:06:11
bar buy! AUDUSDrfd 2024.11.0421:06:11
bar buy! EURUSDrfd 2024.11.0421:07:00
bar buy! GBPUSDrfd 2024.11.0421:07:00
bar buy! AUDUSDrfd 2024.11.0421:07:00
Использовать строгое соответствие (если это возможно).
Попробовать стандартное повышение типа.
Попробовать стандартное преобразование типа.
Стандартное повышение типа лучше, чем остальные стандартные преобразования. Повышение - это преобразованиеfloatвdouble, а такжеbool,char,shortилиenumвint. Кроме того, к стандартным преобразованиям относятся преобразования массивов похожихцелых типов. Похожими типами являются: bool, char, uchar, так как все три типа являются однобайтовыми целыми; двубайтовые целые short и ushort; 4-байтовые целые int, uint и color; long, ulong и datetime.
Несомненно, строгое соответствие является наилучшим. Для достижения такого соответствия могут использоватьсяприведения. Компилятор не справится с двусмысленной ситуацией. Поэтому не следует полагаться на тонкие различия в типах и неявные преобразования, которые делают перегруженную функцию неясной.
Если вы сомневаетесь, используйте явные преобразования для обеспечения строгого соответствия.
Приведите пример trailing stop для MetaTrader 5.
ЗЫ. Про все пары из обзора рынка, первый раз написано. В предыдущих постах задача ставилась по другому.
ЗЫЫ Для всех символов, предложенный вариант не подходит.Используя данный код, эксперт за одну миллисекунду отправляет сразу три сигнала по одной из указанных в коде валютных пар
Используя данный код, эксперт за одну миллисекунду отправляет сразу три сигнала по одной из указанных в коде валютных пар
Вы что то делаете не так. Всё работает как надо.
Вы что то делаете не так. Всё работает как надо.
Опять возникли какие-то неполадки. Полагаю, что ваш код будет работать в случае, если сразу по всем трем валютным парам будет сигнал. Иначе нет

Логично, вроде, int -> double.
Логично, вроде, int -> double.
Почему логично? Почему компилятор должен выбрать именно double, а не string?
почему это не баг
Если я правильно понимаю, то int --> double не относится даже к стандартному преобразованию (как и int --> string).
Поправьте, если я ошибаюсь
https://www.mql5.com/ru/docs/basis/function/functionoverload
Алгоритм выбора перегруженной функции
Стандартное повышение типа лучше, чем остальные стандартные преобразования. Повышение - это преобразование float в double, а также bool, char, short или enum в int. Кроме того, к стандартным преобразованиям относятся преобразования массивов похожих целых типов. Похожими типами являются: bool, char, uchar, так как все три типа являются однобайтовыми целыми; двубайтовые целые short и ushort; 4-байтовые целые int, uint и color; long, ulong и datetime.
Несомненно, строгое соответствие является наилучшим. Для достижения такого соответствия могут использоваться приведения. Компилятор не справится с двусмысленной ситуацией. Поэтому не следует полагаться на тонкие различия в типах и неявные преобразования, которые делают перегруженную функцию неясной.
Если вы сомневаетесь, используйте явные преобразования для обеспечения строгого соответствия.
Почему логично?
Потому что числа. Если в C++ такая же байда - проехали.
Потому что числа. Если в C++ такая же байда - проехали.
Если:
то:
А если:
то тогда ок.