Здравствуйте! Такая проблема, не могу открыть файл. Пробовал разные расширения файлов, бесполезно, просто выдает: ошибка 5004. Файл находится в файловой песочнице. Все дело в handle, но не имею представления почему. Вот код:
int filehandle=FileOpen("test.txt",FILE_TXT|FILE_WRITE,";");
if(filehandle<0)
Alert("ошибка ",GetLastError()); //Для проверки handle
Kapizdo4ka: Здравствуйте! Такая проблема, не могу открыть файл. Пробовал разные расширения файлов, бесполезно, просто выдает: ошибка 5004. Файл находится в файловой песочнице. Все дело в handle, но не имею представления почему. Вот код:
Не пробовали указать что файл находится в общей папке
Флаги открытия файлов
Значения флагов, определяющих режим работы с файлом. Флаги определены следующим образом:
Идентификатор
Значение
Описание
FILE_READ
1
Файл открывается для чтения. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ
FILE_WRITE
2
Файл открывается для записи. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ
FILE_BIN
4
Двоичный режим чтения-записи (без преобразования из строки и в строку). Флаг используется при открытии файлов (FileOpen())
FILE_CSV
8
Файл типа csv (все записанные элементы преобразуются к строкам соответствующего типа, unicode или ansi, и разделяются разделителем). Флаг используется при открытии файлов (FileOpen())
FILE_TXT
16
Простой текстовый файл (тот же csv, однако разделитель не принимается во внимание). Флаг используется при открытии файлов (FileOpen())
FILE_ANSI
32
Строки типа ANSI (однобайтовые символы). Флаг используется при открытии файлов (FileOpen())
FILE_UNICODE
64
Строки типа UNICODE (двухбайтовые символы). Флаг используется при открытии файлов (FileOpen())
FILE_SHARE_READ
128
Совместный доступ по чтению со стороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытии файла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_SHARE_WRITE
256
Совместный доступ по записи со стороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытии файла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_REWRITE
512
Возможность перезаписывания файла функциями FileCopy() и FileMove(). Файл должен существовать или открываться для записи. В противном случае файл открыт не будет
FILE_COMMON
4096
Расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files. Флаг используется при открытии файлов (FileOpen()), копировании файлов (FileCopy(), FileMove()) и проверке существования файлов (FileIsExist())
При открытии файла можно указать один или более флагов, такое сочетание называется комбинацией флагов. Комбинация флагов записывается с помощью знака операции логического ИЛИ (|), который ставится между перечисляемыми флагами. Например, чтобы открыть файл в формате CSV одновременно на чтение и на запись, можно указать комбинацию FILE_READ|FILE_WRITE|FILE_CSV.
Не пробовали указать что файл находится в общей папке
Флаги открытия файлов
Значения флагов, определяющих режим работы сфайлом. Флаги определены следующим образом:
Идентификатор
Значение
Описание
FILE_READ
1
Файл открывается для чтения. Флагиспользуется при открытии файлов (FileOpen()). При открытии файла обязательно должен бытьуказан флаг FILE_WRITE и/или флаг FILE_READ
FILE_WRITE
2
Файл открывается для записи. Флагиспользуется при открытии файлов (FileOpen()). При открытии файла обязательно должен бытьуказан флаг FILE_WRITE и/или флаг FILE_READ
FILE_BIN
4
Двоичный режим чтения-записи (безпреобразования из строки и в строку). Флаг используется при открытии файлов (FileOpen())
FILE_CSV
8
Файл типа csv (все записанныеэлементы преобразуются к строкам соответствующего типа, unicode или ansi, иразделяются разделителем). Флаг используется при открытии файлов (FileOpen())
FILE_TXT
16
Простой текстовый файл (тот жеcsv, однако разделитель не принимается во внимание). Флаг используется приоткрытии файлов (FileOpen())
FILE_ANSI
32
Строки типа ANSI (однобайтовыесимволы). Флаг используется при открытии файлов (FileOpen())
FILE_UNICODE
64
Строки типа UNICODE (двухбайтовыесимволы). Флаг используется при открытии файлов (FileOpen())
FILE_SHARE_READ
128
Совместный доступ по чтению состороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытиифайла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_SHARE_WRITE
256
Совместный доступ по записи состороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытиифайла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_REWRITE
512
Возможность перезаписывания файлафункциями FileCopy() и FileMove(). Файл должен существовать илиоткрываться для записи. В противном случае файл открыт небудет
FILE_COMMON
4096
Расположение файла в общей папкевсех клиентских терминалов \Terminal\Common\Files. Флаг используется при открытии файлов (FileOpen()), копировании файлов (FileCopy(), FileMove()) и проверке существования файлов (FileIsExist())
При открытии файла можно указать один илиболее флагов, такое сочетание называется комбинацией флагов. Комбинация флаговзаписывается с помощью знака операции логического ИЛИ (|), который ставитсямежду перечисляемыми флагами. Например, чтобы открыть файл в формате CSVодновременно на чтение и на запись, можно указать комбинациюFILE_READ|FILE_WRITE|FILE_CSV.
Спасибо! Однако ответ оказался намного проще. Все из-за изменений в новом билде. Оказывается, теперь для ф-ции FileOpen нужно указывать тип uint, а не int, как в прошлой версии. Вот так:
Набросал простой Треллинг стоп. bez_Level - уровень начала Треллинга в пунктах. TrallStep - шаг треллинга. Magic - число мэджик.
Проблема в том, что при открытии советником нескольких ордеров, треллится только первый. Причем когда первый ордер закрывается, начинает треллится второй. Ошибок не пишет... Не могу понять, что сделал не так. Спасибо...
int init()
{
//handle=FileOpen("COT - U.S. DOLLAR CONCATENATE.csv",FILE_READ|FILE_CSV);//if(handle==-1)Print("Не удается загрузить файл");if(init_data()==false)error=true;
if(error==false)load_data();
if(error==false)count_data();
//if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");// setparam();Print ("Инит завершён успешно, error = ",error);
return (0);
}
//+------------------------------------------------------------------+//| Завершение работы робота |//+------------------------------------------------------------------+int deinit()
{
Print (" Завершение работы робота ");
return (0);
}
int start()
{
// if(iTime(Symbol(),0,0) == prevtime) return(0); //ждем нового бара// prevtime = iTime(Symbol(),0,0); //если появился новый бар , включаемся Print (" Старт после нового бара");
setparam();
Что-то не так в цикле while(O==3)
Здравствуйте! Такая проблема, не могу открыть файл. Пробовал разные расширения файлов, бесполезно, просто выдает: ошибка 5004. Файл находится в файловой песочнице. Все дело в handle, но не имею представления почему. Вот код:
Не пробовали указать что файл находится в общей папке
Флаги открытия файлов
Значения флагов, определяющих режим работы с файлом. Флаги определены следующим образом:
Идентификатор
Значение
Описание
FILE_READ
1
Файл открывается для чтения. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ
FILE_WRITE
2
Файл открывается для записи. Флаг используется при открытии файлов (FileOpen()). При открытии файла обязательно должен быть указан флаг FILE_WRITE и/или флаг FILE_READ
FILE_BIN
4
Двоичный режим чтения-записи (без преобразования из строки и в строку). Флаг используется при открытии файлов (FileOpen())
FILE_CSV
8
Файл типа csv (все записанные элементы преобразуются к строкам соответствующего типа, unicode или ansi, и разделяются разделителем). Флаг используется при открытии файлов (FileOpen())
FILE_TXT
16
Простой текстовый файл (тот же csv, однако разделитель не принимается во внимание). Флаг используется при открытии файлов (FileOpen())
FILE_ANSI
32
Строки типа ANSI (однобайтовые символы). Флаг используется при открытии файлов (FileOpen())
FILE_UNICODE
64
Строки типа UNICODE (двухбайтовые символы). Флаг используется при открытии файлов (FileOpen())
FILE_SHARE_READ
128
Совместный доступ по чтению со стороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытии файла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_SHARE_WRITE
256
Совместный доступ по записи со стороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытии файла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_REWRITE
512
Возможность перезаписывания файла функциями FileCopy() и FileMove(). Файл должен существовать или открываться для записи. В противном случае файл открыт не будет
FILE_COMMON
4096
Расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files. Флаг используется при открытии файлов (FileOpen()), копировании файлов (FileCopy(), FileMove()) и проверке существования файлов (FileIsExist())
При открытии файла можно указать один или более флагов, такое сочетание называется комбинацией флагов. Комбинация флагов записывается с помощью знака операции логического ИЛИ (|), который ставится между перечисляемыми флагами. Например, чтобы открыть файл в формате CSV одновременно на чтение и на запись, можно указать комбинацию FILE_READ|FILE_WRITE|FILE_CSV.
Не пробовали указать что файл находится в общей папке
Флаги открытия файлов
Значения флагов, определяющих режим работы сфайлом. Флаги определены следующим образом:
Идентификатор
Значение
Описание
FILE_READ
1
Файл открывается для чтения. Флагиспользуется при открытии файлов (FileOpen()). При открытии файла обязательно должен бытьуказан флаг FILE_WRITE и/или флаг FILE_READ
FILE_WRITE
2
Файл открывается для записи. Флагиспользуется при открытии файлов (FileOpen()). При открытии файла обязательно должен бытьуказан флаг FILE_WRITE и/или флаг FILE_READ
FILE_BIN
4
Двоичный режим чтения-записи (безпреобразования из строки и в строку). Флаг используется при открытии файлов (FileOpen())
FILE_CSV
8
Файл типа csv (все записанныеэлементы преобразуются к строкам соответствующего типа, unicode или ansi, иразделяются разделителем). Флаг используется при открытии файлов (FileOpen())
FILE_TXT
16
Простой текстовый файл (тот жеcsv, однако разделитель не принимается во внимание). Флаг используется приоткрытии файлов (FileOpen())
FILE_ANSI
32
Строки типа ANSI (однобайтовыесимволы). Флаг используется при открытии файлов (FileOpen())
FILE_UNICODE
64
Строки типа UNICODE (двухбайтовыесимволы). Флаг используется при открытии файлов (FileOpen())
FILE_SHARE_READ
128
Совместный доступ по чтению состороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытиифайла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_SHARE_WRITE
256
Совместный доступ по записи состороны нескольких программ. Флаг используется при открытии файлов (FileOpen()), но не заменяет при открытиифайла необходимости указать FILE_WRITE и/или флаг FILE_READ
FILE_REWRITE
512
Возможность перезаписывания файлафункциями FileCopy() и FileMove(). Файл должен существовать илиоткрываться для записи. В противном случае файл открыт небудет
FILE_COMMON
4096
Расположение файла в общей папкевсех клиентских терминалов \Terminal\Common\Files. Флаг используется при открытии файлов (FileOpen()), копировании файлов (FileCopy(), FileMove()) и проверке существования файлов (FileIsExist())
При открытии файла можно указать один илиболее флагов, такое сочетание называется комбинацией флагов. Комбинация флаговзаписывается с помощью знака операции логического ИЛИ (|), который ставитсямежду перечисляемыми флагами. Например, чтобы открыть файл в формате CSVодновременно на чтение и на запись, можно указать комбинациюFILE_READ|FILE_WRITE|FILE_CSV.
И теперь ф-ция в случае ошибки возвращает не -1, а 0.
Набросал простой Треллинг стоп. bez_Level - уровень начала Треллинга в пунктах. TrallStep - шаг треллинга. Magic - число мэджик.
Проблема в том, что при открытии советником нескольких ордеров, треллится только первый. Причем когда первый ордер закрывается, начинает треллится второй. Ошибок не пишет... Не могу понять, что сделал не так. Спасибо...
int lim=OrdersTotal()-1;
Ребята, в чём фишка? Почему не выходит из Инита?
Ребята, в чём фишка? Почему не выходит из Инита?
Причём даже так: