Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если это МТ4, то да.
Похоже, чтобы убрать нагрузку нужно пользоваться OpenCL. Но в МТ4 его нет. Либо просто мириться с ней.
Еще вариант, - дать возможность пользователю самому регулировать скорость перерисовки анимации. В этом случае, он сможет снизить нагрузку на процессор когда нужно, и повысить обратно если захочет.
Похоже, чтобы убрать нагрузку нужно пользоваться OpenCL. Но в МТ4 его нет. Либо просто мириться с ней.
Еще вариант, - дать возможность пользователю самому регулировать скорость перерисовки анимации. В этом случае, он сможет снизить нагрузку на процессор когда нужно, и повысить обратно если захочет.
Интересно в МТ5 проверить работу двух экспертов, которые установлены на разных окнах, но работают с ресурсами только одного окна. Ведь у каждого советника свой поток, а, как известно, в одно окно не кинешь больше одного эксперта.
Так вроде, в МТ4, у каждого советника тоже свой поток. Если не ошибаюсь...
Поток то свой, а процессор на всех один...
Думаю, потому и создали граф.карту.
Есть еще нюанс.
Если анимация цикличная (как гиф), то не обязательно переинициализировать массив пикселей постоянно. Можно пройти один цикл рисования анимации и сохранить каждый кадр в ресурсе. Далее, просто переключать изображение. Частично, я это реализовал и благодаря этому, добился многократного ускорения анимации. (В начале скорость анимации была ужасной, потому что каждый раз заново рисовал исходное изображение, а потом на нем рисовал новое изображение).
Так вроде, в МТ4, у каждого советника тоже свой поток. Если не ошибаюсь...
Поток то свой, а процессор на всех один...
Думаю, потому и создали граф.карту.
Просто чтобы оценить разницу МТ4 и МТ5, запусти этот код на обоих платформах (код работает там и там) и ты увидишь, что в МТ4 он работает на порядок медленнее:
Просто чтобы оценить разницу МТ4 и МТ5, запусти этот код на обоих платформах (код работает там и там) и ты увидишь, что в МТ4 он работает на порядок медленнее:
Да, поставил там и там. Разница примерно в 10 раз. Именно потому, что в МТ5 массивы инициализируются в 10 и более раз быстрее. Я проверял.
Однако, даже на МТ4 все должно быть гораздо быстрее. Ведь ты просто перерисовываешь изображение. Другое дело, если ты многократно его обрабатываешь в массиве.
Не знаю, почему у тебя так медленно на МТ4 работает.
Впрочем, возможно дело в том, что ты переинициализируешь КАЖДЫЙ пиксель на всем пространстве канваса размером с график.
В моей анимации, рисуются только отдельные области, а основная часть изображения берется целиком из ресурса. У тебя нет основной части, и изображение создается полностью. Поэтому, тормозит.
Дело в размере рисунка.
Впрочем, возможно дело в том, что ты переинициализируешь КАЖДЫЙ пиксель на всем пространстве канваса размером с график.
В моей анимации, рисуются только отдельные области, а основная часть изображения берется целиком из ресурса. У тебя нет основной части, и изображение создается полностью. Поэтому, тормозит.
Дело в размере рисунка.
Какая разница. Это специально экстримальный пример, который наглядно демонстрирует преимущества МТ5 в скорости канваса. А этот вопрос архиважный в твоем детище. Поэтому уже давно говорю - переходи на MQL5.
Минусы МТ4, - то что нужно в разработке. От них не нужно бежать. Они заставляют думать и совершенствовать решения.
На МТ5 и стараться особо не надо. Все и так работает быстро. Поэтому, переход на МТ5 запланирован в финале.
Наконец то, динамичная таблица сделана. Должен сказать, что это было нелегко. Оказалось, что имеется много нюансов.
Также, эта таблица "условно" динамичная. То есть, максимальное количество рядов заранее определено. Сделать "абсолютно" динамичную, пока не удалось.
В этой таблице, - 20 возможных рядов. Значит, она может показывать 20 открытых позиций. Можно было сделать и больше, но пока это просто демонстрация.
Нажмите, чтобы посмотреть.
Вот файлы подключения (поместить в инклюд), движок(в папку индикаторов), и тест.советник (в папку экспертов):
Петр, извини, но твоя работа не принимается, т.к. то, что ты прислал - редкостная халтура. Извини но кажется я единственный кто запустил то, что ты прислал, и кроме меня никто экспертизу этого не сделает.
Итак по-порядку, задание было следующее:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Мой подход. Ядро - Движок.
Vasiliy Sokolov, 2018.12.26 13:29
Петр, вот задание. Сделай панель, отображающую текущие открытие ордера в МТ4. Полную копию системной панели делать не надо, отобрази максимально простую таблицу с базовыми свойствами открытых ордеров: цена открытия, направление, профит. Остальное на твое усмотрение. Главное, что бы при закрытии ордера, его отображение в твоей таблице также исчезало. И наоборот, при открытии нового ордера, он появлялся бы в этой таблице.
Что я вижу вместо этого:
Во-первых, сделки можно открыть только в твоей панели, нажимая кнопку buy/sell. Если позицию открыть через стандартное окно, то сделка не появляется.
Во-вторых, некоторые ордера отображаются с пустыми значениями. В таблице они присутствуют, но строки пустые.
В-третьих, (это вообще жуть), если ордер закрыть через стандартный диалог, то он не исчезает в таблице. Но самое печальное, что при перезагрузки панели, закрытые ордера вновь отображаются как якобы открытые! Это что такое? Зачем ты где-то хранишь нерелевантную информацию, а потом пытаешься ее грузить!?
В-четвертых, какие к черту 20 ордеров? У меня в задании ни слова об этом ограничении! Сделано это было специально, что бы проверить твой движок на работу с динамическим и заранее неизвестным окружением. Задание было выбрано не случайно, ты же изменил мои требования, так, что бы скрыть все "острые углы" твоего движка. Но задание для того и давалось что бы эти острые углы показать.
В-пятых, самодеятельность по установки стоп-лоса и тейк-профита - не надо этого делать. Оставь эти поля пустыми.
И да, кнопка закрыть позицию (крестик) в твоей панели тоже не работает.
Короче, Петр. Говорю еще раз: извини, но то что ты прислал, халтура полная. Исправь пожалуйста согласно техническому заданию.
Уточню задание еще раз, что бы не было вопросов:
- Таблица динамическая и показывает те же ордера что на вкладке Торговля. Если в на вкладке ордеров нет - то и у тебя в таблице нет.
- Количество отображаемых ордеров в твоей таблице должно быть любым. Нет ограничений сверху.
- Открытие ордера через стандартное диалоговое окно, должно приводить к появлению ордера в твоей таблице. Закрытие ордера стандартными средствами - должно приводить к исчежновению ордера в твоей таблице.
- Неконсистентное состояние недопустимо! Если твоя таблица показывает одно, а вкладка Торговля другое - это ошибка.
Пока жирный незачет. Ждем твоих доработок. И никаких отрисовок 3D, пока с этим не разберешься!