многодневные логи

 
поделитесь опытом кто как решал такую задачу - нужно чтобы эксперт производил запись в лог при условии что компьютер периодически перезагружается (плюс еще и выходные). как я понимаю, тупо найти последний созданный файл в каталоге \\files и записать туда не получится, так что пока все что пришло в голову создать отд бинфайл и туды одной строкой сохранять название лога при начале новой сессии ... или ... ?
да, название задается в формате [день - время - пара - имя эксперта. csv]
 

никак не пойму проблемы - или пишите каждый день(неделю, месяц) новый файл лога, или дописывайте все время в один?

 
не катит. как уже скахал, нужно создать лог на одну сессию, которая может быть от одного дня до недели или даже больше.
можно конечно разделить на дни или что-то еще, но когда таких экспертов стоит около 5 или более, то собрать отчет воедино становится не реально
 

тогда встречный впрос - как вы определяете что сессия закончилась, и началась новая?

 
sashasan писал(а) >>
поделитесь опытом кто как решал такую задачу - нужно чтобы эксперт производил запись в лог при условии что компьютер периодически перезагружается (плюс еще и выходные). как я понимаю, тупо найти последний созданный файл в каталоге \\files и записать туда не получится, так что пока все что пришло в голову создать отд бинфайл и туды одной строкой сохранять название лога при начале новой сессии ... или ... ?
да, название задается в формате [день - время - пара - имя эксперта. csv]


хм... почему не получится найти последний рабочий файл? если ЗНАТЬ ЧТО искать, то вполне возможно...
главное определиться с параметрами имени файла. такими, как "дата"(временнОй интервал). если произошла перезагрузка, в процедуре открытия файла перебирать "временнОй интервал" для имени файла. файл с НЕсуществующим именем вернет ошибку, значит следующую подстановку делаем. цикл по именам файлов от текущего значения даты до "последнего" используемого файла. вроде вполне возможно.

 
xrust >>:

тогда встречный впрос - как вы определяете что сессия закончилась, и началась новая?



так же как и все ))) пересекся макд или что угодно еще, просто в дальнейшем изначальный лот закрывается 5-7 частями, каждый при определенном условии, последняя часть может "висеть" до недели или даже больше. кроме того клиенту лучше все таки ж дать все в готовом виде а не сказать мол лазий сам и ищи свое бабло))
да и кроме того коль скоро лот закрывается частями то в конце надо еще сделать суммарный репорт
 
DDFedor >>:


хм... почему не получится найти последний рабочий файл? если ЗНАТЬ ЧТО искать, то вполне возможно...
главное определиться с параметрами имени файла. такими, как "дата"(временнОй интервал). если произошла перезагрузка, в процедуре открытия файла перебирать "временнОй интервал" для имени файла. файл с НЕсуществующим именем вернет ошибку, значит следующую подстановку делаем. цикл по именам файлов от текущего значения даты до "последнего" используемого файла. вроде вполне возможно.

ну дайте примерчик ... если имеется в виду в init() перебирать по названию все файлы на открытие/закрытие (а они идут как я уже сказал по формату [день - время - ...] причем в минутах, потмоу что сессия может завершиться и в течение дня) ... не знаю. проще уж в бин записывать и считывать ...

 

Можно создать еще один файл, в который записываются имена логфайлов. Если начинается новая сессия, придумывается новоей имя файла, записывается, а затем, в случае перезагрузки считывается и дальше используется тот же файл.

 
Integer >>:

Можно создать еще один файл, в который записываются имена логфайлов. Если начинается новая сессия, придумывается новоей имя файла, записывается, а затем, в случае перезагрузки считывается и дальше используется тот же файл.


я сделал немного по другому - вместо одного, создается дублированный лог с неизменным именем, куда вписываются : название текущего логфайла и значения переменных (после перезагрузки ведь надо определить сколько лотов уже закрыто и "впрыгнуть" в проверку на следующий), а после завершения сессии этот лог удалить. таким образом в init() происходит проверка на его существование - если есть, то мы посередине сессии, если его нет, то стоим на открытие новой.
 

А я сейчас (после нескольких казусов от включения советника в начале недели) пишу советники так, чтобы анализ состояния происходил при каждом вхождении в старт. Логи теперь, как класс, исключаются.

 
Roger >>:

А я сейчас (после нескольких казусов от включения советника в начале недели) пишу советники так, чтобы анализ состояния происходил при каждом вхождении в старт. Логи теперь, как класс, исключаются.

что-то я не понял ... вы на каждом тике проверяете состояние открытых/закрытых ордеров и не записываете его статус в лог? )))

Причина обращения: