Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да я бы и рад :) Использовать ваш Download Manager. Вот только с импортом сохраняемых им файлов, разобраться бы... :)
Ратио вы можете получать напрямую из индикатора Ratio History, с гистограммами все сложней.
Этот код выложен именно для того чтобы показать механизм работы с гистограммами.
Если вам нужен экспорт в матлаб, вы можете взять индикатор за базу и пересохранять данные в удобном для вас формате
Доброго времени суток.
Установил у себя MT4 от Альпари (или это МТ5, черт их разберет. В панели запуска написано "Alpari Limited MT4", а потом, когда терминал запускается, делаю "Справка --> О программе" - получаю окошко "MetaTrader 5". ) Ладно, пускай его.
Пытался устанавливать OandaX Download Manager BETA - не установился. А установился OandaX 5 Download Manager BETA. Возможно, как раз потому, что у меня всё таки МТ5, а не 4...
Отлично. История закачалась, в папке получил множество бинарных файлов.
Далее, если можно, такой вот вопрос - какова структура записи\чтения данных в такой файл?
Дело в том, что из НЕОТКОМПИЛИРОВАННЫХ (чтоб посмотреть, как читать эти файлы) - нашел только OandaX OrderBook Chart. Все остальные продукты - только уже скомпилированные (возможно, плохо искал? Поправьте пожалуста, если так).
Там , в OandaX OrderBook Chart - подсмотрел такую последовательность:
{
string file_path = GetHistoryPath(kOrderBookPath) + kDirSeparator +
GenerateInstrumentPathFromTimestamp(instrument, timestamp);
bool result = false;
if (FileIsExist(file_path))
{
int file_handle = FileOpen(file_path, FILE_READ|FILE_BIN);
if (file_handle != INVALID_HANDLE)
{
ResetLastError();
orderbook.rate = FileReadFloat(file_handle);
if (!GetLastError())
{
uint count = FileReadArray(file_handle, orderbook.price_points);
if (count)
{
orderbook.timestamp = (int)timestamp;
result = true;
}
else
{
// Error
}
}
else
{
// Error
}
FileClose(file_handle);
}
else
{
// ERROR("Error in FileOpen, file: " + file_path, GetLastError());
}
}
return result;
}
то есть, файл открывается, затем читается из него 1 переменная rate, затем массив (некоторой длинны) структур price_points. Я правильно понял "организацию" такого бинарного файла? И если да, то - справедлива ли она до сих пор (насколько я понимаю, OandaX 5 Download Manager BETA - гораздо более поздний продукт)?
Спасибо.
P.S. Я не знаю MQL, поэтому прошу не пинать за возможно пионерские вопросы и терминологию.
Дело в том, что из НЕОТКОМПИЛИРОВАННЫХ (чтоб посмотреть, как читать эти файлы) - нашел только OandaX OrderBook Chart. Все остальные продукты - только уже скомпилированные (возможно, плохо искал? Поправьте пожалуста, если так).
Да, все так. Хотя нет, есть еще в блоге открытый интерес для бука, обертка вокруг Ratio History, в исходниках.
Причина простая -- остальные данные проще получать из индикаторов напрямую. но если вам надо структура ратио или бука, я вам ее предоставлю, нет проблем.
то есть, файл открывается, затем читается из него 1 переменная rate, затем массив (некоторой длинны) структур price_points. Я правильно понял "организацию" такого бинарного файла?
Да, кроме этого потом проводится нормализация, заполнение дыр и т.д. возможно вам это будет полезно. Ну и следует помнить что файлы располагаются не линейно, а в иерархии папок, чтобы ускорить поиск нужной даты.
И если да, то - справедлива ли она до сих пор (насколько я понимаю, OandaX 5 Download Manager BETA - гораздо более поздний продукт)?
Нет ) это тот же Download Manager BETA только скомпилированный под 5ку, практически весь код кроссплатформенный.
Всмысле формат хранения файлов меняться уже не будет.
Да, кроме этого потом проводится нормализация, заполнение дыр и т.д. возможно вам это будет полезно.
Да, это интересно. В смысле, на текущей стадии - теоретически. Просто было бы любопытно обсудить, вкратце. Нормализация - это понятно. А вот "заполнение дыр" - что имеется в виду? Дыры в "временной последовательности" (т.е. искусственная генерация недостающих "временных отпечатков" ("бинарного файла")) - или же дыры в ценах, в рамках текущего "отпечатка"("бинарного файла")? В первом случае - я примерно процесс представляю. Во втором - нет (по какому принципу это может производиться?). Если не трудно, объясните (без деталей, просто, для понимания, о чем речь).
Если не трудно, объясните (без деталей, просто, для понимания, о чем речь).
Если вкратце, я беру сырые данные
1. нахожу шаг гистограммы
2. заполняю отсутствующие столбцы нулями (их нет в сырых данных)
3. нормализую (выравниваю) цены
4. разбиваю данные на 4 массива (по квадрантам) и делаю так, чтобы у попарных массивов были одинаковые ценовой максимум и минимум (т. е. опять же добиваю нулями).
5. если в настройках есть показывать разницу или сумму, считаю разницу и сумму.
Все это есть в коде в классе BaseHistogram.
С нормализованными данными без пропусков гораздо проще работать.
Дыры во времени я не латаю.
Если вкратце, я беру сырые данные
1. нахожу шаг гистограммы
2. заполняю отсутствующие столбцы нулями (их нет в сырых данных)
3. нормализую (выравниваю) цены
4. разбиваю данные на 4 массива (по квадрантам) и делаю так, чтобы у попарных массивов были одинаковые ценовой максимум и минимум (т. е. опять же добиваю нулями).
5. если в настройках есть показывать разницу или сумму, считаю разницу и сумму.
Все это есть в коде в классе BaseHistogram.
С нормализованными данными без пропусков гораздо проще работать.
Дыры во времени я не латаю.
Это всё происходит, насколько я понял, именно в Download Manager-е. Тоесть, те файлы, с которыми я буду работать, вот так вот УЖЕ обработаны (как вы написали выше)? Правильно?
Вообще, я уже давно и "в несколько заходов" пытался работать со стаканом. Однако, стакан этот, не был "реальным", а я пытался его сам генерировать (в меру скромных представлений о поведении толпы). Результат был фактически нулевой. А вот теперь, интересно опробовать всё это на "реальных" данных так сказать...
IronBird72:
Это всё происходит, насколько я понял, именно в Download Manager-е.
Нет, менеджер не работает напрямую с данными, он просто правильно складывает бинарные данные с сервера.
Тоесть, те файлы, с которыми я буду работать, вот так вот УЖЕ обработаны (как вы написали выше)? Правильно?
Нет, обработка именно в индикаторе, я написал выше где искать
Вообще, я уже давно и "в несколько заходов" пытался работать со стаканом. Однако, стакан этот, не был "реальным", а я пытался его сам генерировать (в меру скромных представлений о поведении толпы). Результат был фактически нулевой. А вот теперь, интересно опробовать всё это на "реальных" данных так сказать...
и как его теперь двигать влево-вправо?)
В этой версии никак. Можете дописать.
Я вообще использую картинки и никаких неудобств не ощущаю.