Помогите, please!!!
Необходимо дописать в советник функцию записи в текстовый файл данных в следующей форме:
Дата время IND_1 IND_2 IND_3
1. Запись должна осуществляться при тестировании советника за весь период тестирования.
2. Запись должна осуществляться только при изменении любого из IND_N
Условия открытия ордеров будут сформированы после анализа файла.
Советник и индикатор прилагаю.
Терминал МТ4.
Суважением!!!
DIABLO_v.5.rar (57 Kb)
Комментарии (19)
35 AM2 Сообщений: 16254 - Андрей
19 vic123 Автор Сообщений: 98
35 AM2 Сообщений: 16254 - Андрей
IND_1 = NormalizeDouble(iCustom(NULL, 0, «Apollo», 0, 0)*1000,0);
IND_2 = NormalizeDouble(iCustom(NULL, 0, «Apollo», 1, 0)*1000,0);
IND_3 = NormalizeDouble(iCustom(NULL, 0, «Apollo», 3, 0)*1000,0);
и я думаю этого достаточно для того чтобы эти IND_N посылать в файл.
Вам даже не надо тестировать. Просто, если можно, добавьте в текст советника передачу данных в файл. Я перечитал кучу инфы, но у меня не получается. Редактирован: 28 октября 2015, 17:17
19 vic123 Автор Сообщений: 98
Вызов функции:
Завтра набросаю что нибудь простенькое, что пишет данные индикатора в файл
35 AM2 Сообщений: 16254 - Андрей
Пишет в папку Tester/Files/
35 AM2 Сообщений: 16254 - Андрей
19 vic123 Автор Сообщений: 98
IND_2 = NormalizeDouble(iCustom(NULL, 0, «Apollo», 1, 0)*1000,0);//прямая коричневая
IND_3 = iCustom(NULL, 0, «Apollo», 5, 0);
static int old_IND_1 = 23; // запомним число
if (old_IND_1 != IND_1) {
if(IsTesting()) Log();
else
return (0);
}
void Log(string s="")
{
//--- Открываем файл лога
int fileHandle=FileOpen(«MyLog.csv»,FILE_READ|FILE_WRITE|FILE_CSV);
if(FileSeek(fileHandle,FileSize(fileHandle),SEEK_SET))
int i;
FileWrite(fileHandle,TimeToStr(Time[i], TIME_DATE), TimeToStr(Time[i], TIME_SECONDS),
IND_1, IND_2, IND_3, Open[i]);
FileClose(fileHandle); // закрываем файл лога
}
19 vic123 Автор Сообщений: 98
19 vic123 Автор Сообщений: 98
35 AM2 Сообщений: 16254 - Андрей
1.12602000
1.12679000
1.12770000
1.12770000
1.12868000
1.12976000
1.13111000
1.13320000
1.13320000
1.13351000
1.13438000
1.13505000
1.13507000
1.13507000
1.13523000
1.13523000
1.13539000
1.13545000
1.13545000
1.13545000
1.13546000
1.13546000
1.13550000
1.13550000
1.13572000
1.13572000
1.13589000
1.13589000
1.13604000
1.13604000
1.13605000
1.13605000
Здесь тоже не совсем нормально. Цифры повторяются.
19 vic123 Автор Сообщений: 98
Основа есть, остается немного поработать с отладчиком
35 AM2 Сообщений: 16254 - Андрей
35 AM2 Сообщений: 16254 - Андрей
19 vic123 Автор Сообщений: 98
if(IsTesting()) Log();
else
return (0);
}
в том то и дело, что так не получается. Сам удивляюсь почему нет.
19 vic123 Автор Сообщений: 98
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
23.07.2015 0:00:00 391 -256 -1 1.56082
Cейчас получаю файл в таком виде
19 vic123 Автор Сообщений: 98
35 AM2 Сообщений: 16254 - Андрей
19 vic123 Автор Сообщений: 98
03.08.2015 1:00:00 64 -47 1 1.56241
03.08.2015 1:00:00 64 -47 -1 1.56241
03.08.2015 1:00:00 64 -47 1 1.56241
03.08.2015 1:00:00 64 -47 -1 1.56241
03.08.2015 1:00:00 64 -47 1 1.56241
03.08.2015 1:00:00 64 -47 -1 1.56241
Все получилось!!! Спасибо тебе Огромное!
19 vic123 Автор Сообщений: 98
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий