Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 410

 
Trader7777:
Outra pergunta, o testador mostra erro 138 (ERR_REQUOTE), o que isso significa?
Isso significa que não há solicitações no testador. Isso significa que há um erro na ordem comercial. O mais provável é que você esteja tentando abrir o mercado como um mercado pendente.
 
artmedia70:
Isto significa que não há solicitações no testador. Isso significa que há um erro na ordem comercial. O mais provável é que você esteja tentando abrir uma ordem de mercado como uma ordem pendente.

Não, não há ordens pendentes. O que é uma requalificação?
 
Trader7777:
Não, não há ordens pendentes. O que é uma requalificação?
É quando o preço vai além do deslizamento permitido durante uma tentativa de abrir uma posição no mercado. O testador não o mostra, o que significa que estamos tentando abrir uma posição não na Bid ou Ask, mas a algum preço desconhecido.
 

Boa tarde, tenho uma pergunta sobre como escrever dados para os arquivos.

Você pode me dizer por que no modo FILE_READ|FILE_WRITE, quando tento escrever em um arquivo, ele está escrevendo sobre o arquivo antigo, mas não anexando a ele?

Nota, não é abrir um novo arquivo vazio e preenchê-lo (como no modo FILE_WRITE), mas substituí-lo - ou seja, se menos eventos a serem escritos ocorreram durante a última corrida soviética do que durante a penúltima, os restos da última corrida ficariam pendurados no final do arquivo.

file_log = "expert_" + magic_number + "_log.csv";
handle_log = FileOpen(file_log, FILE_CSV|FILE_READ|FILE_WRITE, ',');
if(handle_log < 0)  {
  Alert("Ошибка при открытии файла ", file_log, "Возможно, файл занят другим приложением.");
  PlaySound("alarm.wav");
}
else  {
  if(FileWrite(handle_log, "time", "ticket", "type", "openprice", "stoploss", "takeprofit", "lot", "closeprice", "effect_points", "деньги советника") < 0  ||    // это заголовки
      FileWrite(handle_log, TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS), "Советник открыт с параметром delta=", delta) < 0)  {   // для отраж-я возмож. изм-я параметра при рестарте
    Alert( "Ошибка записи в файл ", file_log, " ошибка-", GetLastError() );
    PlaySound("alarm.wav");
  }
}

O arquivo é aberto e o primeiro registro (mostrado acima) é feito no init. No início, os registros de trabalho são adicionados ao arquivo de acordo com os eventos, por sua vez. O arquivo é fechado em deinit.

 
yan720:

Boa tarde, tenho uma pergunta sobre como escrever dados para os arquivos.

Por favor me diga por que no modo FILE_READ|FILE_WRITE quando você tenta escrever em arquivo, ele escreve sobre arquivo antigo, mas não anexado a ele?

Nota, não é abrir um novo arquivo vazio e preenchê-lo (como no modo FILE_WRITE), mas substituí-lo - ou seja, se menos eventos a serem escritos ocorreram durante a última corrida soviética do que durante a penúltima, os restos da última corrida ficariam pendurados no final do arquivo.

O arquivo é aberto e o primeiro registro (mostrado acima) é feito no init. No início, os registros de trabalho são adicionados ao arquivo de acordo com os eventos, por sua vez. O arquivo é fechado em deinit.

Se não estou enganado, deve haver apenas duas opções na função de abertura de arquivo, mas você tem três: "FILE_CSV|FILE_READ|FILE_WRITE".

Você não tem nenhuma função que feche o arquivo, portanto os dados não são salvos.

E no final, você pode adicionar um cursor de registro para ir até o final ao adicionar um novo

 
yan720:

Boa tarde, tenho uma pergunta sobre como escrever dados para os arquivos.

Você pode me dizer por que no modo FILE_READ|FILE_WRITE, quando tento escrever em um arquivo, ele está escrevendo sobre o arquivo antigo, mas não anexando a ele?

Nota, não é abrir um novo arquivo vazio e preenchê-lo (como no modo FILE_WRITE), mas substituí-lo - ou seja, se menos eventos a serem escritos ocorreram durante a última corrida soviética do que durante a penúltima, os restos da última corrida ficariam pendurados no final do arquivo.

O arquivo é aberto e o primeiro registro (mostrado acima) é feito no init. No início, os registros de trabalho são adicionados ao arquivo de acordo com os eventos, por sua vez. O arquivo é fechado em deinit.


Você já tentou ir até o final do arquivo para escrever?
 
Vinin:

Você já tentou ir até o final do arquivo para escrevê-lo?

Hmmm... Faz sentido... :) Obrigado.

Mas como...? Eu não vi isso na descrição das funções do arquivo do idioma. Leia tudo o que você tem nele enquanto(!FileIsEnding(handle_log)) ou há uma maneira mais "direta"?

 
yan720:

Hmmm... Faz sentido... :) Obrigado.

Como...? Eu não vi nada disso na descrição das funções do arquivo do idioma. Leia tudo nele via while(!FileIsEnding(handle_log)) ou há uma maneira mais "direta"?


FileSeek()
 
Vinin:

FileSeek()

Obrigado.
 
yan720:

Hmmm... Faz sentido... :) Obrigado.

Mas como...? Eu não vi isso na descrição das funções do arquivo do idioma. Existe uma maneira mais "direta" de ler tudo o que está nele(!FileIsEnding(handle_log))?


Oh, ótimo... Estou certamente feliz que o problema esteja resolvido, mas por alguma razão você não percebeu minha mensagem, onde eu disse a mesma coisa, com palavras ligeiramente diferentes, e imediatamente falei sobre defeitos, exceto para fechar o arquivo, eu não vi imediatamente onde isso acontece:)