| / | Форум |
33780 |
Rosh
18.01.2007 11:04
Я немного изменил код, чтобы можно было точно узнать наличие
минуток :
int a; int start() { //---- int MinuteBar,i; if(a!=Day()) { a=Day(); i=1; while (MinuteBar==0 && i<1440) { MinuteBar=iTime(Symbol(),PERIOD_M1,i); i++; } Print("Время ",TimeToStr(iTime(Symbol(),PERIOD_M1,i))," Open=",Open[1]," Close=",Close[1]," Time=",TimeToStr(TimeCurrent())," Time[0]=",Time[0]," i=",i); } //---- return(0); } Прогнал бектест по Вашему fxt-файлу (из Ваших тиков)
А теперь проверьте наличие минутной истории в своем терминале за тестируемый период. И сделайте вывод - все работает правильно. |
|
OniNePriletyat
18.01.2007 23:22
Минуток как будто нет, тест у меня получился такой:
![]() А что значит фраза "А теперь проверьте наличие минутной истории в своем терминале за тестируемый период" ? Если я подсовываю терминалу свой файл EURUSD60_0.fxt и тестирую на H1, то кроме него тестер использует еще какие-то файлы? Если да, то какие, и где проверить наличие минуток? Тестер что в hst файлы смотрит? fxt файл на котором тестировал находится здесь 6,5 Мб Спасибо. |
33780 |
Rosh
18.01.2007 23:45
Но ведь выражение iTime(NULL,1,1) как раз и означает - а выдай-ка мне на минутке значение
бара с индексом 1. И где его взять ? - только в hst-файле.
|
|
OniNePriletyat
19.01.2007 22:45
Можно вас окончательно домучить? У меня все равно не получается.
Файл минуток EURUSD1.hst сгенерировал при помощи simple_csv2fxt. Чаще всего
файл удаляется и терминал качает свой, в любом случае не получился
у меня тест. В настройках терминала у меня стоит по 20000000 баров
в истории и на графике. Можете попробовать подсунуть мой hst,
хочется узнать что получится, он здесь. Может я чего то не понимаю, но не знаю что. Спасибо.
|
33780 |
Rosh
19.01.2007 23:03
Не уверен, но попробуйте заменить эту функцию так:
void WriteHstHeader() { //---- History header int i_version=400; string c_copyright; string c_symbol=Symbol(); int i_period=Period(); int i_digits=Digits; int i_unused[16]; //---- ExtHstHandle=FileOpen(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE); if(ExtHstHandle < 0) return; //---- write history file header c_copyright="(C)opyright 2003, MetaQuotes Software Corp."; FileWriteInteger(ExtHstHandle, i_version, LONG_VALUE); FileWriteString(ExtHstHandle, c_copyright, 64); FileWriteString(ExtHstHandle, c_symbol, 12); FileWriteInteger(ExtHstHandle, i_period, LONG_VALUE); FileWriteInteger(ExtHstHandle, i_digits, LONG_VALUE); FileWriteArray(ExtHstHandle, i_unused, 0, 13); }А именно: FileWriteArray(ExtHstHandle, i_unused, 0, 13);Менять ли версию 400 на 403 - не скажу, вроде не требуется. |
|
OniNePriletyat
20.01.2007 22:51
У меня нет версии 400, стоит 403. Там нет ф-ии WriteHstHeader() вместо нее,
как я понял WriteHeader(), но она совсем другая, не похожа на ту что
вы показываете. А что в ней менять я не знаю, мне даже трудно
представить что FXTHeder делает. Я понимаю что это вопрос относится
больше к stringo. За то что появился simple_csv2fxt можно сказать
спасибо, раньше такой полезности не было, но все таки хочется
чтобы этот скрипт работал как нужно. А вы можете подсказать
что нужно в 403й версии менять? А что получилось с моим hst, у вас
он тоже удаляется?
|
|
komposter
07.02.2007 00:45
В скрипте действительно ошибка. Даже странно, со своим же форматом
не справились ;)
Функция должна выглядеть так: void WriteHstHeader() { //---- History header int i_version=400; string c_copyright; string c_symbol=Symbol(); int i_period=Period(); int i_digits=Digits; int i_unused[15]; //---- ExtHstHandle=FileOpen(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE); if(ExtHstHandle < 0) return; //---- write history file header c_copyright="(C)opyright 2003, MetaQuotes Software Corp."; FileWriteInteger(ExtHstHandle, i_version, LONG_VALUE); FileWriteString(ExtHstHandle, c_copyright, 64); FileWriteString(ExtHstHandle, c_symbol, 12); FileWriteInteger(ExtHstHandle, i_period, LONG_VALUE); FileWriteInteger(ExtHstHandle, i_digits, LONG_VALUE); FileWriteArray(ExtHstHandle, i_unused, 0, 15); } Обратите внимание на размер массива i_unused. |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий