Experts: 다중 통화 이벤트 핸들러 OnTick(문자열 기호) - 페이지 3

 

관심을 가지고 다시 읽어보세요, 흠.

탬버린으로 춤을 출 필요는 없겠죠!!! 만약 !!! MQ가 켜진다면 !!! 기본적으로 DC 서버에서 유리의 방송을 켜고 DC가 끄는 것을 허용하지 않을 것입니다. 입찰과 요청만 있는 빈 베팅으로 두되, 브로드캐스팅을 해야 합니다.

그런 다음 필요한 상품을 구독하여 OnBookEvent에서 다중 통화 틱을 쉽게 추적할 수 있습니다.

사실 OnBookEvent는 표준 다중 통화 틱 핸들러입니다.

그리고 지금까지는 유리를 번역하는 딜링에서만 가능합니다.

 
micle:

문서의 코드가 오래되었습니다.

예, 이 코드는 아직 테스터에서 OnChartEvent 핸들러가 작동하지 않을 때 작성되었습니다.

참조:

관심을 가지고 다시 읽어보세요.

이 모든 탬버린 춤은 필요하지 않을 것입니다 !!! 만약 !!! MQ가 기본적으로 DC 서버에서 비커 방송을 활성화하고 DC가이를 끄지 못하도록한다면 !!! 이 모든 탬버린 춤은 필요하지 않을 것입니다. 입찰과 요청만 있는 빈 베팅으로 놔두되, 방송은 해야 합니다.

그런 다음 필요한 상품을 구독하여 OnBookEvent에서 다중 통화 틱을 쉽게 추적할 수 있습니다.

사실 OnBookEvent는 표준 다중 통화 틱 핸들러입니다.

그리고 지금까지는 유리를 번역하는 딜링에서만 가능합니다.

나는 OnBookEvent를 한 번 가지고 놀았습니다. 전문가에게는 일반적으로 작동합니다. "방송"을 제거하고 차트를 구독하지만. 또 다른 마이너스 : 지표에서 작동하지 않습니다. 테스터에서 시도하지 않았습니다.

이 주제에 대한 첫 번째 출판물 이후 많은 탬버린이 죽었습니다. 더 수용 가능한 무언가가 나타났습니다. 언젠가 게시 할 수도 있습니다.

 
Lizar:

예, 이 코드는 아직 테스터에서 OnChartEvent 핸들러가 작동하지 않을 때 작성되었습니다.

저는 온북이벤트를 가지고 놀고 있었습니다. 전문가에게는 일반적으로 괜찮을 것입니다. 하지만 '방송'을 제거하고 차트를 구독하는 것이 좋습니다. 또 다른 마이너스 : 지표에서 작동하지 않습니다. 테스터에서 시도하지 않았습니다.

이 주제에 대한 첫 번째 출판물 이후 많은 탬버린이 죽었습니다. 더 수용 가능한 무언가가 나타났습니다. 언젠가 게시 할 수도 있습니다.

더 미묘한 방법이 있습니다. 차트가 아닌 특정 전문가 고문을위한 구독이 있습니다.

따라서 구독하지 않으면 차트의 신호를받지 못합니다. 따라서 방송은 매우 질적으로 처리됩니다.

스택이있는 두 개의 차트에서 첨부 파일에서 올빼미를 실행하십시오. 각 올빼미는 구독하는 신호만 수신합니다.

파일:
 

안녕하세요 리자르,

귀하의 코드를 사용하고 싶지만 내 브로커는 mql4 언어 (TradeMasterFX 메타, 버전 : 4.00 빌드 890)를 사용합니다,

내 터미널을 mql5 지원 터미널로 업그레이드 할 수있는 방법이 있습니까?

조언해 주셔서 감사합니다,

Emre

 
Konstantin Gruzdev:

토론에 오신 것을 환영합니다 ;)

트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼

mql5 언어의 특징, 작업의 미묘함 및 기술

안드레이 카팀리안스키, 2018.10.09 23:18

50개의 상품에 대한 스파이를 사용하여 빈 Expert Advisor를 실행하면 로그에 메시지가 쏟아지기 시작합니다:

2018.10.09 22:49:24.730 Spy (AUDNZD,W1) indicator is too slow, 4281 ms. rewrite the indicator, please

500ms 단위로 카스툼 이벤트 전송 빈도에 대한 필터를 표시기에 추가하면 오류가 덜 발생하지만 사라지지는 않습니다.

저만 그런 건가요?


EA 코드:

#define  ForEach(index,array)   for(int index=0, max_##index=ArraySize(array);  index<max_##index;  index++)

string Symbols[];

int OnInit()
{
   ArrayResize( Symbols, SymbolsTotal(true) );

   ForEach( i, Symbols )
   {
      Symbols[i] = SymbolName(i,true);

      if( Symbols[i] != _Symbol )
         iCustom( Symbols[i], PERIOD_W1, "Spy.ex5", ChartID(), i );
   }
   return(INIT_SUCCEEDED);
}

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   if( id == CHARTEVENT_CUSTOM )
      OnTickMS( Symbols[ (int)lparam ] );
}

void OnTick()
{
   CheckSignal( _Symbol );
}

void OnTickMS(const string &Symb)
{
   CheckSignal( Symb );
}

void CheckSignal(const string symbol)
{
   //Comment( 기호, ": ",
   // DoubleToString( SymbolInfoDouble( symbol, SYMBOL_BID ), 5 ), " / ",
   // DoubleToString( SymbolInfoDouble( symbol, SYMBOL_ASK ), 5 ))) );
   return;
}


프로파일러는 95 %의 시간 동안 iCustom, OnChartEvent가 거의 걸리지 않음을 보여줍니다. 프로세서(i5-3570)는 75%에서 로드됩니다.


Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2018.09.21
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Andrey Khatimlianskii:

토론을 초대합니다 ;)


EA의 OnDeinit()에서 IndicatorRelease() 및 IndicatorDelete ()를 적절한 횟수만큼 사용해보라는 제안이 있습니다.
 
nra_:
EA의 온디네잇()에서 인디케이터 릴리스( )와 인디케이터 삭제 ()를 적절한 횟수만큼 사용해보라는 제안이 있습니다.

OnDeinit에 오지 않아야하며 모든 것이 작동해야합니다.

EA를 삭제한 후 모든 것이 정상이며 잠시 후 메모리가 해제됩니다.

 
Andrey Khatimlianskii:

온디네잇으로 내려갈 필요 없이 모든 것이 작동해야 합니다.

전문가 조언자를 삭제하면 모든 것이 정상이며 잠시 후 메모리가 해제됩니다.

정확히 4281ms가 낭비되는 위치를 찾기 위해 표시기를 프로파일 링하는 것이 좋습니다. 아마도 메시지 전송 자체에서.

 
Stanislav Korotky:

정확히 4281ms가 낭비되는 위치를 파악하기 위해 지표를 프로파일링하는 것이 합리적입니다. 메시지 전송 자체에 있을 수 있습니다.

우리가 해냈습니다.

어느 시점에서 이벤트 차트 사용자 정의가 3초 이상 실행되기 시작합니다.

 
EA의 OnDeinit이 OnDeinit에 오지 않아야한다는 것을 알고 있지만 이것은 이상적입니다. 테스트 15시간 동안 전문가 어드바이저에서 온디네잇이 한 번 호출된 것이 맞나요?