MetaEditor 개선을 위한 제안 - 페이지 6

 
Lizar :
노력하다. 테스터에서 작동합니다. 그러나 기사에 명시된 수정 사항과 함께.

이벤트를 통해 테스터에서 무엇을 보내야합니까? 만약

A) 테스터에서 차트가 열리지 않음

B) 이벤트 표시기가 수신되지 않음

그가 자신에게 이벤트를 보낼 것이라고 고문, 요점이 무엇입니까?

 

Обработка событий в тестере

MetaTrader 5 터미널 테스터의 이력 데이터를 테스트하기 위해 Expert Advisor에 OnTick() 핸들러가 있어야 하는 것은 아닙니다. Expert Advisor에는 다음 핸들러 중 하나 이상이 있으면 충분합니다. 기능:

  • OnTick() - 새로운 틱 도착 이벤트 핸들러;
  • OnTrade() - 거래 이벤트 핸들러;
  • OnTimer() - 타이머로부터의 신호 도착을 위한 이벤트 핸들러.
  • OnChartEvent() - 사용자 정의 이벤트 핸들러.

Expert Advisor에서 테스트할 때 OnChartEvent() 함수를 사용하여 사용자 이벤트를 처리할 수 있지만 이 함수는 지표에 대한 테스터에서 호출되지 않습니다. 표시기에 OnChartEvent() 핸들러가 있고 이 표시기가 테스트된 Expert Advisor에서 사용되더라도 표시기 자체는 사용자 정의 이벤트를 수신하지 않습니다.

테스트 중 표시기는 EventChartCustom() 함수를 사용하여 사용자 지정 이벤트를 생성할 수 있으며 EA는 OnChartEvent() 에서 이 이벤트를 처리할 수 있습니다.

1. 현재 내가 기억하는 한 테스터의 EA 자체는 EventChartCustom() 을 사용하여 보낸 이벤트를 처리하지 않습니다.

2. 기사에 기능이 테스터의 표시기에서는 작동하지 않지만 도움말에서는 작동하지 않는다는 표시가 있습니다. 그게 무슨 의미 일까?

3. 뭐, 데모/리얼에서 동작하고 테스터에서는 동작하지 않는 것은 옳지 않습니다. 나랑 하고 싶은 거 다 해, 아직 옳지 않아.

칠면조에서 이미 OnChartEvent() 를 수행했다면 모든 곳에서 작동하도록 하십시오. 그렇지 않으면 그대로 유지하는 것이 좋습니다 ...

추신

그건 그렇고, 칠면조에 대해. 개발자를 위한 질문 - 테스터에서 전혀 작동하지 않습니까? 아니면 OnChartEvent()를 사용하여 보낸 것만 처리하지 않습니까?

 
Urain :

이벤트를 통해 테스터에서 무엇을 보내야합니까? 만약

A) 테스터에서 차트가 열리지 않음

B) 이벤트 표시기가 수신되지 않음

그가 자신에게 이벤트를 보낼 것이라고 고문, 요점이 무엇입니까?

예를 들어, 나는 나 자신에게 성공적으로 보냈지 만 (테스터에서 이벤트 수신이 중단 될 때까지) 자신에게 성공적으로 보냈습니다.

그리고 테스터가 그래픽을 이해하고 처리하기 시작하면 이벤트를 수신하는 것이 논리적일 것입니다 ...

 

질문이 명확하지 않습니다. "테스터에서 전혀 작동하지 않거나 OnChartEvent() 의 도움으로 전송된 내용만 처리하지 않습니까?"는 무엇을 의미합니까?

테스터의 지표 에 ChartEvent를 전달하는 메커니즘은 없습니다. 테스트를 거친 Expert Advisor 에 이벤트를 전달하는 주기는 테스터의 주요 부분일 뿐입니다.

 
Interesting :

예를 들어, 나는 나 자신과 둘 이상에게 성공적으로 보냈습니다 (테스터에서 이벤트 수신이 끊어 질 때까지).

즉, 테스터 초기에 이벤트 수신이 있었고 고장 났습니까?
 
Interesting :

예를 들어, 나는 나 자신에게 성공적으로 보냈지 만 (테스터에서 이벤트 수신이 중단 될 때까지) 자신에게 성공적으로 보냈습니다.

그리고 테스터가 그래픽을 이해하고 처리하기 시작하면 이벤트를 수신하는 것이 논리적일 것입니다 ...

하나의 프로그램 내에서 정보를 전달할 수 있는 많은 기회가 있으며, 이벤트의 의미는 다른 프로그램 간에 정보를 전달하는 것입니다.
 
Lizar :

기사 에서 공식적으로 발표한 대로 몇 주 동안:

공식적으로는 기사가 아닌 "빌드 업데이트"에서 발표하는 것 같습니다. "업데이트"에 뭔가가 있었습니까?
 
Urain :
하나의 프로그램 내에서 정보를 전달할 수 있는 많은 기회가 있으며, 이벤트의 의미는 다른 프로그램 간에 정보를 전달하는 것입니다.

