Grande EA no backtest! - página 115

 
tururo:
O arquivo está sendo sobregravado toda vez que você o abre. Uma solução é abrir o arquivo na função init() e fechá-lo na função deinit()

então eu fiz isto...

int init()

{

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');//este é o único lugar no código que uso FileOpen() Desliguei todos os outros.

return(0);

}

int deinit()

{

FileClose(handle);

retornar(0);

}

e no código quando quero anexar algo a ele fiz isto...

FileWrite(handle, "SellPossibilityMid:", SellPossibilityMid);

FileWrite(handle, "BuyPossibilityMid:", BuyPossibilityMid);

e recebo a mensagem de erro "Demasiados arquivos abertos".

 

bool startfileopen = true;

int init()

{

if(startfileopen)

{

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');

startfileopen = falso;

}

isto parece ter resolvido essa falha.

mas ainda está mostrando apenas uma entrada no arquivo, parte da qual está truncada.

Order Open Time: ;1160137278

SellPossibilityMid*SellPossibilityQuality:;0.00190286

BuyPossibilityMid*BuyPossibilityQuality:;0.00132571

UndefinedPossibilityMid*UndefinedPossibilityQuality:;0.00365143

UndefinedSucPossibilityQuality:;9

SellSucPossibilityQuality:;9

BuySucPossibilityQuality:;7

UndefinedPossibilityQuality:;18

SellPossibilityQuality:;9

BuyPossibilityQuality:;8

UndefinedSucPossibilityMid:;0.00074444

SellSucPossibilityMid:;0.00082222

BuySucPossibilityMid:;0.0008

UndefinedPossibilityMid:;0.00020286

SellPossibilityMid:;0.00021143

BuyPossibilityMid:;0.00016571

ng Short OrderTicket: ;24; Opened @: ;1.2685; Closed @: ;1.2677; Order Open Time: ;1160121599

 

Isto pode ajudar

Olá Aaragorn grande trabalho que você está fazendo no CT, tenha este E.A. que eu acho que faz algo um pouco semelhante ao que você está fazendo, talvez haja uma maneira de incorporar isto no CT. Acho que isto coleta dados de tick em um arquivo csv, de alguma forma.

cumprimentos,

mrtools

 

Tenho um amigo que é um programador que me disse para esquecer o init() deinit() e mudar quando eu o chamasse para

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE|FILE_READ,';');

Tenho que deixar isto por um pouco, voltarei a verificar mais tarde. Esperemos que o dudeworks faça com que funcione. Eu simplesmente ainda não sei como fazer estas coisas de arquivo.

 
mrtools:
Olá Aaragorn grande trabalho que você está fazendo no CT, tenha este E.A. que eu acho que faz algo um pouco parecido com o que você está fazendo, talvez haja uma maneira de incorporar isto no CT. Acho que isto coleta dados de tick em um arquivo csv, de alguma forma.

cumprimentos,

mrtools

ok OBRIGADO! isso é interessante, vendo outro código que está funcionando ajuda, tenho que sair por um pouco, mas vou verificar de novo.

 

Erro de manipulação inválido

Aaragorn, este especialista precisa de uma fonte externa (eu acho) para reunir os dados ou distribuí-los para o E.A. para negociar, que infelizmente não tenho e não tenho nenhuma idéia de como criar uma, então o especialista não vai negociar apenas dando a mensagem de erro "invalid handle -1 in file read number", apenas pensei que o código poderia ajudar.

Saudações

mrtools

 
mrtools:
Aaragorn, este especialista precisa de uma fonte externa (acho que) para reunir os dados ou distribuí-los para o E.A. para negociar, o que infelizmente não tenho e não tenho nenhuma idéia de como criar um, então o especialista não vai negociar apenas dando a mensagem de erro "invalid handle -1 no número de leitura do arquivo", apenas pensei que o código poderia ajudar.

cumprimentos

mrtools

Obrigado, eu aprecio o incentivo.

O mais próximo que posso dizer deste código primeiro apaga qualquer valor anterior do arquivo, depois abre um arquivo para adicionar algo e depois fecha o arquivo.

depois abre o arquivo para ler o que ele escreveu.

o desafio que tenho é que quando quero adicionar algo mais ao arquivo sem apagar ou sobrescrever o que já está escrito em outras palavras, anexando os novos dados ao final do arquivo...

Eu preciso de um exemplo de como fazer isso.

 

Alguém pode me ensinar como usar corretamente as funções de armazenamento e recall de arquivos?

Eu dei uma olhada nesta documentação...

int FileOpen( string filename, int mode, int delimiter=';')

Opens file for input and/or output. Returns a file handle for the opened file or -1 (if the function fails). To get the detailed error information, call GetLastError() function.

Notes: Files can only be opened in the terminal_directory\experts\files folder (terminal_directory\tester\files if for expert testing) or in its subfolders.

FILE_BIN and FILE_CSV modes cannot be used simultaneously.

If FILE_WRITE does not combine with FILE_READ, a zero-length file will be opened. If even the file containd some data, they will be deleted. If there is a need to add data to an existing file, it must be opened using combination of FILE_READ | FILE_WRITE.

If FILE_READ does not combine with FILE_WRITE, the file will be opened only if it already exists. If the file does not exist, it can be created using the FILE_WRITE mode.

No more than 32 files can be opened within an executable module simultaneously. Handles of files opened in the same module cannot be passed to other modules (libraries).

Parameters:

filename - Filename.

mode - Opening mode. It can be one or combination of values: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.

delimiter - Delimiter character for csv files. By default, the ';' symbol applies.

Sample:

int handle;

handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';');

if(handle<1)

{

Print("File my_data.dat not found, the last error is ", GetLastError());

return(false);

}

Já dei uma olhada nisto, mas não entra em detalhes suficientes para ensinar a usá-la. Suponho que se eu já soubesse como usá-la, este link faria sentido, mas como ainda não sei, não dá muita visão.

http://www.metatrader.info/node/142

 
mrtools:
Aaragorn, este especialista precisa de uma fonte externa (acho que) para coletar os dados ou distribuí-los para o E.A. para negociar, o que infelizmente não tenho e não tenho nenhuma idéia de como criar uma, então o especialista não vai negociar apenas dando a mensagem de erro "invalid handle -1 in file read number", apenas pensei que o código poderia ajudar.

cumprimentos

mrtools

Obrigado por esse pedaço de código. Eu olhei para ele e posso vê-lo tanto criando como lendo arquivos. Não o vejo anexando nada no final de um arquivo que já tenha sido criado. Talvez esteja e eu simplesmente não estou vendo e talvez não esteja fazendo isso e não há nada para ver. Gostaria de conhecer um código que soubéssemos que estava anexando dados ao final para que eu pudesse ver como ele o faz.

 

O CT não funciona

Li esta linha da frente para trás tentando encontrar uma solução que tenho a

Cyberia Trader1.85g versão jpy.mq4 Eu a carreguei e tenho o rosto mas não recebi nenhuma ordem. Estou usando o par USD/CHF em 30mins. não ter nenhuma ordem faz com que seja realmente difícil fazer qualquer teste de avanço. o sistema está rodando há 4 dias e ainda não tem nenhuma ordem.

alguma ajuda seria ótimo, obrigado.

aplausos

Beno

Razão: