MT4 파일 기능 교체. - 페이지 10

 

파일 교체

나는 Strategy Tester 에서 외부 신호를 사용하는 EA를 테스트하고 싶습니다. 스레드는 기본 파일 처리가 전략 테스터에서 작동하지 않는다고 말합니다. 그래서 이 스레드에서 제공하는 dll을 사용하려고 했습니다. 처리하려는 입력은 다음과 같은 파일에 있습니다.

2007-01-02; EURUSD;2.InstPipDown;네

2007-01-02;USDJPY;1.InstPipUp;네

2007-01-02;USDCHF;1.InstPipUp;네

2007-01-03;EURUSD;2.InstPipDown;네

2007-01-03; EURUSD;4.PipMax1Down;예

2007-01-03;GBPUSD;4.PipMax1Down;예

2007-01-04;USDJPY;8.PipRevBear;네

2007-01-05; EURUSD;5.PipMax2Up;예

2007-01-05;USDJPY;1.InstPipUp;네

다른 유형의 구분 기호를 사용할 수 있도록 파일을 직접 만듭니다.

한 번에 하나의 "레코드"를 얻기 위해 dll을 어떻게 사용합니까? 개별 필드에 대한 구문 분석을 수행할 수 있습니다.

EOF에 도달했는지 어떻게 알 수 있습니까?

나는 몇 가지 변형을 시도했지만 일관성 없는 결과를 얻고 때로는 쓰레기를 얻습니다. 예제와 같이 데이터 쓰기는 잘 되는데 데이터를 읽고 싶습니다.

 

자, 인내의 법칙!

몇 시간 후에 나는 이것을 알아냈습니다.

파일 처리기가 다른 프로그램으로 만든 파일 열기를 거부합니다. 오픈 리턴 -1. 데모에서 만든 파일(mt4.log)을 사용하고 내 콘텐츠를 복사하면 작동합니다. 이유를 알 수 없습니다. 이상한

내 "레코드"를 고정 길이로 만들고 각 레코드의 끝에서 "CRLF"를 수용하기 위해 "레코드"의 길이에 2를 더한 값을 읽습니다. 파일 길이를 레코드 길이로 나눈 다음 모든 레코드를 배열로 가져오기 위해 반복했습니다.

코드는 다음과 같습니다.

정수 초기화()

{

문자열 inArr[500];

int 파일;

int 파일 크기;

int 레코드;

정수 나;

파일 = gFileOpen("c:\mt4.log",읽기);

// 인쇄(파일);

파일 크기 = gFileSize(파일);

// 인쇄(파일 크기);

레코드 = 파일 크기/25;

// 인쇄(기록);

for(i=1;i<=레코드;i++)

{

inArr = gFileRead(파일,25);

}

gFileClose(파일);

인쇄(inArr[파일크기-1]); //마지막 체크

리턴(0);

}

 

파일 출력이 있는 표시기

안녕하세요 상인 및 프로그래머.

새로운 지표에 대한 codesegemnt에 대한 도움이 필요합니다.

표시기는 관련 정보가 포함된 파일을 작성할 수 있어야 하지만 새 양초를 연 후에만 작성해야 합니다. 모든 틱 이 아닙니다.

어떻게 이것이 가능합니까? 내가 하려고 하는 것은 모든 새 양초에 마지막 1000개 막대의 OHCL을 작성하여 PNN을 훈련시키는 것입니다. 이것은 RAPID-I를 사용하여 외부에서 수행되어야 합니다.

그리고 몇 가지 다른 정보와 함께 양초가 닫힐 확률이 얼마인지 알아보십시오.

도와주세요. 훌륭한 프로젝트가 될 것이지만 너무 단순한 일을 하기에는 어리석거나 게으릅니다 :-)

프리노바

 

날짜/시간 이전=0; 초기화() 전에

그리고

if(timeprev==시간[0])

리턴(0);

timeprev=시간[0]; start() 바로 아래

그리고 그게 다야.

 

좋아요 이것은 매우 빠른 답변이었습니다.

엘리트캠퍼 감사합니다

 

라이브러리에서 이동 기능 이 제거된 이유

코더 구루,

당신이 나에게 얼마나 소중한지 말할 수 없습니다. 당신이 없었다면 고객을 지원하는 일을 할 수 없었을 것이기 때문에 당신은 내가 고객으로부터 받는 많은 칭찬을 받을 자격이 있습니다.

튜토리얼에서 참조한 대로 Move 기능이 구현되지 않은 이유가 있습니까?

다시 한 번 감사합니다 4 귀하의 서비스

존 맥글로플린

 

gFile읽기

여보세요,

mtguru1.dll의 소스 코드를 찾아보니 gFileRead() 함수가 작동하지 않아야 합니다. 내가 잘못 ?

gFileRead()는 로컬 변수를 사용하여 파일에서 읽은 문자열을 저장합니다. 함수가 반환되면 해당 변수에 대한 포인터를 반환하지만 지역 변수 pbuffer가 범위를 벗어나기 때문에 이 포인터는 유효한 포인터일 수 있습니다.

따라서 MQL4 EA에서 다음과 같은 명령이 충돌해야 합니다.

문자열 버퍼 = gFileRead( 핸들, 50 );

작동하면 이상합니다 ...

추신: 전에 잘못된 스레드에 이것을 게시했습니다. https://www.mql5.com/en/forum/172885 .

 

에라타 코리지:

....하지만 이 포인터는 유효한 포인터가 될 수 있습니다 ....

하지만 이 포인터는 유효한 포인터가 될 수 없습니다 .

 

exe 파일을 실행

안녕,

간단한 일을 하고 싶다(그래서 생각했다). EA에서 외부 프로그램을 간단히 열고(실행)하고 싶습니다. (EA에는 없음)

그래서 그냥 예를 들어. EA에서 특정 일이 발생했을 때 Microsoft Word를 열고 싶었다고 가정해 보겠습니다.

이전에 이 작업을 수행했지만 스크립트를 찾을 수 없습니다. 웹 검색에 2시간을 보냈습니다. 다음에는 안전한 곳에 코드를 저장하겠습니다!

 

몇 가지 질문?

"2008.10.21 01:54:34 Fundamental Trader DailyFX_MQL4 v0.02: 핸들 2가 FileClose에 존재하지 않습니다" 오류가 발생했습니다.

어떻게 할 수 있습니까?