Errori, bug, domande - pagina 1143
![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
Perché Youtube ha HTTPS? Ecco il solito codice per il video -http://youtu.be/KG0PIVuJ2kU
Tutto accade! Seguite il link.
Ho una domanda oggi, ed è una di quelle che hanno molte persone, quale broker dovrei scegliere affinché l'abbonamento funzioni? per esempio john paul 77?
Ci sono diverse opzioni qui:
1) I parametri degli indicatori cambiano nel tempo secondo alcuni criteri (condizioni). Pertanto, non c'è bisogno di ricreare le maniglie ad ogni tick. Controllare la condizione e, se è soddisfatta, ricrearla.
Supponiamo che la condizione sia che un evento "nuova barra" si verifichi su un timeframe di un minuto. Gli esempi della definizione di un evento "nuovo bar" sono molti - cerca sul sito web. Questa variante mi piace di più.
2) Se è ancora necessario su ogni tick - aspettare la fine del controlloCopyBuffer() nel ciclo (usando sleep()). Ma molto probabilmente le zecche saranno saltate. In alternativa - per calcolare non tutta la storia, ma per le ultime due o duecento barre (per cambiare il codice degli indici standard) - salterà meno tick.
In generale, ho aggiunto il controllo e ho scoperto quanto segue.
Leggo all'inizio di ogni nuova barra di 15M.
Nel mercato live tutto funziona bene senza errori. Nel tester all'inizio e poi subito dopo aver cambiato i parametri d'ingresso degli indicatori l'errore "Errore durante la copia dall'indicatore iBands! (№4806)". Cioè, ottengo un handle senza problemi, ma l'indicatore non è stato ancora creato e non posso copiarlo. Non capisco perché il tester si comporta così.
Hai bisogno almeno della versione 8 di Internet Explorer per far funzionare l'interfaccia del Marketplace. IE6 non va da nessuna parte.
Quando si avvia il terminale, IE8 viene scritto nei log.
Si presume che l'utente controlli i registri all'avvio dell'applicazione. Purtroppo, questo tipo di utente appartiene alla specie in via di estinzione e non si incontra quasi più nella vita quotidiana.
È possibile che l'installatore di MT4/5 controlli la versione di Internet Explorer e, se è inferiore a 8, si offra di aggiornarla?
Funziona in un mercato dal vivo senza errori. Cioè ottengo un manico senza problemi, ma l'indicatore non è ancora stato creato e la sua copia fallisce. Non capisco perché il tester si comporta in questo modo.
Si verifica anche nel mercato live se si usano calcoli "pesanti" negli indicatori. La differenza tra il tester e il mercato live, in questo caso, si vede nel tempo trascorso tra la creazione dell'indicatore e il riferimento al suo buffer.
È facile da controllare. Aggiungere una variabile globale
Dopo aver ottenuto la maniglia dell'indicatore, aggiungerestart=GetTickCount();
E dopo aver ricevuto i valori dal buffer dell'indicatore aggiungere
Buon pomeriggio. Preoccupato di controllare l'autorizzazione al commercio. Ho ricevuto risultati piuttosto strani. Non ho capito qual è la ragione dell'errore. Ho lavorato sul mio conto demo Alpari.
Script:
void OnStart()
{
MqlDateTime str_dt;
TimeTradeServer(str_dt);
for (int i=0; i<10; i++){
datetime session_start_time, session_expiration_time;
if(!SymbolInfoSessionTrade("EURUSD", (ENUM_DAY_OF_WEEK)str_dt.day_of_week, i, session_start_time, session_expiration_time)) break;
Print(" session_start_time = ",TimeToString(session_start_time,TIME_DATE|TIME_MINUTES));
Print(" session_expiration_time = ",TimeToString(session_expiration_time,TIME_DATE|TIME_MINUTES));
}
datetime symbol_start_time=(datetime)SymbolInfoInteger("EURUSD", SYMBOL_START_TIME);
Print(" symbol_start_time = ",TimeToString(symbol_start_time,TIME_DATE|TIME_MINUTES));
datetime symbol_exiration_time=(datetime)SymbolInfoInteger("EURUSD", SYMBOL_EXPIRATION_TIME);
Print(" symbol_exiration_time = ",TimeToString(symbol_exiration_time,TIME_DATE|TIME_MINUTES));
}
Risultati dell'esecuzione:
symbol_exiration_time = 1970.01.01 00:00
symbol_start_time = 1970.01.01 00:00
session_expiration_time = 1970.01.02 00:00
session_start_time = 1970.01.01 00:00
session_expiration_time = 1970.01.01 00:00
session_start_time = 1970.01.01 00:00
Si verifica anche nel mercato live se si usano calcoli "pesanti" negli indicatori. La differenza tra il tester e il mercato live, in questo caso, si vede nel tempo trascorso tra la creazione dell'indicatore e il riferimento al suo buffer.
È facile da controllare. Aggiungere una variabile globale
Dopo aver ottenuto la maniglia dell'indicatore, aggiungereE dopo aver ricevuto i valori dal buffer dell'indicatore aggiungere
Hmmmmmmmmmmmmmmmmmmm divertente! :))
Questo è ciò che si ottiene nel tester:
KF 0 18:16:15.702 Core 1 Param1=160
QH 0 18:16:15.702 Core 1 Param2=11
KR 0 18:16:15.702 Core 1 StLot=0.01
LI 0 18:16:15.702 Core 1 2004.09.01 00:00:00 Errore durante la copia dall'indicatore iBands! (comprare) (#4806)
QL 0 18:16:15.702 Core 1 2004.09.01 00:00:00 Tempo tra la creazione di un indicatore e il primo accesso al suo buffer 0 ms
CO 0 18:16:15.702 Core 1 2004.09.01 01:00:00 B_up_s=1.218321775887096 M_av_s=1.2176
GO 0 18:16:15.702 Core 1 2004.09.01 01:00:00 B_low_b=1.195841860476532 M_av_b=1.2176
JG 0 18:16:15.702 Core 1 2004.09.01 02:00:00 Tempo tra la creazione di un indicatore e la prima chiamata del suo buffer 0 ms
EJ 0 18:16:15.702 Core 1 2004.09.01 02:00:00 B_up_s=1.218876391942192 M_av_s=1.2177
CQ 0 18:16:15.702 Core 1 2004.09.01 02:00:00 B_low_b=1.195850880785081 M_av_b=1.2177
Cioè, alla prima barra fallisce. Durante ulteriori esperimenti, se i parametri di input vengono cambiati, questo errore si verificherà anche su una barra e tutto è a posto su quella successiva.
E questo è ciò che si ottiene nel mercato:
Questo errore non mi disturba molto nel tester, ma vorrei che non si verificasse. Se si introduce il sonno, probabilmente rallenterà la velocità di ottimizzazione. Forse c'è una soluzione più elegante per questi casi. Non c'è questo problema in MT4, ma funziona anche in modo diverso.