결론은 전송하는 방법이 아니라 테스터에서 작동했던(사실, 그래야만 함)이 약 6개월 전에 작동을 멈췄다는 것입니다.

스트링고 :

테스터의 지표 에 ChartEvent를 전달하는 메커니즘은 없습니다. 테스트를 거친 Expert Advisor 에 이벤트를 전달하는 주기는 테스터의 주요 부분일 뿐입니다.

즉, 테스터 초기에 이벤트 수신이 있었고 고장 났습니까?

전문 테스터의 EventChartCustom () -> OnChartEvent() 문제에 대해 이야기하고 있습니다. 물론 제가 이해하지 못하는 부분이 있을 수도 있지만 챔피언십 전에는 모든 것이 잘 작동했지만 지금은 그렇지 않습니다.

동시에 모든 사람이 이미 알고 있고 모든 사람이 모든 것을 이해하지만 "기관차"는 그 자리에서 움직이지 않습니다(이것이 "주요 부분"이라는 사실에도 불구하고).

간단한 예:

하나 . 300초(5분)마다 타이머를 실행하여 Expert Advisor를 초기화합니다.

 //Function OnInit
int OnInit ()
//Function for initialization of the trade system
{
//----------------------------------------------------------------------------//
int Result = 0 ; //Returned importance
//----------------------------------------------------------------------------//

EventSetTimer ( 300 );

//----------------------------------------------------------------------------//
return (Result);
//----------------------------------------------------------------------------//
}

2. 타이머에서 코드 1001로 이벤트 전송을 작성합니다.

 //Event OnTimer
void OnTimer ()
{
//----------------------------------------------------------------------------//
//Work variables
int customEventID; // номер пользовательского события для отправки
//----------------------------------------------------------------------------//
customEventID= CHARTEVENT_CUSTOM + 1 ;

EventChartCustom ( 0 ,( ushort )(customEventID- CHARTEVENT_CUSTOM ), 0 , 0 , "OnTimer - EventChartCustom" );
//----------------------------------------------------------------------------//
}
3. Expert Advisor에서 이 이벤트를 확인하세요.
 //Event OnChartEvent
void OnChartEvent ( const int id,
                   const long & lparam,
                   const double & dparam,
                   const string & sparam
                  )
{
//----------------------------------------------------------------------------//
//Work variables
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
//                          Processing user events                            //
//----------------------------------------------------------------------------//
   if (id> CHARTEVENT_CUSTOM )
   //User event is received
  {
   Print ( "New event, ID " ,id, " - " ,sparam);
  }
//----------------------------------------------------------------------------//  
}


그리고 그 결과로 무엇을 볼 수 있습니까? 결과적으로 데모는 이 이벤트를 조용히 수신하지만 테스터는 수신하지 않습니다.

그리고 이것은 아이디어에 따르면 "핵 전쟁"의 경우에도 작동해야 하는 무역 시스템의 기본 요소처럼 보입니다.

1. 1분 타이머가 있는 데모


2. 1시간 타이머 테스터


나는 또한 테스트가 TF 1H에서 2011년 1월 4일부터 2011년 4월 7일까지 수행되었다고 덧붙일 것입니다. 보시다시피 긍정적인 부분이 많았을 것입니다.

그리고 그들은 어디에 있습니까?

추신

메시지가 전문가에게 도달하지 않으면 칠면조에서 올 것이라고 누군가 생각합니까?


 
Yedelkin :
공식적으로는 기사가 아닌 "빌드 업데이트"에서 발표하는 것 같습니다. "업데이트"에 무언가가 있었습니까?

예, 버그가 나타나고 무게가 나가는 것처럼 아무 것도 없었습니다.

그리고 기사에서 이것이 기사가 아니라 새 빌드에 대한 설명에도 불구하고 표시되어야한다는 사실에 대해.

사실 그런 내용은 언어 가이드에 나와 있어야 합니다. 이것에 대해 적어도 단어가있는 곳을 보여주세요 (개인적으로 찾지 못했습니다) ...

 
stringo :
즉, 테스터 초기에 이벤트 수신이 있었고 고장 났습니까?

그래야 국가고시를 제대로 준비할 수 있다. 그리고 내가 하는 일 - 포럼에서 내 게시물을 찾고 있습니다. :)

1. 오류, 버그, 질문

2. 오류, 버그, 질문

문제에 대한 첫 번째 메시지를 찾고 싶었지만 챔피언십 기간 동안 기능이 더 이상 작동하지 않았다는 것을 확실히 기억하지만 파헤치지 않았습니다...

2010년 5월 9일자 게시물이 해당 주제에 대한 첫 번째 게시물이라고 가정합니다. 결론 - 벌써 8개월째... :(

추신

여기 또 다른 발굴이 있습니다.

2010년 6월 9일의 내 예

그리고 Alexey조차도 문제 해결에 대해 생각하기로 약속했습니다.