Experts: Gestionnaire d'événements multidevises OnTick(string symbol) - page 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:


Il est difficile de comprendre sans le journal et le code pourquoi l'indicateur ne peut pas être créé, surtout si tout fonctionne. Vérifiez le chemin d'accès à l'espion, peut-être que le chemin d'accès à l'espion est erroné ou quelque chose de similaire.
 
Olegts:


Vérifiez le nom de l'indicateur - il essaie de charger "Spy Control panel MCM" avec des espaces, et télécharge "spy_control_panel_mcm" avec des underscores.

 
Lizar:
Il est difficile de comprendre sans le journal et le code pourquoi l'indicateur ne peut pas être créé, surtout si tout fonctionne. Il faut vérifier le chemin d'accès à l'espion, peut-être que le chemin d'accès à l'espion est erroné ou quelque chose comme ça.
Merci pour votre aide, Renat a raison, pendant le processus de téléchargement vers le serveur mql5.com le fichier a reçu des underscores au lieu d'espaces, j'ai supprimé les espaces dans le nom, corrigé le nom dans OnTick(string symbol).mqh, envoyé pour vérification, j'attends le résultat....
 
Olegts:
Merci pour votre aide, Renat a raison, lors du téléchargement sur le serveur mql5.com, le fichier contenait des underscores au lieu d'espaces, j'ai supprimé les espaces dans le nom, dans OnTick(string symbol).mqh j'ai corrigé le nom, je l'ai envoyé pour vérification, j'attends le résultat....
Je l'ai obtenu.
 
Lizar:
Je l'ai obtenu.
Pas d'erreur ! Merci beaucoup pour le mode multidevise, car j'avais du mal avec OnTimer(). Je ne sais pas où le problème des espaces est apparu, soit dans mon Opera, soit sur le serveur, mais Renat a un excellent œil - il a trouvé la différence !
 
Olegts:
Pas d'erreur ! Merci beaucoup pour le mode multidevise, car je me débattais avec OnTimer(). Je ne sais pas où le problème des espaces est apparu, soit dans mon Opera, soit sur le serveur, mais Renat a un excellent œil - il a trouvé la différence !
Il n'y a pas de quoi. J'aime aussi ce schéma de travail.
 
Lizar:
Il n'y a pas de quoi. J'aime aussi ce schéma de travail.
Konstantin, bonjour. Si vous avez un peu de temps libre, je vous invite à consulter ce fil de discussion - Résultats des tests des conseillers experts multidevises. Votre avis serait très utile. Merci pour votre travail.
 
tol64:
Konstantin, bonjour. Si vous avez un peu de temps libre, veuillez consulter ce sujet - Résultats des tests des conseillers experts multidevises. Votre avis serait très utile. Merci pour votre travail.
Je vous remercie pour votre travail. Je vais jeter un coup d'œil.
 

Le code de l'article n'est plus à jour. J'ai perdu une demi-journée à me battre contre des moulins à vent. En particulier :

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



tout ce "chamanisme" avec les variables globales est inutile. OnCalculate est parfaitement appelé dans le testeur.