Ошибки, баги, вопросы - страница 2313
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня такое бывает на моем ноуте когда на агенте продолжается считаться задача (например накосячил в коде с открытием позиции и бедный агент шлёт и шлёт торговые приказы - а ему в ответ запреты, а он продолжает бомбить; в итоге все агенты давно окончили расчёты, а этот бедняга всё молотит и молотит).
То есть кратко: на агенте висит задача с прошлого задания и он продолжает с неё сражаться.
У меня такое сегодня было напротив, после того как агенты не работали более суток.
Я думаю, что там загвоздка с авторизацией и обменом данных, т.е. если долго не передается советник/история, то происходит переконнект со стороны клиента, а агент ещё ждет поступление файлов.Почти три миллиона тиков и всего 16К OrderSend. Но эти торговые приказы занимают треть времени. А ведь на каждом тике идут расчеты в советнике.
Отсюда и вопрос. Могли бы Вы прогнать код OrderSend в профилировщике? В каком месте там такой затык?
Предполагаю, что если заменить штатную функцию на свою, то будет работать быстрее. Наверное, в OrderSend идут какие-то дорогостоящие проверки и телодвижения. Например, если в советнике (+ индикаторы) нигде нет History-функций и OnTrade*, то формирование соответствующих записей/событий - пустая трата времени.
Понимаю, что у некоторых один прогон длится многие минуты. Но бывают случаи, как выше, - единицы секунд, если уделять внимание скорости выполнения. А тут оказывается, что запускаю Оптимизацию на три часа, а из них час - это OrderSend, среднее время выполнения которой 69 мкс (см. скрин):
Привет,
Получили ли вы полезный ответ от Metaquotes?
У меня есть клиент, который хочет использовать MT5 Strategy Tester для повышения производительности. Стратегия EA может легко использовать режим «Только доступные цены». Однако бэктест, занимающий 1,5 секунды с MT4, выполняется через 5 секунд с MT5!
В стратегии используется трейлинг-стоп, и, похоже, 90% времени бэктеста используется OrderSend ():
Привет,
Получили ли вы полезный ответ от Metaquotes?
У меня есть клиент, который хочет использовать MT5 Strategy Tester для повышения производительности. Стратегия EA может легко использовать режим «Только доступные цены». Однако бэктест, занимающий 1,5 секунды с MT4, выполняется через 5 секунд с MT5!
В стратегии используется трейлинг-стоп, и, похоже, 90% времени бэктеста используется OrderSend ():
Все ответы были даны только в этой теме. Похоже, что-то сделали
Сам решил через Virtual.
ЗЫ Покажите свой советник.
Похоже, что-то сделали
1930
Virtual
Разница в три раза, как и было с 1881. Возможно, где-то в другом месте подкрутили. Но темы OrderSend, скорее всего, не касались.
Все ответы были даны только в этой теме. Похоже, что-то сделали
Сам решил через Virtual.
При Оптимизации формируются пачки по 128 заданий для каждого Агента. А возможно ли формировать пачки другого размера?
Вот такая ситуация образовалась
Все Агенты, кроме одного, завершили свои задания. И окончания Оптимизации приходится ждать из-за одного Агента. А ведь можно же было добиться почти одновременного окончания работы всех Агентов.
Возьмем, например, как на скрине, 8 Агентов и 5376 заданий. 5376 / 8 = 672 задания. Значит, можно было формировать пачки размером 336 (=672/2), 168 (672/4) или 84 (672/8) заданий в каждой. И тогда все Агенты подошли бы к финишной черте одновременно.
Значение же 128 не учитывает этой кратности. Из-за этого время Оптимизации увеличивается при использовании нескольких ядер.
Захотел поставить оценку в КБ и не получилось. И судя по тому, что последние публикации вовсе не имееют оценок, то похоже, что эта проблема не только у меня.
Ну и уж заодно, хочется признаться, что система рейтинга (простое среднее арифметическое) заставляет желать лучшего. Ведь только что опубликованный код и имеющий одну оценку 5 звезд в рейтинге будет выше кода, который находится в KБ уже несколько лет и имеет 49 оценок 5 звезд и одну оценку в 4 звезды. Разве это справедливо ?
На мой взгляд, хотя бы такая формула была бы гораздо справедливее:
где:
R- искомый рейтинг
Average- средняя арифметическая оценка
N- число оценок.
При Оптимизации формируются пачки по 128 заданий для каждого Агента. А возможно ли формировать пачки другого размера?
Вот такая ситуация образовалась
Все Агенты, кроме одного, завершили свои задания. И окончания Оптимизации приходится ждать из-за одного Агента. А ведь можно же было добиться почти одновременного окончания работы всех Агентов.
Возьмем, например, как на скрине, 8 Агентов и 5376 заданий. 5376 / 8 = 672 задания. Значит, можно было формировать пачки размером 336 (=672/2), 168 (672/4) или 84 (672/8) заданий в каждой. И тогда все Агенты подошли бы к финишной черте одновременно.
Значение же 128 не учитывает этой кратности. Из-за этого время Оптимизации увеличивается при использовании нескольких ядер.
В целом поддерживаю, но думаю, что правильней было реализовать возможность автоматической отмены задания агентам (оно уже реализовано при нажатии кнопки для запрета активности агента), если есть свободные агенты, а заданий раз в 5 больше и перераспределения снова заданий по всем агентам, в том числе удаленным.
Всем доброго дня! Прошу прощения за глупый вопрос. Ребята, подскажите, пожалуйста, как сделать так, чтобы при нажатии левой кнопкой мыши на button его свойство Pressed принимало значение true, а при отжатии - false. Сейчас ситуация такая, что при нажатии ничего не происходит, а а при отжатии Pressed меняется на противоположное.
Я так понимаю, что нужно переопределить обработчики событий CButton::OnMouseUp и CButton::OnMouseDown, только в каком месте это сделать, не представляю. Намекните, пожалуйста. Заранее спасибо!