Лично я уверен, что решение не иметь тикового графика было чисто дизайнерским решением, просто потому, что оно соответствует общему дизайну платформы. Не имеет смысла, с инженерной точки зрения, иметь график в масштабе времени, который платформа не способна обеспечить, когда дело доходит до фактического размещения ордеров. Я бы и сам поступил так же. Утверждение, что брокеры "захотят", чтобы MT4 не включала эту функцию, не имеет смысла, поскольку эта функция просто бесполезна... Им было бы все равно.
другими словами, он не использует протокол tcp/ip для соединения с ценовым фидом. [...] Соединение price feed с брокером аналогично или фактически является соединением типа UDP.
Tcpview, похоже, показывает, что соединение от MT4 к брокеру является TCP, а не UDP.
Ais:
Просто полезная информация о точности системного времени в Windows, и в MetaTrader соответственно [...].
Я думаю, вы имеете в виду такие вещи, как GetTickCount(). Все версии Windows, начиная с 2000 года, также предоставляют высокочастотный системный таймер. См. http://msdn. microsoft.com/en-us/library/ms644904(VS.85).aspx и т.д. Типичная гранулярность GetTickCount() в 16 мс никак не влияет на возможность построения 100-минутного графика, особенно потому, что такой график почти наверняка будет построен на основе временной метки брокера, а не локального компьютерного времени. Если бы временная метка MT4 имела миллисекундную точность, а она ее не имеет.
Гордон:
Лично я уверен, что решение не иметь тикового графика было чисто дизайнерским решением [...].
Несомненно, это так. Отчасти из-за несколько необычного определения "тика" в платформе MT4, и того факта, что это приводит к очень различному количеству "тиков" в зависимости от того, к какому брокеру вы подключены.
1. Именно, я имею в виду "GetTickCount()", который используется в MetaTrader4. 2. Использование "QueryPerformanceCounter" и "QueryPerformanceFrequency" для высокоточных таймингов выглядит наивно, поскольку эти функции основаны на тактовой частоте процессора. Мы хорошо знаем, что тактовая частота процессора не является стабильной и может переключаться системой в процессе работы.
2. Использование "QueryPerformanceCounter & QueryPerformanceFrequency" для высокоточных таймингов выглядит наивным [...].
Это менее наивно, чем использование GetTickCount(), но это все равно не имеет значения, потому что все графики в MT4 строятся на основе временной метки брокера, а не локальных часов.
В большинстве случаев, когда упоминается QPC, упускается одна очень важная вещь.
Тот факт, что QPC крайне ненадежен. В зависимости от фактического оборудования и загрузки процессора, QPC будет случайным образом прыгать назад и/или вперед на несколько секунд (в моем опыте это обычно составляло ~4 секунды).
Вы _можете_ обойти это, отслеживая время по настенным часам и пытаясь обнаружить эти скачки.
Лично я доверюсь Раймонду Чену, который работает в Microsoft, а не кому-то другому, о ком я никогда не слышал, кто не работает в Microsoft, не знает и не разговаривал с людьми, которые написали соответствующие части операционной системы Windows. Ваше мнение может быть иным.
другими словами, он не использует протокол tcp/ip для соединения с ценовым фидом. [...] Соединение price feed с брокером аналогично или фактически является соединением типа UDP.
Tcpview, похоже, показывает, что соединение от MT4 к брокеру является TCP, а не UDP.
Просто полезная информация о точности системного времени в Windows, и в MetaTrader соответственно [...].
Я думаю, вы имеете в виду такие вещи, как GetTickCount(). Все версии Windows, начиная с 2000 года, также предоставляют высокочастотный системный таймер. См. http://msdn. microsoft.com/en-us/library/ms644904(VS.85).aspx и т.д. Типичная гранулярность GetTickCount() в 16 мс никак не влияет на возможность построения 100-минутного графика, особенно потому, что такой график почти наверняка будет построен на основе временной метки брокера, а не локального компьютерного времени. Если бы временная метка MT4 имела миллисекундную точность, а она ее не имеет.
Лично я уверен, что решение не иметь тикового графика было чисто дизайнерским решением [...].
Несомненно, это так. Отчасти из-за несколько необычного определения "тика" в платформе MT4, и того факта, что это приводит к очень различному количеству "тиков" в зависимости от того, к какому брокеру вы подключены.
1. Именно, я имею в виду "GetTickCount()", который используется в MetaTrader4.
2. Использование "QueryPerformanceCounter" и "QueryPerformanceFrequency" для высокоточных таймингов выглядит наивно, поскольку эти функции основаны на тактовой частоте процессора.
Мы хорошо знаем, что тактовая частота процессора не является стабильной и может переключаться системой в процессе работы.
2. Использование "QueryPerformanceCounter & QueryPerformanceFrequency" для высокоточных таймингов выглядит наивным [...].
[...] потому что эти функции основаны на тактовой частоте процессора.
3. Нам не нужно синхронизировать временные метки, чтобы получить искусственный график 100 мс.
4. MT4 имеет возможность иметь точность 1 мс, потому что мы можем перепрограммировать PIC.
http://blogs.msdn.com/b/oldnewthing/archive/2008/09/08/8931563.aspx?PageIndex=2:
"
Карстен Ортбандт
В большинстве случаев, когда упоминается QPC, упускается одна очень важная вещь.
Тот факт, что QPC крайне ненадежен. В зависимости от фактического оборудования и загрузки процессора, QPC будет случайным образом прыгать назад и/или вперед на несколько секунд (в моем опыте это обычно составляло ~4 секунды).
Вы _можете_ обойти это, отслеживая время по настенным часам и пытаясь обнаружить эти скачки.
"
Карстен Ортбандт [...]...
Процессоры производятся не компанией Microsoft.
Процессоры производятся не Microsoft.
Нет? Ух ты! Я и не знал. Спасибо.