Erreurs, bugs, questions - page 1549

 

Les gars ! Quel pourrait être le problème ? J'ai passé une commande

m_trade.SellLimit(1,Ask+40,_Symbol,0,0,ORDER_TIME_GTC,0,")

C'est en cours. Et... au même rythme qu'il est supprimé. Il n'y a qu'une seule ligne (déjà) dans l'EA ! Celui-là ! C'est-à-dire que ce n'est pas mon EA qui supprime l'ordre. Quel est le problème ?

 
Karputov Vladimir:
Tu ne peux pas. En particulier, vous ne pouvez pas essayer d'éditer le code lui-même (le texte du programme) à partir d'un autre programme.

Peut porter EX5 comme un tableau dans le code. Créez un fichier EX5 dans un bac à sable et connectez-le comme ressource.

Mais pourquoi un tel tracas, alors qu'il serait plus logique de faire la même chose, si vous pouviez connecter la ressource MQ5 en une seule fois.

 
comp:

Peut porter EX5 comme un tableau dans le code. Créez un fichier EX5 dans un bac à sable et connectez-le comme ressource.

Pourquoi un tel gâchis, alors qu'il serait plus logique de faire la même chose, si on pouvait connecter les ressources MQ5 en une seule fois.

Prenez les règles existantes pour acquises, au lieu d'exiger la mise en œuvre de vos propres désirs.
 
Karputov Vladimir:
Prenez les règles existantes pour acquises, au lieu d'exiger la mise en œuvre de vos propres désirs.
Où voyez-vous des demandes ? !
 

comp:

s'il était possible de connecter la ressource MQ5 en une seule fois.

et quel est l'objectif en dehors de l'intérêt académique ?
 
o_O:
Et quel est l'objectif en dehors de l'intérêt académique ?

En fait, les développeurs ont fait une interdiction à ce sujet.

comp :

Je peux porter EX5 comme un tableau dans mon code. Créez un fichier EX5 dans un bac à sable et branchez-le en tant que ressource.

Mais ce n'est pas la question, bien sûr. Je voudrais faire un IsChanged() universel et le connecter via #include.

Je ne veux pas trimballer l'indicateur de parallélisme EX5-file avec moi. Je ne sais pas quel genre de choses on peut y mettre. Si MQ5 est une source ouverte, il a une autre attitude.

 
Si le message "l'indicateur est trop lent" n'apparaît jamais dans le journal pendant l'exécution de l'indicateur, peut-on dire que l'indicateur ne s'est pas figé ?
 
comp:
Si "l'indicateur est trop lent" n'est jamais apparu dans le journal pendant l'exécution de l'indicateur, pouvons-nous confirmer que l'indicateur ne se bloque pas ?

Personne ne peut donner une garantie à 100% :) Si l'indicateur dans la file d'attente des messages place au moins quelque chose, il est logique de le tester sur le marché rapide.

Ajouté. Si l'indicateur place au moins quelque chose dans la file d'attente des messages, alors, en plus des tests sur le marché rapide, il est logique d'exécuter plusieurs indicateurs dans le terminal.

 
Karputov Vladimir:

Personne ne peut donner une garantie à 100% :) Si l'indicateur dans la file d'attente des messages place au moins quelque chose, il est logique de le tester sur le marché rapide.

Ajouté. Si l'indicateur place au moins quelque chose dans la file d'attente des messages, alors, en plus des tests sur le marché rapide, il est logique d'exécuter plusieurs indicateurs dans le terminal.

Le marché rapide peut être émulé par un appel de FullOnCalculate()

#define  TIMESERIES(X)                                                  \
   ::ArraySetAsSeries(X, TRUE);                                        \
   Size = ::MathMin(Copy##X(::Symbol(), ::Period(), 0, bars, X), Size);  

int FullOnCalculate( const int Prev_Calculated = 0 )
{
  int Spread[];
  long RealVolume[];
  
  int Size = INT_MAX;
  
  #ifdef __MQL4__
    const int bars = ::Bars;
  #endif

  #ifdef __MQL5__
    const int bars = ::Bars(::Symbol(), ::Period());
  #endif

   TIMESERIES(Spread)
  TIMESERIES(RealVolume)
  
  #ifdef __MQL4__
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, Volume, Spread));
  #endif
  
  #ifdef __MQL5__
    datetime Time[];
    double Open[];
    double High[];
    double Low[];
    double Close[];
    long TickVolume[];

    TIMESERIES(Time)
    TIMESERIES(Open)
    TIMESERIES(High)
    TIMESERIES(Low)
    TIMESERIES(Close)
    TIMESERIES(TickVolume)
  
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, TickVolume, Spread));
  #endif
}

le modèle d'événement - de la même manière. La question portait sur autre chose.

comp:
Si pendant l'exécution d'un indicateur il n'y avait pas de "indicateur est trop lent" dans son log, pouvons-nous conclure que l'indicateur n'a pas gelé?

Le passé dans le cadre de l'enseignement de la langue russe.

 

Il existe des logiques complexes qui fonctionnent pendant vingt-quatre heures, mais qui, à un moment donné, se figent. Cela se produit parfois dans EX5, dont le code source ne peut être édité. Est-il possible de déterminer de l'extérieur qu'un indicateur ou un Expert Advisor se bloque ? Collecter des statistiques sur la partie calculée d'un indicateur particulier ?

Avec les indicateurs, il semble possible, parce qu'ils sont dans un état suspendu, qu'ils tuent la mise à jour des graphiques sur leur symbole. Le conseiller expert peut le tracer, mais sans préciser quel indicateur a provoqué le survol.

Raison: