Интересная тема для многих: что будет нового в MetaTrader 4 и MQL4 - большие изменения на подходе - страница 49
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не похоже. Когда мне реально надо - делаю.
Это очень плохо, если ваши возможности ограничивают какие-то разработчики стороннего софта.
Нельзя.
Нефиг фигнёй маяться, дальше пиарасть кухню ;)
Пиджак, не надо марать здесь свой облик среди "нубов и пиарастов" по вашей классификации. Идите в свой QQ.
P.S. Для биржевиков есть ликбез, где они могут восполнить свои познания о реалиях рынка FOREX и различных отличительных чертах его от привычных им бирж. Расширяйте кругозор!
Пиджак, не надо марать здесь свой облик среди "нубов и пиарастов" по вашей классификации. Идите в свой QQ.
C форматом хранимой истории (MqlRates) MetaQuotes, конечно, перемудрили (недомудрили). Это можно понять. Когда формат разрабатывался на рынке форекс преобладали фиксированные спреды, рыночные (плавающие) были ещё экзотикой. Хотя было ясно, что даже фиксированные спреды по факту плавают, так как ДЦ их фиксированность "не гарантируют в моменты выхода новостей и быстрых изменений на рынке" (кавычки изображают здесь цитирование из типичной оферты практически любого ДЦ того периода).
Однако времена изменились, и мы имеем то, что имеем - спреды плавают на каждом тике. И это нормально. ... Только в исторических котировках это не отражено. К сожалению.
В истории хранится только одно значение спреда на каждый бар. И этого сейчас недостаточно. И приводит к искажениям при тестировании на истории, так как нет совпадения фактической истории торговли и торговли в тестере даже при поставке брокером абсолютно честной (соответствующей фактической трансляции тикового фида) исторической базы. Причина - недостаточная описательная мощность формата MqlRates.
В этой структуре предполагается неизменность спреда внутри бара, что не соответствует текущем реалиям трейдинга.
Далее рассуждения о том, каким бы мог быть "полный" формат. Я условно назвал его "Mql_6_Rates", чтоб было понятно что он в настоящее время не поддерживается.
Ниже приводятся два варианта. Первый это упакованная структура (для диска). Без сжатия спец-алгоритмами. Её ещё можно ужать в разы (2-3, предположительно) для снижения траффика при передаче. Сжатый формат здесь не обсуждается.
Предполагается, что "упакованный" формат является оптимальным при хранении на диске трейдера. При загрузке с диска в память его можно на лету распаковывать, функции распаковке "прилагаются" к структуре.
Распакованная история (для доступа из MQL) могла бы быть, скажем такой:
Это побольше чем сейчас, однако спред вычислим во всех зафиксированных точках бара. Т.е., если уж писать информацию в минутных барах по традиционной схеме {Open+High+Low+Close}, то уж "по полной программе".
По мне так эта информация избыточна, причём склонная создавать максимум иллюзий в точке Open. Моменты открытия баров у разных символов не совпадают, в то время как точно в момент начала минуты (астрономического) цены бид-аск на символах в точности соответствуют последним прокотированным бидам-аскам, т.е. ценам закрытия. Поэтому наиболее пригодный для тестирования формат минуток (наиболее здоровый компромисс между традицией и здравым смыслом) мог бы быть таким:
// Соответствующяя экономия в упаковнном дисковом формате составила бы ещё 7 байт, т.е. SizeOf(Mql_6_PackedRates) сократился бы до 31 байта.
Для экологичного (наиболее разумного) тестировании "по ценам открытия", должно браться астрономическое время старта минутки, т.е. цены Close предыдущего бара. В этом случае была бы достигнута точная мультивалютная синхронность цен. Эта синхронность жизненно важна для отладки мультивалютных советников торгующих рыночными ордерами. Для торговли лимитными и стоповыми ордерами жизненно важна информация об экстремумах на каждом баре. Она также полностью представлена в обсуждаемом формате.
--
На самом деле эти форматы я прямо сейчас разрабатываю для личных целей. Публикация их здесь - просто побочный продукт моей разработки. Возможно кому-то пригодится.
При экологичного (наиболее разумного) тестировании "по ценам открытия", должно браться астрономическое время старта минутки, т.е. цены Close предыдущего бара.
игнорирование гэпа будет, что критично в некоторых случаях
p.s. если нужна экономия в трафике, то можно хранить не абсолютные значения цены, а смещения, для которых double очень много
C форматом хранимой истории (MqlRates) MetaQuotes, конечно, перемудрили (недомудрили). Это можно понять. Когда формат разрабатывался на рынке форекс преобладали фиксированные спреды, рыночные (плавающие) были ещё экзотикой. Хотя было ясно, что даже фиксированные спреды по факту плавают, так как ДЦ их фиксированность "не гарантируют в моменты выхода новостей и быстрых изменений на рынке" (кавычки изображают здесь цитирование из типичной оферты практически любого ДЦ того периода).
MT5 изначально позиционировался, как биржевой терминал. А на биржах ECN-законы ценообразования ОЧЕНЬ давно. Т.е. оправдание недоработки несостоятельно. Ну не было (и нет) в их команде сильного алготрейдера, к которому можно было прислушаться. Видимо, рулит только "количество лет успешных разработок платформ", чем здравая логика.
Я не пытался оправдывать. Чтоб оправдывать, нужно сначала обвинить. А мне как-то не до этого.... :)
Тогда это снисхождение (остерегаться такого надо - хуже голой критики):
C форматом хранимой истории (MqlRates) MetaQuotes, конечно, перемудрили (недомудрили). Это можно понять. Когда формат разрабатывался на рынке форекс преобладали фиксированные спреды, рыночные (плавающие) были ещё экзотикой. Хотя было ясно, что даже фиксированные спреды по факту плавают, так как ДЦ их фиксированность "не гарантируют в моменты выхода новостей и быстрых изменений на рынке" (кавычки изображают здесь цитирование из типичной оферты практически любого ДЦ того периода).
игнорирование гэпа будет, что критично в некоторых случаях