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

 
2011.08.24 12:40

1. Copy
   indicators\spy_control_panel_mcm.ex5 ok
   indicators\ds.ex5 ok
   include\ontick(string_symbol).mqh ok
   include\ctrade.mqh ok
   experts\atcrollback.ex5 ok

2. Compile

3. Configuration
   atcrollback on EURUSD:M12 every tick 2011.01.01-2011.08.01


4. Start
   finished in 0 min 9 sec


5. Statistics
loading of Spy Control panel MCM EURUSD,M12 failed
2011.01.01 00:00:00   expert removed because custom indicator 'Spy Control panel MCM' cannot load [4802]
tester stopped because OnInit critical error
   5 kb of log files
   there are no trading operations


4 errors

У меня все работает, выложил на проверку на чемп. вот такие дела:(
я так понял шпион не запустился, в чем может быть причина? там обязательно mq5 выкладывать, или ex5 достаточно?

 
Olegts:


특히 모든 것이 작동하는 경우 로그와 코드 없이는 표시기를 만들 수 없는 이유를 이해하기 어렵습니다. 스파이 경로가 잘못되었거나 이와 유사한 경로가 있는지 다시 확인하세요.
 
Olegts:


표시기의 이름을 확인하십시오 - 공백이 있는 "스파이 제어판 MCM"을 로드하고 밑줄이 있는 "스파이_제어판_mcm"을 업로드하려고 시도합니다.

 
Lizar:
특히 모든 것이 작동하는 경우 로그와 코드 없이는 표시기를 만들 수 없는 이유를 이해하기 어렵습니다. 스파이 경로가 잘못되었거나 이와 유사한 경로를 다시 확인하십시오.
도움 주셔서 감사합니다, Renat가 맞습니다. mql5.com 서버에 업로드하는 과정에서 파일에 공백 대신 밑줄이 생겼고 이름에서 공백을 제거하고 OnTick (문자열 기호).mqh에서 이름을 수정하고 확인을 위해 전송하고 결과를 기다리는 중입니다....
 
Olegts:
도움 주셔서 감사합니다, Renat가 맞습니다. 서버에 업로드하는 동안 파일에 공백 대신 밑줄이 생겼습니다. 이름에서 공백을 제거하고 OnTick (문자열 기호).mqh에서 이름을 수정하고 확인을 위해 전송하고 결과를 기다리고 있습니다.....
알겠습니다.
 
Lizar:
알겠습니다.
오류가 없습니다! 다중 통화 모드에 대해 대단히 감사합니다. OnTimer()로 어려움을 겪고 있었기 때문입니다. 공백 문제가 제 오페라나 서버 중 어디에서 발생했는지는 모르겠지만 Renat의 눈썰미가 뛰어나서 그 차이를 찾아냈어요!
 
Olegts:
오류가 없습니다! 다중 통화 모드에 대해 대단히 감사합니다. OnTimer()로 어려움을 겪고 있었기 때문입니다. 공백 문제가 제 오페라나 서버 중 어디에서 발생했는지 모르겠지만 Renat의 뛰어난 안목으로 그 차이를 찾아냈어요!
천만에요. 저도 이 작업 방식이 마음에 듭니다.
 
Lizar:
천만에요. 저도 이 작업 방식이 마음에 들어요.
콘스탄틴 안녕하세요. 여유 시간이 있으시면 이 스레드 - 다중 통화 전문가 어드바이저 테스트 결과 스레드를 방문해 보세요. 여러분의 의견은 매우 유용할 것입니다. 수고해 주셔서 감사합니다.
 
tol64:
콘스탄틴 안녕하세요. 시간 여유가 있으시면 이 주제 - 다중 통화 전문가 어드바이저 테스트 결과를 참조해 주세요. 귀하의 의견은 매우 유용할 것입니다. 수고해 주셔서 감사합니다.
네, 알겠습니다. 살펴볼게요.
 

기사의 코드가 오래되었습니다. 풍차와 싸우느라 반나절을 허비했습니다. 특히:

void EventCustom(ENUM_CHART_EVENT_SYMBOL event,double price)
  {
   if(!testing) EventChartCustom(chart_id,custom_event_id,(long)event,price,_Symbol);
   else
     {
      if(GlobalVariableSet(_Symbol+"_custom_id",custom_event_id)==0) return;
      if(GlobalVariableSet(_Symbol+"_event",event)==0) return;
      if(GlobalVariableSet(_Symbol+"_price",price)==0) return;
      GlobalVariableSet(_Symbol+"_flag",2);
     }
   return;
  }



void OnTick()
  {
   if(_testing_)
     {
      for(int i=0;i<_symbols_total_;i++)
        {
         string __symbol__=_symbol_[i];
         if(MathAbs(GlobalVariableGet(__symbol__+"_flag")-2)<0.1)
           {
            GlobalVariableSet(__symbol__+"_flag",1);
            OnTick(__symbol__);
           }
        }   
     }   
  }



전역 변수를 사용한 이 모든 "샤머니즘"은 불필요합니다. OnCalculate는 테스터 내부에서 완벽하게 잘 호출됩니다.