MQL5를 사용하는 주식 오실레이터 - 페이지 3

 

DV2010 :

... Renat , 테스트 완료 후 차트에 표시기가 표시되는 것은 테스트 중에 수행된 계산과 표시기 배열의 채우기를 기반으로 정확하게 발생합니다. 그런데 테스터의 결과가 테스터의 커스텀 지표 차트로 전송되지 않는다는 것은 무엇을 의미합니까?

테스터 에이전트에서 계산된 지표 데이터는 물론 터미널 차트로 전송되지 않습니다. 수백 메가바이트의 계산된 데이터를 터미널로 보내지 않으므로 표시기에 의해 즉시(그리고 다음 틱에서) 다시 계산됩니다(아무도 OnCalculate 함수 호출을 취소하지 않음).

표시기는 자체적으로 계산해야 합니다.

 

sergey1294 :
Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.

그러나 버퍼에 데이터를 정확히 어디에 쓸까요?

OnCalculated 로만 작성할 수 있다고 생각하고, 이렇게 구현해 보았습니다.

 
DV2010 :

Rosh, 온라인 버전은 이미 게시되었지만 주로 History로 작업하는 사람으로서 나는 과거 데이터를 기반으로 한 작업 버전이 필요합니다. 그리고 여기서 가장 큰 어려움이 무엇인지 이해하는 것은 여전히 어렵습니다.


지분 가치를 파일에 씁니다. 그런 다음 이 값을 기반으로 지표를 작성하십시오. 그러나 테스트하는 동안 파일이 agent_name/MQL5/Files 폴더에 기록되기 때문에 데이터 파일을 수동으로 전송해야 합니다.
 
DV2010 :

그러나 버퍼에 데이터를 정확히 어디에 쓸까요?

OnCalculated로만 작성할 수 있다고 생각하고 구현해 보았습니다.

전문가로서 우리는 값을 파일에 쓴 다음 파일에서 읽고 데이터를 표시기의 버퍼에 쓰는 코드를 작성합니다. 아직 코드를 줄 수 없고 작성하는 데 시간이 걸릴 것입니다.

 
Renat :

테스터 에이전트에서 계산된 지표 데이터는 물론 터미널 차트로 전송되지 않습니다. 수백 메가바이트의 계산된 데이터를 터미널로 보내지 않을 것이므로 지표에 의해 즉시(그리고 다음 틱에) 다시 계산됩니다(아무도 OnCalculate 함수 호출을 취소하지 않았습니다). 자신의.

Renat , 표시기는 자체적으로 계산해야 합니다.

따라서 OnCalculated 메서드에서 특정 값으로 표시기 배열의 값을 초기화합니다. 그러나 주가로 지표 라인을 초기화(구성)할 수 있는 이유는 무엇입니까 ? - 아니요?

 
DV2010 :

Renat , 표시기는 자체적으로 계산해야 합니다.

따라서 OnCalculated 메서드에서 특정 값으로 표시기 배열의 값을 초기화합니다. 그러나 주가로 지표 라인 을 초기화(구성)할 수 있는 이유는 무엇입니까 ? - 아니요?

가격에는 역사가 있고 자본에는 역사가 없기 때문입니다. 따라서 형평성을 위해서는 파일에 기록하여 자신의 히스토리를 구축해야 합니다.
 
Rosh : 지분 가치를 파일에 씁니다. 그런 다음 이 값을 기반으로 지표를 작성하십시오. 그러나 테스트하는 동안 파일이 agent_name/MQL5/Files 폴더에 기록되기 때문에 데이터 파일을 수동으로 전송해야 합니다.

파일에 쓰기 위해서는 다음을 통한 정의를 바탕으로 전문가의 OnInit에서 필요하다고 이해하고 있습니다. AccountInfoDouble ( ACCOUNT _ EQUITY ) 및 파일에서 읽기 - OnCalculated 표시기에서.

그러나 왜 다음을 통해 변화하는 Equity에 대한 데이터 AccountInfoDouble ( ACCOUNT _ EQUITY )OnCalculated 에서 직접 사용할 수 있습니까?

이 경우 코드가 너무 번거로워집니다 ....

나는 그것을 알아낼 수 없다... OnCalculated에서 인쇄 AccountInfoDouble ( ACCOUNT _ EQUITY )은 일부 값을 반환합니다.

Indicator 값의 배열에 즉시 할당되는 것을 정확히 방지하는 것은 무엇입니까?

나는 항상 이력에 대한 테스터의 값 표시가 현재 값의 표시와 이력이 이미 기록되어 있고 현재 데이터가 막오고 있다는 점에서만 현재 값의 표시와 다르다고 생각했습니다.

 

sergey1294 :
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.

그러나 어떻게 Equty의 역학이 일반적으로 지표의 OnCalculated에서 AccountInfoDouble ( ACCOUNT _ EQUITY ) 을 통해 표시됩니까(전문가 고문의 OnTick 뿐만 아니라)?

아니면 OnCalculated Indicator가 테스트 모드 와 디스플레이 모드에서 다르게 작동합니까?

 

EA의 전역 수준에서 두 개의 배열 선언 자기자본 []과 시간[]

Expert Advisor를 테스트할 때 적절한 어레이에 자산 가치와 시간을 입력하십시오.

스크립트 는 테스트 완료 시 파일을 읽고 원하는 차트에 개체를 포함하여 형평성을 구축합니다.

당신의 목적을 위해 가장 적합한 방법입니다. 왜 지표가 필요한지 이해하지 못합니다.

 
DV2010 :

파일에 쓰기 위해서는 다음을 통한 정의를 바탕으로 전문가의 OnInit에서 필요하다고 이해하고 있습니다. AccountInfoDouble ( ACCOUNT _ EQUITY ) 및 파일에서 읽기 - OnCalculated 표시기에서.

그러나 왜 다음을 통해 변화하는 Equity에 대한 데이터 AccountInfoDouble ( ACCOUNT _ EQUITY )OnCalculated 에서 직접 사용할 수 있습니까?

이 경우 코드가 너무 번거로워집니다 ....

나는 그것을 알아낼 수 없다... OnCalculated에서 인쇄 AccountInfoDouble ( ACCOUNT _ EQUITY )은 일부 값을 반환합니다.

Indicator 값의 배열에 즉시 할당되는 것을 정확히 방지하는 것은 무엇입니까?

나는 항상 이력에 대한 테스터의 값 표시가 현재 값의 표시와 이력이 이미 기록되어 있고 현재 데이터가 막오고 있다는 점에서만 현재 값의 표시와 다르다고 생각했습니다.

나는 당신에게 어떻게 설명해야 할지조차 모릅니다. AccountInfoDouble ( ACCOUNT _ EQUITY ) 은 마지막 자산 값을 저장합니다. 테스트 후 Renat이 말했듯이 표시기는 다시 초기화되고 다시 계산됩니다. 따라서 런 중 인디케이터 버퍼에 축적된 에퀴티 데이터는 지워진다.