Errori, bug, domande - pagina 1258
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
A proposito, chi sa come fare che quando si clicca sul pulsante, questo verrebbe schiacciato se la LKM è premuta e rilasciato se la LKM è rilasciata?
e cosa premerebbe il pulsante per cliccare e rilasciare e cosa rilascerebbe il pulsante per cliccare e rilasciare, senza senso)
ZS: certo che si può cambiare una proprietà subito dopo aver rilasciato la LKM, ma è così che si fa? )
A proposito, chi sa come fare che quando si clicca sul pulsante, questo verrebbe schiacciato se la LKM è premuta e rilasciato se la LKM è rilasciata?
e cosa premerebbe il pulsante per cliccare e rilasciare e cosa rilascerebbe il pulsante per cliccare e rilasciare, senza senso)
ZS: certo che si può cambiare una proprietà subito dopo aver rilasciato la LKM, ma è così che si fa? )
Sì. Dovrete controllare voi stessi lo stato dell'oggetto, se volete farlo a modo vostro. )
tutto andrebbe bene, ma il pulsante non viene premuto quando si preme la LKM, e viene premuto solo quando si rilascia la LKM, sciocchezze )
ZS: vuoi premere il pulsante? lascialo andare)
Ma se fate diversamente, dato cheOnChartEvent non funziona nel tester, allora in generale, nessun modo nel tester con le copie di copie non può funzionare.
tutto andrebbe bene, ma il pulsante non viene premuto quando si preme la LKM, e viene premuto solo quando si rilascia la LKM, sciocchezze )
ZS: vuoi premere il pulsante? lascialo andare)
Ma se fate diversamente, dato cheOnChartEvent non funziona nel tester, allora in generale, nessun modo nel tester con lops.
Con il tester, molte cose non funzionano ancora. Resta da scrivere in servicedesk e poi seguire gli aggiornamenti. )
E al di fuori del tester, devi scrivere i tuoi gestori perché i controlli funzionino come vuoi tu.
tutto andrebbe bene, ma il pulsante non viene premuto quando si preme la LKM, e viene premuto solo quando si rilascia la LKM, sciocchezze )
ZS: vuoi premere il pulsante? lascialo andare)
Ma se si fa altrimenti, dato che OnChartEvent non funziona nel tester, allora nessun modo nel tester con copie di non lavoro.
OnChartEvent() gestisce gli eventi tipici e quelli dell'utente. Per quanto riguarda gli eventi personalizzati questo gestore nel Tester funziona!!! Vedere il mio articolo Prescrizioni in MQL5 - Gestire gli eventi del grafico personalizzatoC'è un robot CustomEventProcessor. Si scambia nel Tester.
Problema del tester - è la grafica... Ho scritto prima al Service Desk sulla grafica, finora solo promesse...
OnChartEvent() gestisce i tipici eventi del grafico e gli eventi personalizzati. Per quanto riguarda gli eventi personalizzati questo gestore nel Tester funziona!!! Vedere il mio articolo Prescrizioni in MQL5 - Gestire gli eventi del grafico personalizzatoC'è un robot CustomEventProcessor. Si scambia nel Tester.
Il problema del tester è la grafica... Ho già scritto al Service Desk riguardo alla grafica, solo promessefinora ...
La situazione è la seguente: creo un oggetto OBJ_TEXT sul grafico. Poi cancello manualmente questo OBJ_TEXT dal grafico. Poi cerco di trovare l'oggetto cancellato sul grafico e ottengo un errore (questo è logico: l'oggetto è stato cancellato, quindi non può essere trovato). Poi provo a spostare il punto di ancoraggio dell'oggetto OBJ_TEXT cancellato con ObjectMove, ma non ottengo nessun errore.
Domanda: ObjectMove dovrebbe dare un errore quando si cerca di spostare il punto di ancoraggio di un OBJ_TEXT cancellato?
Si prega di avvisare chi lo sa: quando si cerca di visualizzare un indicatore nel visualizzatore (tester), appare un errore 4014, anche se nessun errore del genere si verifica quando si esegue lo stesso codice nella finestra del terminale.
Il codice è il seguente:
Indic_Handle[Indic_Total-1]=iMA(NULL,0,MA_Period,MA_Shift,MODE_LWMA,PRICE_CLOSE);
if(Indic_Handle[Indic_Total-1]==INVALID_HANDLE)
{Error_Message;return(false);}
if(F_If_Indic_Exist(Indic_Handle[Indic_Total-1])==false) // Проверяем есть ли уже индикатор с таким хендлом. Если нет - добавлем новый индикатор
if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)
{Error_Message;return(false);}
Il comando "Error_Message" è definito da una macro:
#define Error_Message_Exp Alert(__FILE__+": "+__FUNCTION__+": Error at line "+(string)__LINE__+". Last Error code: "+(string)GetLastError())
Quando viene eseguito nel terminale: il codice funziona come dovrebbe, senza errori. L'indicatore è tracciato sul grafico, alla variabile"Indic_Handle[Indic_Total-1]" è assegnato un valore di handle.
Ma quando viene eseguito nel tester e/o nel visualizzatore. Un errore viene stampato nel log:
2014.12.15 21:16:10 Core 1 2014.01.01 00:00:00 Alert: GA_Incl.mqh: F_Offspr_Init: Error at line 149. Last Error code: 4014
(linea "149" - è la linea"{Error_Message;return(false);}" sotto la linea "148":"if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)".
L'errore si verifica ovviamente quando si esegue la funzione "ChartIndicatorAdd" che viene eseguita in modo diverso nell'ambiente tester e nell'ambiente terminale.
La decodifica del codice di errore non lo rende chiaro:
ERR_FUNCTION_NOT_ALLOWED
4014
La funzione di sistema non può essere chiamata
Sul forum ho trovato una menzione di questo errore che si verifica nella stessa situazione da parte di un altro utente, ma la sua domanda rimane senza risposta. (https://www.mql5.com/ru/forum/1111/page763#comment_208678)
Ho scoperto che se continuo ad eseguire il programma nel tester nonostante l'errore, l'indicatore richiesto viene applicato al grafico. Ma il manico dell'indicatore non corrisponde al valore nella variabileIndic_Handle[Indic_Total-1]. (Ma l'indicatore stesso viene creato dopo alcuni tick, dopo aver chiamato il comando ChartIndicatorAdd.
Per favore aiutatemi
Grazie.
Giusto, non si stampa. Ma funziona. Prova a seguire l'evento con la grafica.