Erreurs, bugs, questions - page 3006

 
Vasiliy Pushkaryov:
Et comment pouvez-vous copier les données ? Eh bien, à part élément par élément ?

Je ne sais pas si c'est correct, mais le constructeur supplémentaire a résolu le problème. Cela peut s'avérer utile pour quelqu'un d'autre.

#include <Arrays\ArrayObj.mqh>

CArrayObj ArrCur;       // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev;  // массив с объектами, каждый объект содержит структуру с полями ордеров и его id

class CID : public CObject
{
  public:  int id;
           CID() {}
           CID(CID* pt) {this = pt;}
           
};


void OnStart()
{
  // -----------------------------------------------------------------
    CID* pCur = new CID;          // создаем объект для текущих параметров
    pCur.id = 25;                 // вносим текущие данные
    ArrCur.Add(pCur);             // помещаем в массив объектов
    
    CID* pTemp = ArrCur.At(0);    // вытягиваем объект по указателю
    CID* pPrev = new CID(pTemp);  // в дин.объект копируем в конструкторе данные с предыд.указателя
    ArrPrev.Add(pPrev);           // помещаем в массив объектов
    
    ArrCur.Clear();               // чистим текущий массив
  // -----------------------------------------------------------------
  
   // --- для вывода в журнал
  int sizeCur = ArrCur.Total();       // размер = 0
  int sizePrev = ArrPrev.Total();     // размер = 1
  
  ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0));    // POINTER_INVALID
  ENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0));  // POINTER_DINAMYC
  
  Print(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
  Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));

  ArrPrev.Clear();             // чистим массив
}
 
fxsaber:

ChartScreenShot ne fonctionne pas correctement en mode testeur visuel.

void OnTick()
{
  Print(ChartScreenShot(0, "Test.png", 100, 100)); // true, но файл нулевой длины
  
  ExpertRemove();
}

Bonjour, chers développeurs. Puis-je demander quand ChartScreenShot() fonctionnera dans le testeur ?

 

Pouvez-vous me dire comment modifier les paramètres d'entrée (F7) ou la valeur de la variable globale (F3) dans ce type d'EA ?

input int i = 0;

const bool Init = EventSetTimer(1);

void OnTimer()
{
  Alert("");
}

Même le fait de le retirer du tableau est problématique.

 
Bonsoir, j'ai une question ? J'ai installé l'agent manager for sale mais la colonne cloud dit désactivé et toute la journée sur six processeurs pas un seul mouvement. Les processeurs apparaissent sur le compte. Est-ce normal ?
 

Auparavant, Debug n'était pas entièrement utilisable, mais l'exécution de scripts avec F5 est parfois pratique (bien que l'on ne sache pas pourquoi elle s'exécute sur un nouveau graphique et non sur le graphique actuel).

Et j'ai accidentellement trouvé de tels enregistrements dans le journal :

En même temps, le script lui-même est en cours d'exécution. J'ai essayé d'insérer la ligne suivante dans le code :

{ DebugBreak(); Print( "DebugBreak" ); }

La ligne "DebugBreak" est imprimée mais elle n'est pas arrêtée.

 
A100:

(bien qu'il ne soit pas clair pourquoi il fonctionne sur le nouveau graphique et non sur l'actuel).

Dans l'éditeur Service->Paramètres->Débogage/Profilage
vous pouvez définir quel symbole sera utilisé pour le débogage, mais il sera toujours exécuté sur un graphique séparé.
Si aucun symbole n'est spécifié à cet endroit, il sera exécuté sur le tout premier symbole (en haut) de Market Watch.

J'ai des points d'arrêt à tout moment. J'ai fixé les points à la construction 2875
, j'ai lancé le débogage sur des données réelles, et il est passé sans s'arrêter, terminant le débogage.
Je redémarre le terminal avec l'éditeur, et alors il commence à voir les points d'arrêt, jusqu'à ce qu'un autre débogage démarre/arrête, puis il recommence à sauter.
En exécutant le débogage sur des données historiques, il n'appelle aucune fenêtre de test, et saute les points d'arrêt juste au moment où il termine le débogage.
Il ne s'est jamais arrêté à un point d'arrêt sur les données historiques, il saute tout le tempsen terminant le débogage.
Mais
pourquoi le testeur est appelé sur des données historiques et que les paramètres sauvegardés en sont extraits, je ne sais pas ce que c'est, est-ce conçu de cette façon ou est-ce une malhonnêteté.

 
Roman:

Dans l'éditeur Service->Paramètres->Débogage/Profilage
, vous pouvez définir le symbole qui sera utilisé pour le débogage, mais il sera toujours exécuté sur un graphique séparé.
Si le symbole n'est pas spécifié ici, il sera exécuté sur le tout premier symbole (en haut) de Market Watch.

À mon avis, c'est extrêmement gênant. Le graphique actuel comporte des indicateurs, des objets graphiques avec lesquels le programme est censé interagir, des paramètres, etc. Un nouveau graphique "vide" est lancé. De plus, le programme en mode normal (pas de débogage) est lancé à partir du Navigateur sur la carte actuelle, et non sur la nouvelle - c'est une incohérence évidente.

 
La visualisation est également un peu confuse
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
Erreur d'exécution (ordre de substitution incorrect)
#define  MACRO( X )
void OnStart()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
        Print( __COUNTER__ );
}

Résultat : 2

Résultat attendu : 0

 
Une question s'est posée : comment savoir si un graphique est en surbrillance et visible ?
Raison: