L'indicatore è chiamato con un set di parametri sbagliato
Sì, l'indicatore ha un sacco di parametri, c'è un modo per assicurarsi che iCustom riempia la memoria? Ci vogliono circa 2 ore per riempire la memoria, quindi testare un iCustom vuoto e aggiungere un parametro alla volta richiederà molto tempo. Qualche consiglio? P.S. Passerò attraverso tutti i parametri anche visivamente.
TheXpert: Ci saranno molti indicatori nei registri
Sì, so cosa intendi, l'ho visto anche nello strategy tester, quando appaiono molti indicatori dopo un test. Ma tutto funziona bene nel tester di strategia qui. E tutto viene visualizzato correttamente nei registri.
Sì, l'indicatore ha parecchi parametri, c'è un modo per assicurarsi che iCustom riempia la memoria? Ci vogliono circa 2 ore per riempire la memoria, quindi testare un iCustom vuoto e aggiungere un parametro alla volta richiederà molto tempo. Qualche consiglio? P.S. Passerò attraverso tutti i parametri anche visivamente.
Lasciate la chiamata senza parametri (allora prenderanno i default), e osservate. Se la perdita scompare, allora è quello che non va.
Forse è davvero solo un po', ed è la storia della citazione che è apparsa fin dall'inizio?
Avvio MT4 con diversi EAs, abilito la registrazione della memoria. Dove la freccia mostra che c'è un crash, "non c'è abbastanza memoria per il file EX4".
Avvio MT4 con diversi EA, abilito la registrazione della memoria. Dove la freccia mostra che c'è un crash, "non c'è abbastanza memoria per il file EX4".
Da un certo momento le posizioni scompaiono. L'equità e l'equilibrio sono uguali a N. Nella storia degli scambi, non ci sono informazioni sulla posizione.
Il reset del terminale non aiuta.
Diverse ore dopo le posizioni appaiono nella storia del trading (hanno chiuso in una certa condizione). Il saldo e il patrimonio netto vengono adeguati di conseguenza.
Questa è una situazione molto rara che è causata da una confluenza di molte circostanze. Ma può accadere, anche se la probabilità è circa zero.
Suggerisco che tutti i robot da combattimento devono avere un meccanismo per identificare tali situazioni.
A tal fine, è necessario memorizzare i biglietti degli ordini aperti e controllare la loro presenza nella storia del commercio in caso di scomparsa. Se non sono nella cronologia del trading, Alertim!
La funzione di tale protezione.
#define TICKET_TYPE int// Получаем все текущие тикеты.int GetTickets( TICKET_TYPE &Tickets[] )
{
int Amount = ArraySize(Tickets);
for (int i = ArrayResize(Tickets, Amount + OrdersTotal()) - Amount - 1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS))
Tickets[Amount++] = OrderTicket();
return(ArrayResize(Tickets, Amount));
}
// Проверяет наличие потерянных тикетов.int CheckTickets( void )
{
staticconstbool IsTester = MQLInfoInteger(MQL_TESTER);
int Amount = 0;
if (!IsTester)
{
static TICKET_TYPE Tickets[];
TICKET_TYPE BadTickets[];
for (int i = ArrayResize(BadTickets, ArraySize(Tickets)) - 1; i >= 0; i--)
if (!OrderSelect(Tickets[i], SELECT_BY_TICKET))
{
BadTickets[Amount++] = Tickets[i];
Alert("Ticket " + (string)Tickets[i] + " is not found!");
}
ArrayResize(BadTickets, Amount);
#ifdef __MQL5__ArraySwap(Tickets, BadTickets);
#else // __MQL5__ArrayFree(Tickets);
ArrayCopy(Tickets, BadTickets);
#endif // __MQL5__
GetTickets(Tickets);
}
return(Amount);
}
L'indicatore è chiamato con un set di parametri sbagliato
Sì, l'indicatore ha un sacco di parametri, c'è un modo per assicurarsi che iCustom riempia la memoria? Ci vogliono circa 2 ore per riempire la memoria, quindi testare un iCustom vuoto e aggiungere un parametro alla volta richiederà molto tempo. Qualche consiglio?
P.S. Passerò attraverso tutti i parametri anche visivamente.
Sì, l'indicatore ha parecchi parametri, ma c'è un modo per assicurarsi che iCustom riempia esattamente la memoria?
Ci saranno molti indicatori nei registri
Sì, so cosa intendi, l'ho visto anche nello strategy tester, quando appaiono molti indicatori dopo un test. Ma tutto funziona bene nel tester di strategia qui. E tutto viene visualizzato correttamente nei registri.
Sì, l'indicatore ha parecchi parametri, c'è un modo per assicurarsi che iCustom riempia la memoria? Ci vogliono circa 2 ore per riempire la memoria, quindi testare un iCustom vuoto e aggiungere un parametro alla volta richiederà molto tempo. Qualche consiglio?
P.S. Passerò attraverso tutti i parametri anche visivamente.
Lasciate la chiamata senza parametri (allora prenderanno i default), e osservate. Se la perdita scompare, allora è quello che non va.
L'EA consuma la memoria che si accumula poco a poco.
Quanto è "un po'"?
Forse è davvero un po' e questa è la storia della citazione che è apparsa dal lancio?
"A poco a poco" - quanto?
Forse è davvero solo un po', ed è la storia della citazione che è apparsa fin dall'inizio?
Avvio MT4 con diversi EAs, abilito la registrazione della memoria. Dove la freccia mostra che c'è un crash, "non c'è abbastanza memoria per il file EX4".
Lasciate la chiamata senza parametri (allora prenderanno i default), e osservate. Se la perdita scompare, allora è quello che non va.
Ok, lo farò in questo modo.
Avvio MT4 con diversi EA, abilito la registrazione della memoria. Dove la freccia mostra che c'è un crash, "non c'è abbastanza memoria per il file EX4".
Quanto il 40% di quanto viene usato?
Cresce linearmente, sembra una chiamata indicatore storto, sì.
Il 40% di quanto viene usato?
Cresce linearmente, sembra una chiamata dell'indicatore di curva, sì.
Sembra che ci sia un problema con i parametri. Grazie!
Su MT4 questa situazione è possibile (non parleremo dei motivi):
Questa è una situazione molto rara che è causata da una confluenza di molte circostanze. Ma può accadere, anche se la probabilità è circa zero.
Suggerisco che tutti i robot da combattimento devono avere un meccanismo per identificare tali situazioni.
A tal fine, è necessario memorizzare i biglietti degli ordini aperti e controllare la loro presenza nella storia del commercio in caso di scomparsa. Se non sono nella cronologia del trading, Alertim!
La funzione di tale protezione.