Erreurs, bugs, questions - page 1204

 
marketeer:
En général, la poursuite des recherches a donné ces résultats. Lorsque vous placez le curseur de la souris sur les tickers dans la revue de marché, l'info-bulle apparaît, dans laquelle Trade : No. Mais pour les CFD russes, qui sont affichés en noir, Trade : Close est affiché (une fois de plus, il faut noter que le temps est au trade et que les ticks du symbole arrivent à ce moment). J'en conclus que le courtier dispose de plusieurs niveaux de transactions interdites, dont certains seulement (voire un seul) sont marqués en gris, et tous les autres sont empilés dans une pile commune avec les symboles actifs, car ils sont affichés en noir.

Fermer uniquement dans le type de transaction signifie autoriser uniquement la fermeture des positions existantes. Il est donc représenté en noir actif.

Les modes de fonctionnement sont configurés sur le serveur de trading.

 
Renat:

Fermer uniquement dans le type de transaction signifie autoriser uniquement la fermeture des positions existantes. C'est pourquoi il est représenté actif en noir.

Les modes de fonctionnement sont configurés sur le serveur commercial.

Il ne dit pas "Fermer seulement", mais "Fermer". S'agit-il d'une erreur ou d'autres nuances restent-elles obscures ?
 
marketeer:
Il ne dit pas "Fermer seulement", mais "Fermer". S'agit-il d'une erreur ou y a-t-il d'autres nuances qui restent obscures ?
Fermer ici signifie Fermer seulement. Il s'écrit simplement court.
 
class object_line : public CObject
{
public:
   static color line_color_befor;
};
static extern color object_line::line_color_befor = clrGreen;

void OnChartEvent(const int id,                            
                  const long& lparam,   
                  const double& dparam, 
                  const string& sparam){
   if (id == CHARTEVENT_OBJECT_CREATE)   
      Alert(object_line::line_color_befor);   
} 

1. Compilé par

2. Lorsqu'un objet est créé, l'alerte est clrBlack.

3. Vérifié sur 4. 670 build

 
A100:

Rien n'est imprimé

Pourquoi pas ?

Merci pour le message.
Vous ne pouvez pas utiliser les macros __FUNCTION__ et __FUNCSIG__ en dehors du corps d'une fonction.

Ajout d'une nouvelle erreur de compilation : 377 "macro cannot appear outside of a function body".
 
ALXIMIKS:

1. Compilé par

2. Lorsqu'un objet est créé, l'alerte est clrBlack.

3. Vérifié sur 4. 670 build

Merci pour le message. Erreur dans le compilateur corrigée, votre code sera compilé avec une erreur :
'line_color_befor' - redefinition; different type modifiers
Utilisez le code suivant pour contourner cette erreur :
#include <object.mqh>

class object_line : public CObject
{
public:
   static color line_color_befor;
};

color input line_color_param=clrGreen;//object_line::line_color_befor

static color object_line::line_color_befor = line_color_param;

void OnChartEvent(const int id,                            
                  const long& lparam,   
                  const double& dparam, 
                  const string& sparam){
   if (id == CHARTEVENT_OBJECT_CREATE)   
      Alert(object_line::line_color_befor);   
} 
 
A100:

Erreur pendant l'exécution : casting incorrect des pointeurs (build 977, mais ça arrivait de temps en temps avant)

Si vous déplacez quelque chose (par exemple, échanger les déclarations #import) ou créer 2 fichiers au lieu de 3 ou supprimer l'appel h() - alors au lieu des erreurs spécifiées, d'autres erreurs se produisent

Si vous recomposez le code ci-dessus, il finira par appeler R::y au lieu de L::y

Dans une version plus complexe, certaines fonctions courantes des modules sont appelées avant ( !) les constructeurs statiques eux-mêmes (comme si dans l'exemple ci-dessus f() était appelé avant X::X, qui à son tour est correctement appelé avant OnStart). Je vais essayer de citer un exemple, mais les fichiers sont énormes. Mais parfois cela fonctionne correctement, donc l'erreur ne vient pas de moi car l'ordre de création des objets est défini par le compilateur lui-même et je ne peux pas le changer.

Merci pour le post Il y a un problème, il est en cours d'investigation.

UPD: Corrigé.
 
mql5:
Merci pour le message Il y a un problème, nous sommes en train de le résoudre.

UPD: Corrigé.

J'ai fait une erreur là https://www.mql5.com/ru/forum/1111/page1221#comment_1070267, je n'ai pas spécifié que les fonctions sont virtuelles - si maintenant je déclare R et L ainsi :

class R { public:
        virtual void y( A* a ) const { PF       ((B *)a).g( 1 ); }
};
class L : public R { public:
        virtual void y( A* a )       { PF       ((B *)a).g( 2 ); }
};
alors L::y est appelé et R::y devrait être appelé car ils sont différents - (différents par const et le pointeur était sur R)
 

Tous les terminaux des courtiers ont cessé de fonctionner, y compris celui que j'ai téléchargé sur ce site...

Le redémarrage n'aide pas, le redémarrage et la réinstallation aussi, tout fonctionnait bien avant, je n'ai rien installé sur mon ordinateur, je n'ai rien installé sur le terminal non plus. seulement des achats sur le marché.

 
ozhiganov:

Tous les terminaux des courtiers ont cessé de fonctionner, y compris celui que j'ai téléchargé sur ce site...

Le redémarrage n'aide pas, le redémarrage et la réinstallation aussi, tout fonctionnait bien avant, je n'ai rien installé sur mon ordinateur, je n'ai rien installé sur le terminal non plus. seulement des achats sur le marché.

Démontez les indicateurs et les EAs en cours d'exécution pièce par pièce pour voir quel est le problème.

Cliquez sur "Détails" dans la fenêtre de description de l'erreur pour connaître les détails. Copiez le texte complet ici s'il vous plaît.

Raison: