Expert Advisors: Multicurrency Event-Handler OnTick(string symbol) - Seite 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:


Ohne Log und Code ist es schwer zu verstehen, warum der Indikator nicht erstellt werden kann, vor allem, wenn alles funktioniert. Überprüfen Sie den Pfad zum Spion, vielleicht ist der Pfad zum Spion falsch oder etwas Ähnliches.
 
Olegts:


Überprüfen Sie den Namen des Indikators - er versucht, "Spy Control Panel MCM" mit Leerzeichen zu laden, und lud "spy_control_panel_mcm" mit Unterstrichen.

 
Lizar:
Ohne Protokoll und Code ist es schwer zu verstehen, warum der Indikator nicht erstellt werden kann, vor allem, wenn alles funktioniert. Überprüfen Sie den Pfad zum Spion, vielleicht ist der Pfad zum Spion falsch oder etwas Ähnliches.
Danke für deine Hilfe, Renat hat Recht, während des Hochladens auf den mql5.com Server hat die Datei Unterstriche statt Leerzeichen bekommen, ich habe die Leerzeichen im Namen entfernt, den Namen in OnTick(string symbol).mqh korrigiert, sie zur Überprüfung geschickt und warte auf das Ergebnis....
 
Olegts:
Danke für eure Hilfe, Renat hat recht, beim Hochladen auf den Server mql5.com hat die Datei Unterstriche statt Leerzeichen bekommen, ich habe die Leerzeichen im Namen entfernt, in OnTick(string symbol).mqh habe ich den Namen korrigiert, habe sie zur Überprüfung geschickt und warte auf das Ergebnis....
Ich habe es.
 
Lizar:
Ich hab's.
Keine Fehler! Vielen Dank für den Multicurrency-Modus, denn ich hatte mit OnTimer() zu kämpfen. Ich weiß nicht, wo das Problem mit den Leerzeichen auftrat, entweder in meinem Opera oder auf dem Server, aber Renat hat ein ausgezeichnetes Auge - er hat den Unterschied gefunden!
 
Olegts:
Keine Fehler! Vielen Dank für den Multicurrency-Modus, denn ich hatte mit OnTimer() zu kämpfen. Ich weiß nicht, wo das Problem mit den Leerzeichen auftrat, entweder in meinem Opera oder auf dem Server, aber Renat hat ein ausgezeichnetes Auge - er hat den Unterschied gefunden!
Gern geschehen. Ich mag dieses Schema auch.
 
Lizar:
Gern geschehen. Ich mag dieses Schema der Arbeit auch.
Konstantin, hallo. Wenn Sie etwas Zeit haben, besuchen Sie bitte diesen Thread - Ergebnisse des Tests von Multicurrency Expert Advisors. Ihr Wort wäre sehr nützlich. Ich danke Ihnen für Ihre Arbeit.
 
tol64:
Konstantin, hallo. Wenn Sie etwas Zeit haben, besuchen Sie bitte dieses Thema - Ergebnisse des Tests von Multicurrency Expert Advisors. Ihr Wort wäre sehr nützlich. Vielen Dank für Ihre Arbeit.
Danke. Ich werde einen Blick darauf werfen.
 

Der Code aus dem Artikel ist nicht mehr aktuell. Ich habe einen halben Tag mit dem Kampf gegen Windmühlen verloren. Vor allem:

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__);
           }
        }   
     }   
  }



Dieser ganze "Schamanismus" mit globalen Variablen ist unnötig. OnCalculate ist perfekt gut innerhalb des Testers aufgerufen.