Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Они закрываются. Или я что-то не понял.
Если во внутренних условиях тоже закрывать дескрипторы.....все тоже самое.
янв.51 янв.26 янв.49
янв.49 янв.32 янв.38
янв.46 янв.36 янв.45
Чтобы всё сохранялось "как есть", надо использовать формат ячеек "Текстовый" ;)
А если это на этапе записи, то можно записывать одну длинную строку (например, "1.2046;1.2021;2005.05.01"), а в Excel простой формулой разбивать это "щастье" на несколько =)
Хотя, это, конечно, - обходы...
Исправьте код и заново детально сформулируйте свой вопрос, пожалуйста.
Правильно заданный вопрос - 50% ответа.
После расчета значений индикатора идет блок записи в файл.
Вы говорите о потере дескриптора, но файлы все закрываются! Покажите пожалуйста где может быть эта потеря? Раньше еще формировал заголовок, но убрал его.....так что весь код для записи файлов в низу.....
int start()
int handle,handleQuotes,err;
while(i>=0)
{
// Алгоритм индикатора
.......................................
// открываем первый файл
handle=FileOpen("Renko.csv",FILE_CSV|FILE_WRITE|FILE_READ, ';');
err= GetLastError();
if (err!= 0) {
Comment("err=",err);
return (0);
}
// открываем второй файл
handleQuotes=FileOpen("Quotes.csv",FILE_CSV|FILE_WRITE|FILE_READ, ';');
err= GetLastError();
if (err!= 0) {
Comment("err=",err);
FileClose(handle);
return (0);
}
if((handle>0)&&(handleQuotes>0))
{
Comment("err1=",err);
FileSeek(handle, 0, SEEK_END);
FileSeek(handleQuotes, 0, SEEK_END);
FileWrite(handle, ExtMapBuffer1[i],ExtMapBuffer2[i],TimeToStr(Time[i],TIME_DATE),TimeToStr( Time [i],TIME_MINUTES),i,High[i],Low[i],Close[i],Value1,Brick,BricksUp,BricksDn);
err= GetLastError();
if (err!= 0) {
Print("Ошибка записи в файл - Renko.csv ", err);
FileClose(handle);
FileClose(handleQuotes);
return (0);
}
FileWrite(handleQuotes,i,High[i],Low[i],Close[i] );
err= GetLastError();
if (err!= 0) {
Print("Ошибка записи в файл - Quotes.csv ", err);
FileClose(handle);
FileClose(handleQuotes);
return (0);
}
// Закрытие файлов
FileClose(handle);
FileClose(handleQuotes);
}
i--;
} // end while
В самом mt никак, только через com сервер excel (Excel.Application), но зачем когда есть csv.
handle=FileOpen("Renko.csv",FILE_CSV|FILE_WRITE|FILE_READ, ';');
err= GetLastError();
if (err!= 0) {
Comment("err=",err);
return (0);
}
// открываем второй файл
handleQuotes=FileOpen("Quotes.csv",FILE_CSV|FILE_WRITE|FILE_READ, ';');
err= GetLastError();
if (err!= 0) {
Comment("err=",err);
FileClose(handle);
return (0);
}
if((handle>0)&&(handleQuotes>0))
{
Comment("err1=",err);
FileSeek(handle, 0, SEEK_END);
Вы говорите о потере дескриптора, но файлы все закрываются!
Да, _теперь_ файлы везде закрываются.
К сожалению, вопроса нет. В чем именно проблемы и в чем именно вопрос?
Попытайтесь встать на место того, кто хочет помочь и ответить?
Сформулируйте точный вопрос, пожалуйста.
Не понял....объясни пожалуйста.
Первый файл закрывается, если нельзя открыть второй......
{
Comment("err1=",err);
FileSeek(handle, 0, SEEK_END);
Это условие в итоге не отрабатывает.