Ещё раз о записи информации в файл

 
Ещё раз о записи информации в файл
Хотел для анализа получить самые подробные данные по изменению цены, т.е. записать в файл цену на каждом тике. С этой целью создал следущего эксперта

var: fhead(0),nCount(0);

If Bars<200 then Exit; // на графике менее 200 баров

if fhead = 0 then
{
fhead = FileOpen("c:\protokol.txt",";");
};

if nCount < 100 then
{
// Print(PriceTime,Seconds(),Ask,Bid);
FileWrite(fhead,PriceTime,Seconds(),Ask,Bid);
nCount = ncount + 1;
};

if nCount >= 100 then
{
FileClose(fhead);
};

Как видите, пробовал писать и в протокол и в специально создаваемый файл, но эффекта никакого. В логе - сообщение о присоединении эксперта и больше ничего.

Подскажите, пожалуйста, в чём тут дело.
 
должно работать, правда с некоторыми оговорками
нельзя указывать полностью специфицированное имя файла. в Вашем случае откроется файл "......\MetaTrader\experts\protokol.csv".
во-вторых, fhead лучше проинициализировать отрицательным значением, так как при открытии первого файла Вам будет возвращён 0.
но, в принципе, даже указанный Вами код должен работать.
а учитываете ли Вы, что эксперт запускается на выполнение только с приходом ценового тика?
 
Я на это и рассчитывал
Как ещё можно учитывать это обстоятельство. Я достаточно долго ждал, чтобы пришло несколько тиков.

Когда я писал в аргументах fileopen() просто "protokol", то в логах сообщалось "файл или каталог не найден". Может, не работает, потому что я выхожу, не дожидаясь fileclose()? Вряд ли...

А почему не работает запись в лог через Print()?
 
запись в лог при помощи print точно работает, так как print именно для этого и нужен
 
Добавьте возножность записи экрана в GIF
.. а то BMP слишком крутые получаются.
 
я прогнал Вашего эксперта в опубликованном виде -
всё работает так, как Вы задумывали.
за исключением того, что файл protokol.csv открывается в директории experts.
я задавал имя "protokol". и он тоже нормально открывался