Скачать MetaTrader 5

Про воскресные бары на днёвках.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114280
Forex Trader  
Только начинаю изучать MQL4 и прошу зубров подсказать, как программно при запуске терминала и в процессе непрерывной работы на протяжении месяцев можно удалять из истории и с графиков (для правильного расчета некоторых индикаторов) воскресные бары. Ну не нужны они мне. Не прошу реализацию. Достаточно будет достоверной идеи по какому пути пойти. Спасибо.
Forex Trader
114280
Forex Trader  
Я не обсуждаю целесообразность и информативность тех или иных баров или их отсутствие. Зачем - не обсуждается. Обсуждается - как! Я спросил о лучшем методе реализации программного удаления отдельных баров из всего массива котировок. Предположим при запуске MetaTrader каким либо скриптом я это сделаю. Но как быть если торговый автомат будет работать непрерывно в течение нескольких месяцев , и естесственно в процессе работы будут появляться новые воскресные свечки. Повторюсь, пока плохо изучил MQL4 и все возможности, связанные с программированием на нём. Поэтому и спрашиваю подсказку.
Forex Trader
114280
Forex Trader  
Нет воскресных свечек. Я не видел.
Forex Trader
114280
Forex Trader  
А бар
2006.05.28 00:00
Open 1.2736
High 1.2739
Low 1.2725
Close 1.2731
Volume 120
это разве не воскресенье?
Forex Trader
114280
Forex Trader  
И где такое чудо?
Forex Trader
114280
Forex Trader  
И где такое чудо?

На FIBO
www.fibo-forex.ru
Сервер: FIBO-Demo - FIBO Group, Ltd
Forex Trader
114280
Forex Trader  
Простите не указал что EURUSD D1, но думаю Вы догадались.
Forex Trader
114280
Forex Trader  
Неужели нет таких специалистов, кто знает алгоритм решения этой задачки?
Forex Trader
114280
Forex Trader  
Пропробуйте это:

int FileOpenHistory( string filename, int mode, int delimiter=';')
Открывает файл в текущей папке истории (каталог_терминала\history\server_name) или ее подпапках. Возвращает описатель файла или -1 в случае неудачи. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Замечания: клиентский терминал может подключаться к серверам разных брокерских компаний. Исторические данные (файлы HST) каждой брокерской компании хранятся в соответствующей подпапке папки истории каталог_терминала\history.
Функция может быть полезна для формирования собственных исторических данных нестандартного символа и/или периода. Файл, сформированный в папке истории может быть открыт автономно, для его графика не требуется подкачка данных.
Параметры:
filename - Имя файла.
mode - Режим открытия. Это может быть одна величина или их комбинация: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
delimiter - Знак разделителя для csv-файлов. По умолчанию применяется символ ';'.

Пример:
int handle=FileOpenHistory("USDX240.HST",FILE_BIN|FILE_WRITE);
if(handle<1)
{
Print("Не может создать файл USDX240.HST");
return(false);
}
// работа с файлом
// ...
FileClose(handle);
Forex Trader
114280
Forex Trader  
Это понятно. Но...
Попробовал переделать period_converter так, чтобы отбрасывались ненужные бары. Но нерешенной остается главная проблема. Как и откуда вызывать такой скрипт. Во первых надо чтобы скрипт вызывался переодически автоматом. А насколько я понял, скрипт отрабатыват лишь раз после прикрепления к графику вручную. Во вторых он прикрепляется к окну, данные в котором надо изменить. То есть по хорошему надо закрыть текущее окно, обработать данные, и снова открыть. Либо как делает period_converter создать другой файл истории, а потом закрыть окно, удалить файл оригинальной истории, переименовать под его имя созданный скриптом, и заново открыть окно с этим инструментом. Надо так же учитывать что к этому окну прикреплен советник, индикаторы и т.д. и т.п.
Пока не знаю как всё таки лучше организовать всё это. Может кто-нибудь всё таки подскажет?

Просто игнорировать воскресные бары не хочется. Не знаешь заведомо в каком месте потом ошибёшься и будет искажение информации, на которой принимается решение, работает советник и т.д. Лучше сразу иметь нормальные бары. Судя по удивлениям высказанным ранее, подобная лажа наблюдается только у FIBO?

Просто FIBO начинает давать котировки в понедельник по Москве, но они дают в рельном времени как - 2 (или -3 ?) часа. Типа по Европе. Вот и получается что начало недели идет с 22:00 воскресенья на барах. Хотя на дневке это выглядит как 00:00 воскресенья. В результате в неделе 6 дневных баров :-(
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий