- Помогите вычислисть срок работы ордера
- Безиндикаторная торговля.
- Арбитраж
Но в других программных средствах есть величина для DateTime меньше 1сек.
Суть поиска проста . Хочу отслеживать скорость выполнения операций . Есть похожая статья на сайте, что то по поводу подбора ДЦ. Очень интересует скорость выполнения, а скорее её усреднённое значение для временных интервалов в течении суток. Если усреднять с точностью до 1 секунды, то результат будет не тот. А если хотя бы ещё один разряд, то было бы не плохо.
Как определить время с размерностью менее 1 сек. применительно к функциям типа OrderOpenTime и ей подобной.
int GetTickCount( ) Функция GetTickCount() возвращает количество миллисекунд, прошедших с момента старта системы. Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней. Пример: int start=GetTickCount(); // некие серьёзные вычисления... Print("Время вычисления ", GetTickCount()-start, " миллисекунд.");
Удачи.
Я использовал в советниках GetTickCount для определения скорости работы и вычислений. Честно говоря при скорости до 10 мс показывает очень не точно. Одно и тоже действие определяется с разбросом в 2 и более раз. Как то не совсем реально. На больших величинах более менее.
На операции выполняемые за время сравнимое с миллисекундами влияют очень много факторов, поэтому и показания могут отличатся в несколько раз. Зря ругаете эту функцию.
На операции выполняемые за время сравнимое с миллисекундами влияют очень много факторов, поэтому и показания могут отличатся в несколько раз. Зря ругаете эту функцию.
Windows не является системой реального времени, так что, вряд-ли что-то удастся... Ну можно попробовать, если очень быстрый комп, ненагруженая система, какой-нибудь внешний тактовый генератор (типа атомных часов :)) и то верить этим расчетам особого смысла нет, вот если на оборудовании провайдера предоставляющего вам доступ в интернет, попытатся отмониторить пакеты (ушел запрос в дц)-(пришло подтверждение) то эта цифра будет ближе к реальной.
int start() { int GetTime=0; int GT=GetTickCount(); int ret=OrderSend(Symbol(),OP_BUYSTOP,0.1,Ask+100*Point,3,0,0,"GetTime",0,0,Blue); if (ret>0) GetTime=GetTickCount()-GT; Print("Время открытия ",GetTime," ms"); return(0); }
2010.03.01 09:51:16 GetTime USDCHF,H1: Время открытия 331 ms
2010.03.01 09:51:00 GetTime EURUSD,H1: Время открытия 1222 ms
2010.03.01 09:55:32 GetTime EURUSD,H1: Время открытия 831 ms
Такой скрипт . Как считаете можно этому верить.
2010.03.01 09:51:16 GetTime USDCHF,H1: Время открытия 331 ms
2010.03.01 09:51:00 GetTime EURUSD,H1: Время открытия 1222 ms
2010.03.01 09:55:32 GetTime EURUSD,H1: Время открытия 831 ms
Такой скрипт . Как считаете можно этому верить.
Верить то можно, просто не производитель вашего компьютера, ни Microsoft вам не дадут гарантий на такие вычисления
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования