Vasiliy Pushkaryov: E come si possono copiare i dati? Beh, a parte elemento per elemento?
Non so se è giusto, ma il costruttore aggiuntivo ha risolto il problema. Può essere utile a qualcuno.
#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(); // чистим массив
}
Buona sera ho una domanda del genere? Installato agent manager per la vendita ma la colonna cloud dice disabilitato e tutto il giorno su sei processori non un solo movimento. I processori appaiono nel conto. È normale?
In precedenza, Debug non era completamente utilizzabile, ma l'esecuzione di script con F5 è a volte utile (anche se non è chiaro perché viene eseguito su un nuovo grafico e non su quello corrente).
E ho trovato per caso tali registrazioni nel registro:
Allo stesso tempo, lo script stesso è in esecuzione. Ho provato a inserire la seguente linea nel codice:
{ DebugBreak(); Print( "DebugBreak" ); }
La linea "DebugBreak" viene stampata ma non viene fermata.
(anche se non è chiaro perché funziona sul nuovo grafico e non su quello attuale).
Nell'editor Service->Settings->Debugging/Profiling potete impostare quale simbolo sarà usato per il debug, ma verrà comunque eseguito su un grafico separato. Se non viene specificato alcun simbolo, verrà eseguito sul primo simbolo (in alto) di Market Watch.
Ho dei punti di rottura in ogni momento. Ho impostato i punti alla build 2875 , clicco per iniziare il debug sui dati reali, e si muove a scatti senza fermarsi, avendo finito il debug. Riavvio il terminale con l'editor, e poi inizia a vedere i breakpoint, fino a qualche altro start/stop del debug, poi inizia a saltare di nuovo. Eseguendo il debugging su dati storici, chiama una finestra del tester a tutti, e salta i breakpoint appena finisce il debugging. Non si è mai fermato a un breakpoint sui dati storici, salta tutto il tempocompletando il debug. Ma perché il tester viene chiamato su dati storici e i parametri salvati vengono presi da questi, non so cosa sia, è progettato così o è una stortura.
Nell'editor Service->Settings->Debugging/Profiling potete impostare quale simbolo sarà usato per il debug, ma verrà comunque eseguito su un grafico separato. Se il simbolo non è specificato lì, verrà eseguito sul primo simbolo (in alto) da Market Watch.
Per me questo è estremamente scomodo. Il grafico attuale ha indicatori, oggetti grafici con cui il programma deve interagire, impostazioni, ecc. Viene avviato un nuovo grafico "vuoto". Inoltre, il programma in modalità normale (non debug) viene lanciato dal Navigatore sulla carta corrente, non su quella nuova - questa è un'incongruenza evidente
Lì il puntatore copia
E come si possono copiare i dati? Beh, a parte elemento per elemento?
Non so se è giusto, ma il costruttore aggiuntivo ha risolto il problema. Può essere utile a qualcuno.
ChartScreenShot non funziona correttamente in modalità tester visivo.
Salve, cari sviluppatori. Posso chiedere quando ChartScreenShot() funzionerà nel tester?
Puoi dirmi come cambiare i parametri di input (F7) o cambiare il valore della variabile globale (F3) in questo tipo di EA?
Anche toglierlo dal grafico è problematico.
In precedenza, Debug non era completamente utilizzabile, ma l'esecuzione di script con F5 è a volte utile (anche se non è chiaro perché viene eseguito su un nuovo grafico e non su quello corrente).
E ho trovato per caso tali registrazioni nel registro:
Allo stesso tempo, lo script stesso è in esecuzione. Ho provato a inserire la seguente linea nel codice:
{ DebugBreak(); Print( "DebugBreak" ); }La linea "DebugBreak" viene stampata ma non viene fermata.
(anche se non è chiaro perché funziona sul nuovo grafico e non su quello attuale).
Nell'editor Service->Settings->Debugging/Profiling
potete impostare quale simbolo sarà usato per il debug, ma verrà comunque eseguito su un grafico separato.
Se non viene specificato alcun simbolo, verrà eseguito sul primo simbolo (in alto) di Market Watch.
Ho dei punti di rottura in ogni momento. Ho impostato i punti alla build 2875
, clicco per iniziare il debug sui dati reali, e si muove a scatti senza fermarsi, avendo finito il debug.
Riavvio il terminale con l'editor, e poi inizia a vedere i breakpoint, fino a qualche altro start/stop del debug, poi inizia a saltare di nuovo.
Eseguendo il debugging su dati storici, chiama una finestra del tester a tutti, e salta i breakpoint appena finisce il debugging.
Non si è mai fermato a un breakpoint sui dati storici, salta tutto il tempocompletando il debug.
Ma perché il tester viene chiamato su dati storici e i parametri salvati vengono presi da questi, non so cosa sia, è progettato così o è una stortura.
Nell'editor Service->Settings->Debugging/Profiling
potete impostare quale simbolo sarà usato per il debug, ma verrà comunque eseguito su un grafico separato.
Se il simbolo non è specificato lì, verrà eseguito sul primo simbolo (in alto) da Market Watch.
Per me questo è estremamente scomodo. Il grafico attuale ha indicatori, oggetti grafici con cui il programma deve interagire, impostazioni, ecc. Viene avviato un nuovo grafico "vuoto". Inoltre, il programma in modalità normale (non debug) viene lanciato dal Navigatore sulla carta corrente, non su quella nuova - questa è un'incongruenza evidente
https://www.mql5.com/ru/forum/368597
Risultato: 2
Risultato atteso: 0