Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Andiamo da Servicedesk.
Per favore, chiarisci come esattamente sono stati scollegati i servizi? Avete cancellato (congelato) i servizi? Si prega di allegare i log degli agenti problematici.
Le impostazioni proxy nei tuoi log sono un po' strane. Hai scritto le impostazioni del proxy nelle configurazioni del tuo agente? Allega il common.ini del tuo gestore.
A quanto pare ho guardato i registri di ieri...
Tutto è a posto.
Prossimo codice:
Uscite:
2011.12.05 22:01:28 RectLabel (EURUSD,H1) pos = {12, 176314750}
2011.12.05 22:01:28 RectLabel (EURUSD,H1) altro = {123, 456}
Quindi, la lista di inizializzazione non ha funzionato, c'è della spazzatura nella struttura. È un bug o no?
//| testDeinit.mq5 |
//| Copyright 2011, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
class CTest_Expert
{
public:
CTest_Expert();
~CTest_Expert() { Deinit(); }
void Processing();
void Deinit();
bool StartTimer(int nCounSeconds);
void StopTimer();
string Exp_Symbol;
};
CTest_Expert arSymbols[];
//+------------------------------------------------------------------+
//| Конструктор |
//+------------------------------------------------------------------+
CTest_Expert::CTest_Expert()
{
}
//+------------------------------------------------------------------+
//| Функция удаления динамических объектов |
//+------------------------------------------------------------------+
void CTest_Expert::Deinit()
{
Print("Эксперт выгружен с пары "+Exp_Symbol);
Comment("");
}
//+------------------------------------------------------------------+
//|Инициализация таймера |
//+------------------------------------------------------------------+
bool CTest_Expert::StartTimer(int nCountSeconds)
{
return(EventSetTimer(nCountSeconds));
}
//+------------------------------------------------------------------+
//|Уничтожение таймера |
//+------------------------------------------------------------------+
void CTest_Expert::StopTimer()
{
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ArrayResize(arSymbols, 5);
arSymbols[0].Exp_Symbol="0";
arSymbols[1].Exp_Symbol="1";
arSymbols[2].Exp_Symbol="2";
arSymbols[3].Exp_Symbol="3";
arSymbols[4].Exp_Symbol="4";
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
int nSize=ArraySize(arSymbols);
Print("nSize = " + IntegerToString(nSize));
for(int i=0;i<nSize;i++)
{
Print("-------"+IntegerToString(i)+"--------");
arSymbols[i].Deinit();
Print("---------------");
}
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
Risultato
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14:00:00
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14:02:00 PM testDeinit (EURUSD,M5) E.T.A. è stato scaricato dalla coppia 3
2011.12.06 16:59:52 testDeinit (EURUSD,M5) Scaricato dalla coppia 2
2011.12.06 16:59:52 testDeinit (EURUSD,M5) Scaricato dalla coppia 1
2011.12.06 16:59:52 testDeinit (EURUSD,M5) Ekspert scaricato dalla coppia 0
2011.12.06 16:59:52 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14
2011.12.06 16:59:52 testDeinit (EURUSD,M5) -------4--------
2011.12.06 16:59:52 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) L'esperto viene scaricato dalla coppia 3
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------3--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) L'esperto è stato scaricato dalla coppia 2
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------2--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) L'esperto viene scaricato dalla coppia 1
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------1--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) L'esperto viene scaricato dalla coppia 0
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------0--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) nSize = 5
Non riesco a capire la deinizializzazione. Perché il messaggio "Esperto scaricato dalla coppia ..." accade due volte?
CTest_Expert arSymbols[];
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
int nSize=ArraySize(arSymbols);
Print("nSize = " + IntegerToString(nSize));
for(int i=0;i<nSize;i++)
{
Print("-------"+IntegerToString(i)+"--------");
arSymbols[i].Deinit();
Print("---------------");
}
}
Questo è un bug del compilatore - non ha generato un errore che dice che una struttura non può essere inizializzata in questo modo (senza costruttore di copia). Fisso. Grazie per il post.
No. Altri dettagli sono venuti fuori qui.
In Help dice che le strutture semplici possono essere copiate come variabili di tipi semplici:
Allora perché non può essere fatto nella lista di inizializzazione? Non voglio definire esplicitamente i costruttori, per non perdere il metodo di inizializzazione usato sopra.
Non critico in linea di principio, voglio solo sentire il commento finale.
Eseguo il terminale con 12 finestre aperte, mangia 325 MB di RAM.
Eseguendo il multi-currency Expert Advisor, il terminale mangia 990 Mb di memoria. L'Expert Advisor visualizza le barre a 5 minuti per le ultime 48 ore + utilizza l'indicatore "fractal". Se corro solo per fare trading su un simbolo, ci vogliono 400 Mb. Questo consumo di memoria è normale quando si lavora con 12 simboli?
Sto eseguendo un Expert Advisor multivaluta, il terminale mangia 990 Mb di RAM. L'esperto guarda attraverso le barre a 5 minuti per le ultime 48 ore + usa l'indicatore "fractal". Se corro solo per fare trading su un simbolo, ci vogliono 400 Mb. Questo consumo di memoria è normale quando si lavora con 12 simboli?
Guarda l'articolo Principi di ricalcolo economico degli indicatori
Ho dimenticato di dire che il frattale è un indicatore standard + tutti i calcoli avvengono ogni cinque minuti
Come fanno gli sviluppatori a sapere cosa state facendo e come lo state facendo?
Cercate di formulare e spiegare chiaramente la radice del problema nel vostro codice.
Descrivere il problema in modo tecnico.
Come possono gli sviluppatori sapere cosa state facendo e come lo state facendo?
Cercate di formulare chiaramente ed evidenziare l'essenza del problema nel vostro codice. a quali condizioni il consumo comincia a crescere, fate e mostrate la stampa del log.
Descrivere il problema in modo tecnico.