Erreurs, bugs, questions - page 2148

 
Nexxtor:

Aidez les auteurs, ou le langage MQL5, selon les mains de qui sont hors de ***, vous êtes si ennuyeux !!!

IndicatorCreate() dit :

paramètres_cnt

[in] Nombre de paramètres passés dans le tableau parameters_array[]. Les éléments du tableau ont un type spécial de structureMqlParam. La valeur par défaut est zéro - les paramètres ne sont pas passés. Si un nombre non nul de paramètres est spécifié, le paramètreparameters_array est obligatoire. Vous pouvez passer jusqu'à 256 paramètres.


Dites-moi, l'avez-vous personnellement vérifié ? Que l'indicateur avec 256 paramètres sera appelé ???


Réparez-le ! !!

Ça ne fonctionne pas ? Montre-moi le code qui ne fonctionne pas.

Et s'il vous plaît, moins d'émotions et plus de travail.

 
fxsaber:

Ce n'est pas vrai. Et plus important encore, ça ne pourrait même pas être vrai.

Exécutez cet indicateur manuellement sur deux graphiques identiques

Si les parties calculées étaient les mêmes, il n'y aurait pas d'impression différente.

Une conclusion très difficile pour moi.

Pourquoi les indicateurs devraient-ils voir le même graphique ? Parce qu'un algorithme d'indicateur peut être construit sur la base deChartID???

 
fxsaber:

Les EA sur OBJ_CHART ne fonctionnent certainement pas (ou plutôt, ne fonctionnent pas). Ainsi, par minuterie, il semble être OK. Peut-être que tous les événements ne fonctionnent pas là.

Les Expert Advisors sur OBJ_CHART démarrent et fonctionnent bien. Ils gèrent uniquement OnChartEvent (personnalisé) et peuvent générer leurs événements personnalisés pour d'autres graphiques.

 
Andrey Khatimlianskii:

Pourquoi les indicateurs devraient-ils voir le même graphique ?

Les indicateurs iCustom ne disposent pas de leur propre graphique. Même lorsqu'il est ajouté à un certain tableau.

Parce qu'un algorithme d'indicateur peut être construit sur la base de ChartID ???

Oui, les fonctions graphiques et les événements appliqués à leur graphique (indicateurs manuels/modèles) peuvent être utilisés pour toute action.

 

Erreur dans la documentation

ChartNavigate

Déplace le graphique spécifié du nombre de barres spécifié par rapport à la position du graphique spécifiée.

bool  ChartNavigate(
   long  chart_id,     // идентификатор графика
   int   position,     // позиция
   int   shift=0       // значение сдвига
   );

Paramètres

identifiant du graphique

[ID de la carte. 0 signifie le graphique actuel.

position

[Position du graphique par rapport à laquelle le graphique sera déplacé. La valeur peut être l'une des valeurs de l'enumENUM_CHART_POSITION.

 
Andrey Barinov:

Les conseillers experts sur OBJ_CHART s'exécutent et fonctionnent bien. Ils gèrent uniquement OnChartEvent (personnalisé) et peuvent générer leurs propres événements personnalisés pour d'autres graphiques.

Vérifié. Test d'expertise.mq5

class CUSTOM
{
public:  
  CUSTOM()
  {
    Print(__FUNCSIG__);
    
    Print(EventSetTimer(1) && EventChartCustom(0, 0, 0, 0, NULL) &&
          MarketBookAdd(_Symbol) && 
          ChartSetInteger(0, CHART_EVENT_MOUSE_WHEEL, true) &&
          ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, true) &&
          ChartSetInteger(0, CHART_EVENT_OBJECT_CREATE, true) &&
          ChartSetInteger(0, CHART_EVENT_OBJECT_DELETE, true) &&
          ChartNavigate(0, CHART_BEGIN, 100) &&
          ObjectCreate(0, __FILE__, OBJ_VLINE, 0, 0, 0) &&
          ObjectDelete(0, __FILE__));
    
  }
  ~CUSTOM() { Print(__FUNCSIG__); }
};

const CUSTOM InitDeinit;

void OnTick() { Print(__FUNCSIG__); }
void OnInit() { Print(__FUNCSIG__); }
void OnDeinit( const int ) { Print(__FUNCSIG__); }
void OnChartEvent( const int id, const long&, const double&, const string& ) { Print(__FUNCSIG__ + " " + (string)id) ; }
void OnTimer() { Print(__FUNCSIG__); }
void OnBookEvent( const string& ) { Print(__FUNCSIG__); }


Script

#include <fxsaber\Expert.mqh>  // https://www.mql5.com/ru/code/19003

void OnStart()
{
  if (ObjectCreate(0, __FILE__, OBJ_CHART, 0, 0, 0))
  {
    MqlParam Params[1];
    Params[0].string_value = "Experts\\Test.ex5";

    Print(EXPERT::Run(ObjectGetInteger(0, __FILE__, OBJPROP_CHART_ID), Params));
  }
}


Résultat

Test3 (EURUSD,M1)       true
Test (EURUSD,M1)        void CUSTOM::CUSTOM()
Test (EURUSD,M1)        true
Test (EURUSD,M1)        void OnInit()
Test (EURUSD,M1)        void OnChartEvent(const int,const long&,const double&,const string&) 9
Test (EURUSD,M1)        void OnChartEvent(const int,const long&,const double&,const string&) 1000
Test (EURUSD,M1)        void OnChartEvent(const int,const long&,const double&,const string&) 9
Test (EURUSD,M1)        void OnChartEvent(const int,const long&,const double&,const string&) 9
Test (EURUSD,M1)        void OnChartEvent(const int,const long&,const double&,const string&) 9
Test (EURUSD,M1)        void OnDeinit(const int)
Test (EURUSD,M1)        void CUSTOM::~CUSTOM()


Conclusion sur les conseillers experts sur OBJ_CHART

  • Fonctionne sur OnInit, OnDeinit, constructeur/destructeur global, et OnChartEvent.
  • OnTimer, OnTick et OnBookEvent ne fonctionnent pas.
  • Seuls les événements CHARTEVENT_CHART_CHANGE et les événements personnalisés sont pris en compte.
  • Grâce à OnChartEvent+EventChartCustom, EA peut créer des "événements" pour OnTimer et OnTick, mais pas pour OnBookEvent.
 
Dans glucotrader 5, la propriété #tester_file ne fonctionne pas correctement lorsque FILE_COMMON est spécifié, le fichier ne s'ouvre pas sur l'agent.
 
Anton Ohmat:
Dans glucotrader 5, la #propriété tester_file ne fonctionne pas correctement lorsque FILE_COMMON est spécifié, le fichier n'est pas ouvert sur l'agent.

Eh bien, le fichier n'est pas pris dans le dossier commun (commun au terminal et aux agents locaux), mais dans Sandbox.

 
fxsaber:

Eh bien, pas depuis le dossier commun (commun au terminal et aux agents locaux), mais depuis Sandbox.

Je le teste sur mes serveurs distants - ça ne fonctionne pas. L'exécution est faite seulement si la machine locale dans le répertoire MT lie files, COMMON sur l'optimisation ne va pas


fichier_testant

chaîne de caractères

Nom de fichier pour le testeur, en précisant l'extension, entre guillemets (comme une chaîne constante). Le fichier spécifié sera transmis au testeur pour être travaillé. Les fichiers d'entrée pour les tests, s'ils sont nécessaires, doivent toujours être spécifiés.

 
Anton Ohmat:

Je fais des tests sur mes serveurs distants - ça ne fonctionne pas. Je l'ai testé sur mes serveurs distants, cela ne fonctionne pas, je ne peux l'exécuter que si j'ai des fichiers MT sur ma machine locale, COMMON n'est pas utilisé pour l'optimisation.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.

Bugs, bugs, questions

fxsaber, 2018.02.27 13:51

Pas dans le dossier commun (commun au terminal et aux agents locaux), mais dans le dossier Sandbox.

Il n'est pas nécessaire d'essayer de distribuer quoi que ce soit de commun aux agents. Distribuer à partir de Sandbox.

Raison: