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; // массив с объектами, каждый объект содержит структуру с полями ордеров и его idclass CID : public CObject
{
public: int id;
CID() {}
CID(CID* pt) {this = pt;}
};
voidOnStart()
{
// -----------------------------------------------------------------
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(); // размер = 0int sizePrev = ArrPrev.Total(); // размер = 1ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0)); // POINTER_INVALIDENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0)); // POINTER_DINAMYCPrint(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));
ArrPrev.Clear(); // чистим массив
}
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.
(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é.
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.
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.
ChartScreenShot ne fonctionne pas correctement en mode testeur visuel.
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 ?
Même le fait de le retirer du tableau est problématique.
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.
(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é.
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.
https://www.mql5.com/ru/forum/368597
Résultat : 2
Résultat attendu : 0