Ошибки, баги, вопросы - страница 3417
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
MT4 и MT5 не работают одинаково с FileWriteString. Как пример, пришлось такой способ конвертации MT4->MT5 использовать, чтобы MT5 выдавал тот же результат, что и MT4.
Однако, мне сразу стало понятно, в чем проблема, и быстро написал это. В ином же случае можно просто перебрать все возможные комбинации флагов. По комбинаторике их немного.
Возможно, имеет смысл проверить на линуксе MT4, а потом уже искать решение под MT5.MT4 тут никаким боком, никогда с ним не работал, кроме перевода с него на MT5 пары индикаторов.
С флагами проблем нет, если только возможность записи в файл в определённой кодировке не зависит от флагов режима доступа.
Просто под Линуксом (Wine) не работает вывод в файл в кодировке UTF-8.
В CP-1251 и в UTF-16 - работает, а в UTF-8 - нет.
Если я не прав и кому-то удалось под Wine штатными средствами MT5 записать в файл UTF-8 - покажите, как.
Кстати, эта тема тут уже поднималась, рабочего решения никто не показал, разработчики проигнорили.
Я привёл код, воспроизводящий проблему https://www.mql5.com/ru/forum/1111/page3416#comment_50488072
Мне это не критично, но проблема существует.
Код, который вы предоставили, выполняет вставку нового элемента в двусвязный список на заданной позиции. Однако вы правильно заметили, что есть несколько проблем с текущей реализацией.
if(index>m_data_total || index<0) return(-1); : Эта строка проверяет, что индекс находится в правильных границах. Если индекс меньше нуля или больше общего количества элементов в списке, возвращается -1. Вполне верно, что на практике часто используют возможность вставки элемента в конец списка по индексу -1, но в вашей реализации так делать нельзя из-за этой проверки.
if(index==-1) ... : Этот блок кода должен позволить вставить элемент в конец списка, если указан индекс -1. Но, как вы правильно заметили, до этого места кода выполнение не дойдет из-за предыдущей проверки.
В остальных строках обрабатываются остающиеся случаи: вставка элемента перед текущим узлом ( m_curr_node ) или добавление элемента в конец списка, если указанного индекса не существует.
Хорошо подмечено, что в этом коде есть противоречия/баги, которые не позволяют ему работать должным образом. Это могут быть ошибки, сделанные программистом. Если вы хотите изменить этот код, чтобы он позволил вставлять элемент в конец списка по индексу -1, вы можете изменить проверку индекса следующим образом:
if(index > m_data_total || index < -1) return(-1);
Такой код позволит пропускать индекс -1.
Под Wine файлы в UTF-8 не пишутся. Файл нулевой длины, и ошибки тоже нет.
Если сделать так
пишется в UTF-16
Исправили в билде 4067.
Обновитесь, пожалуйста.
Здравствуйте.
Напишите, пожалуйста, системные требования к Metatrader 4/5 на страницах справки и загрузки. Когда MT5 перестал быть совместимым с 32-разрядными ОС?
Когда MT5 перестал быть сосвместимым с 32-разрядными ОС?
Да уж несколько лет как.
Ошибка при выполнении:
Результат: true:false
Ожидалось: true:true
Какая принципиальная разница между (1) и (2) ?
Когда матрицы будут с типом данных int и меньше? Для машинного обучения мне требуется работать с бинарными данными, а флоты крайне избыточно употребляют память.
Неизвестно когда.
На матрицах целочисленного типа происходит катастрофическая потеря точности. Если речь идёт о машинном обучении, то матрицы весов по-любому должны быть вещественного типа, пусть даже и float. А на векторах слоёв вы много не выиграете.
Я понимаю, если бы был запрос на float16. Но, это всё - экономия на спичках