Новая версия платформы MetaTrader 5 build 3620: улучшения веб-терминала, поддержка ONNX и ускоренное умножение матриц в MQL5 - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что такое memcpy, я представляю как минимум со времён LDI, LDD, LDIR, LDDR.
Я пытаюсь понять, откуда берутся исходные данные по всем ордерам.
Ну тут обычное копирование с торгового окружения, с реалтайм истории и неактивной истории, ордеров.
Ну тут обычное копирование с торгового окружения, с реалтайм истории и неактивной истории, ордеров.
Я предпочитаю хранить в отсортированном массиве все свои ордера, корректировать их, если надо, по OnTradeTransaction, и периодически, по таймеру, а также при старте, сверять с действующими ордерами. Проверять свой массив проще, тем более, что ближайшие к текущей цене ордера всегда первый и последний в массиве.
Иначе можно нарваться на ситуацию, когда ордер уже отправлен, но в действующих его ещё нет, или когда ордера уже нет в действующих, но ещё нет в истории (при этом сделка в истории может как уже присутствовать, так и ещё отсутствовать).
Я предпочитаю хранить в отсортированном массиве все свои ордера, корректировать их, если надо, по OnTradeTransaction, и периодически, по таймеру, а также при старте, сверять с действующими ордерами. Проверять свой массив проще, тем более, что ближайшие к текущей цене ордера всегда первый и последний в массиве.
Иначе можно нарваться на ситуацию, когда ордер уже отправлен, но в действующих его ещё нет, или когда ордера уже нет в действующих, но ещё нет в истории (при этом сделка в истории может как уже присутствовать, так и ещё отсутствовать).
очень удобный признак для таких проверок - изменение AccountMargin. Маржа поменялась, значит сработала отложка/стоп/тейк или был вход/выход по рынку. Значит надо проверить свои ордера.
просто сам так делаю (храню свои ордера/позиции в своих структурах и синхронизирую по мере надобности), единственное не пытаюсь их сортировать сразу. При необходимости сортировки всегда можно сделать массив указателей и из него сотворить индекс.
очень удобный признак для таких проверок - изменение AccountMargin. Маржа поменялась, значит сработала отложка/стоп/тейк или был вход/выход по рынку. Значит надо проверить свои ордера.
просто сам так делаю (храню свои ордера/позиции в своих структурах и синхронизирую по мере надобности), единственное не пытаюсь их сортировать сразу. При необходимости сортировки всегда можно сделать массив указателей и из него сотворить индекс.
Собственно, я массив не сортирую, просто сразу вставляю ордер в нужное место, и сдвигаю массив при попадании ордера в историю, я тут где-то и код выкладывал.
Я предпочитаю хранить в отсортированном массиве все свои ордера, корректировать их, если надо, по OnTradeTransaction, и периодически, по таймеру, а также при старте, сверять с действующими ордерами. Проверять свой массив проще, тем более, что ближайшие к текущей цене ордера всегда первый и последний в массиве.
Иначе можно нарваться на ситуацию, когда ордер уже отправлен, но в действующих его ещё нет, или когда ордера уже нет в действующих, но ещё нет в истории (при этом сделка в истории может как уже присутствовать, так и ещё отсутствовать).
У каждого свои задачи в трейдинге делает эксперт. У меня эксперт копирует максимально быстро сделки на разные терминалы. Для вашей задачи действительно может лучше всего подойти проверка маржи на счете.
8. MQL5: Добавлена новая функция CopySeries для копирования синхронизированных таймсерий из MqlRates в отдельные массивы.
Функция CopySeries позволяет за один раз получать только нужные таймсерии в разные указанные массивы, при этом они все синхронизированы между собой. Это означает, что все значения в полученных массивах по конкретному индексу N будут принадлежать одному и тому же бару на указанной паре символ/таймфрейм. В этом случае не требуется заботиться о том, чтобы все полученные таймсерии были синхронизированы по времени открытия бара.
В отличие от CopyRates, которая возвращает полный набор таймсерий в виде массива MQLRates, функция CopySeries позволяет программисту получать только нужные таймсерии на основе комбинации флагов, указывающих тип запрашиваемых таймсерий. При этом порядок массивов, передаваемых в функцию, должен соответствовать порядку полей в структуре MqlRates:
Таким образом, если необходимо получить значения таймсерий time, close и real_volume для последних 100 баров текущего символа/таймфрейма, вызов должен быть следующим:
При этом важен порядок массивов "time, close, volume" — он должен соответствовать порядку полей в структуре MqlRates. А вот порядок значений в маске rates_mask значения не имеет, маска могла быть такой :
Не планируется ли вот это в 4ке? Для обратной совместимости, так сказать. Хотелось бы работать с сериями одинаково.
Есть большая просьба. Можно в тестере стратегий выделенную строку зафиксировать, хоть сверху, хоть снизу, а то когда открыто несколько десятков позиций и постоянно открываются новые - итоговая строка уползает и нельзя визуально отследить все параметры, постоянно скролить бесит уже.
Есть большая просьба. Можно в тестере стратегий выделенную строку зафиксировать, хоть сверху, хоть снизу, а то когда открыто несколько десятков позиций и постоянно открываются новые - итоговая строка уползает и нельзя визуально отследить все параметры, постоянно скролить бесит уже.
чтобы не бесится, в робот добавьте несколько строк и выведите нужные AccountInfoDouble(ACCOUNT_BALANCE) и прочие на чарт.
честное слово, это быстрее и эффективнее чем ждать милостей от природы
чтобы не бесится, в робот добавьте несколько строк и выведите нужные AccountInfoDouble(ACCOUNT_BALANCE) и прочие на чарт.
честное слово, это быстрее и эффективнее чем ждать милостей от природы