백테스트에서 훌륭한 EA! - 페이지 115

 
tururo:
파일을 열 때마다 파일을 덮어쓰고 있습니다. 한 가지 해결책은 init() 함수에서 파일을 열고 deinit()에서 닫는 것입니다.

그래서 내가 이것을했다 ...

정수 초기화()

{

handle=FileOpen("cyberia_log.csv", FILE_CSV|FILE_WRITE, ';');//이 코드에서 FileOpen()을 사용 하는 유일한 위치이며 다른 모든 항목은 해제했습니다.

리턴(0);

}

정수 초기화()

{

파일 닫기(핸들);

리턴(0);

}

그리고 코드에서 뭔가를 추가하고 싶을 때 이렇게 했습니다...

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

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

"너무 많은 파일이 열려 있습니다"라는 오류 메시지가 나타납니다.

 

부울 시작 파일열기 = true;

정수 초기화()

{

if(시작파일열기)

{

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

시작 파일 열기 = 거짓;

}

이것은 그 결함을 해결 한 것 같습니다.

그러나 여전히 파일 부분이 잘린 하나의 항목만 표시됩니다...

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

 

도움이 될 수 있습니다.

안녕하세요 Aaragorn CT에서 하고 있는 훌륭한 작업입니다. 이 EA가 귀하가 하고 있는 것과 유사한 작업을 수행한다고 생각합니다. 아마도 이것을 CT에 통합할 수 있는 방법이 있을 것입니다. 나는 이것이 어떻게 든 csv 파일의 틱 데이터를 수집한다고 생각합니다.

문안 인사,

mrtools

 

나에게 init() deinit() 항목을 잊어버리고 호출할 때 변경하라고 말한 프로그래머 친구가 있습니다.

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

잠시 놔둬야겠네요 나중에 다시 확인하겠습니다. 듀드웍스가 잘 되기를 바랍니다. 나는 아직 이 파일 작업을 수행하는 방법을 모릅니다.

 
mrtools:
안녕하세요 Aaragorn CT에서 하고 있는 훌륭한 작업입니다. 이 EA가 귀하가 하고 있는 것과 유사한 작업을 수행한다고 생각합니다. 아마도 이것을 CT에 통합할 수 있는 방법이 있을 것입니다. 나는 이것이 어떻게 든 csv 파일의 틱 데이터를 수집한다고 생각합니다.

문안 인사,

mrtools

네 감사합니다! 흥미롭네요. 작동하는 다른 코드가 도움이 되니 잠시 자리를 비워야 하지만 다시 확인 하겠습니다.

 

잘못된 핸들 오류

Aaragorn, 이 전문가는 데이터를 수집하거나 EA가 거래할 수 있도록 배포하기 위해 외부 소스(제 생각에)가 필요합니다. 불행히도 저는 데이터를 생성할 방법이 없고 생성 방법을 알지 못하므로 전문가가 ' t trade는 "invalid handle -1 in file read number"라는 오류 메시지를 표시하고 코드가 도움이 될 것이라고 생각했습니다.

문안 인사

mrtools

 
mrtools:
Aaragorn, 이 전문가는 데이터를 수집하거나 EA가 거래할 수 있도록 배포하기 위해 외부 소스(제 생각에)가 필요합니다. 불행히도 저는 데이터를 생성할 방법이 없고 생성 방법을 알지 못하므로 전문가가 ' t trade는 "invalid handle -1 in file read number"라는 오류 메시지를 표시하고 코드가 도움이 될 것이라고 생각했습니다.

문안 인사

mrtools

감사합니다. 격려 감사합니다.

내가 말할 수 있는 한 이 코드는 먼저 파일의 이전 값을 삭제한 다음 파일을 열어 무언가를 추가한 다음 파일을 닫습니다.

그런 다음 파일을 열어 작성한 내용을 읽습니다.

내가 가진 문제는 파일 끝에 새 데이터를 추가하는 다른 말로 이미 작성된 내용을 삭제하거나 덮어쓰지 않고 파일에 다른 것을 추가하고 싶을 때 ...

그렇게 하는 방법에 대한 예가 필요합니다.

 

누군가 파일 저장 및 호출 기능을 올바르게 사용하는 방법을 가르쳐 줄 수 있습니까?

이 문서를 보니..

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);

}

나는 이것을 보았지만 사용법을 가르치기에 충분하지 않습니다. 나는 이미 그것을 사용하는 방법을 알고 있었다면 이 링크가 이해가 될 것이라고 생각하지만, 이미 알지 못하기 때문에 많은 통찰력을 제공하지 못합니다.

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

 
mrtools:
Aaragorn, 이 전문가는 데이터를 수집하거나 EA가 거래할 수 있도록 배포하기 위해 외부 소스(제 생각에)가 필요합니다. 불행히도 저는 데이터를 생성할 방법이 없고 생성 방법을 알지 못하므로 전문가가 ' t trade는 "invalid handle -1 in file read number"라는 오류 메시지를 표시하고 코드가 도움이 될 것이라고 생각했습니다.

문안 인사

mrtools

그 코드에 대해 감사드립니다. 나는 그것을 보았고 파일을 만들고 읽는 것을 모두 볼 수 있습니다. 이미 생성된 파일 끝에 아무것도 추가하지 않습니다. 어쩌면 그럴 수도 있고 내가 볼 수 없고 아마도 하지 않고 있고 볼 것이 없을 수도 있습니다. 데이터를 끝에 추가하는 방법을 알고 있는 코드를 알고 있었으면 좋겠습니다.

 

CT가 작동하지 않음

나는 내가 가지고 있는 해결책을 찾기 위해 이 스레드를 앞뒤로 읽었습니다.

Cyberia Trader1.85g jpy.mq4 버전 로드했고 얼굴을 하고 있지만 주문을 받은 적은 전혀 없습니다. 30분에 USD/CHF 쌍 을 사용하고 있습니다. 주문이 없으면 앞으로 테스트하기가 정말 어렵습니다. 시스템이 4일 동안 실행되었지만 여전히 주문이 없습니다.

어떤 도움은 큰 감사가 될 것입니다.

건배

베노