Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1285
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
Se ci sono 1440 ordini al giorno, ci dovrebbe essere un controllo all'inizio del minuto, o più semplicemente all'apparizione della barra dei minuti. E a questo punto per aprire. Tu non ce l'hai, quindi l'EA apre una posizione ad ogni tick, che è una condizione rigorosa in sé, secondo la condizione sul nostro simbolo alla quotazione corrente. Questa condizione può non essere soddisfatta, e le zecche non saranno prese in considerazione. E ad un certo punto, si verificherà un errore critico.
Inoltre, il tipo di esecuzione dell'ordine (ordine di eseguire un trade per creare una posizione) Tutto o niente.
Ho capito. Grazie per l'aiuto.
Ho anche pensato che fosse difficile per il mio EA aprire così tanti ordini. Ho provato a limitare il numero di ordini con questo codice
Cioè, aprire un ordine solo alle 10:00. Ma il risultato è lo stesso.
2020.10.27 10:25:17.548 Core 1 272 Mb di memoria utilizzata inclusi 36 Mb di dati storici, 64 Mb di dati di tick
Cosa sto facendo di sbagliato?
Ho colorato il codice che ho aggiunto e cambiato
Questo è ciò che dice il file di log
FD 0 10:57:05.453 Core 1 processo agente avviato su 127.0.0.1:3000
CS 0 10:57:05.453 Core 1 connessione a 127.0.0.1:3000
JD 0 10:57:05.953 Core 1 connesso
OD 0 10:57:05.975 Core 1 autorizzato (agent build 2650)
JL 0 10:57:05.980 Tester EURUSD,M1 (Alpari-MT5-Demo): test di espertiGRAAL.ex5 dal 2020.09.01 00:00 al 2020.09.10 00:00
ON 0 10:57:05.997 Core 1 sincronizzazione comune completata
CJ 0 10:57:06.223 Tester la qualità della storia analizzata è al 100%
LM 0 10:57:06.248 Core 1 MetaTester 5 avviato su 127.0.0.1:3000
EJ 0 10:57:06.248 Core 1 inizializzazione finita
LS 0 10:57:06.248 Core 1 login (build 2650)
KO 0 10:57:06.248 Core 1 4372 byte di informazioni sul conto caricati
LI 0 10:57:06.248 Core 1 1482 byte di parametri del tester caricati
FN 0 10:57:06.248 Core 1 1724 byte di parametri di input caricati
OK 0 10:57:06.248 Core 1 423 byte di lista simboli caricati (72 simboli)
HO 0 10:57:06.248 Core 1 file esperto aggiunto: ExpertsGRAAL.ex5 13680 byte caricati
CP 0 10:57:06.248 Core 1 4077 Mb disponibili, 50 blocchi impostati per generare tick
DI 0 10:57:06.248 Core 1 calcolare il profitto in pip, deposito iniziale 10000, leva 1:100
LP 0 10:57:06.248 Core 1 inizializzato con successo
RI 0 10:57:06.248 Core 1 15 Kb di dati di inizializzazione totali ricevuti
DN 0 10:57:06.248 Core 1 Intel Core i5-6400 @ 2.70GHz, 7883 MB
IG 0 10:57:06.248 Core 1 EURUSD: simbolo da sincronizzare
RS 0 10:57:06.248 Core 1 EURUSD: simbolo sincronizzato, 3720 byte di informazioni sul simbolo ricevuti
OL 0 10:57:06.248 Core 1 EURUSD: caricare 27 byte di dati storici per sincronizzare in 0:00:00.003
EK 0 10:57:06.248 Core 1 EURUSD: storia sincronizzata dal 2019.01.02 al 2020.10.23
LK 0 10:57:06.248 Core 1 EURUSD,M1: cache storica allocata per 628432 barre e contiene 619175 barre dal 2019.01.02 06:00 al 2020.08.31 23:59
LH 0 10:57:06.248 Core 1 EURUSD,M1: la storia inizia dal 2019.01.02 06:00
LN 0 10:57:06.248 Core 1 EURUSD,M1 (Alpari-MT5-Demo): OHLC bar states generating. Esecuzione OnTick solo all'inizio della barra
JM 0 10:57:06.248 Core 1 EURUSD,M1: test di esperti\GRAAL.ex5 dal 2020.09.01 00:00 al 2020.09.10 00:00 iniziato con input:
LS 0 10:57:06.248 Core 1 StopLoss=30
PL 0 10:57:06.248 Core 1 TakeProfit=100
FJ 0 10:57:06.248 Core 1 Lot=0.1
DP 0 10:57:06.248 Core 1 saldo finale 10000.00 pips
EE 0 10:57:06.248 Core 1 EURUSD,M1: 39553 ticks, 10068 barre generate. Ambiente sincronizzato alle 0:00:00.031. Test superato in 0:00:00.247 (inclusi i tick di preelaborazione 0:00:00.016).
DE 0 10:57:06.248 Core 1 EURUSD,M1: tempo totale dal login allo stop test 0:00:00.278 (incluso 0:00:00.031 per la sincronizzazione dei dati storici)
NQ 0 10:57:06.248 Core 1 272 Mb di memoria utilizzata inclusi 36 Mb di dati storici, 64 Mb di dati di tick
KE 0 10:57:06.248 Core 1 file di log "C:\Users\a1960\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\20201027.log" scritto
OS 0 10:57:06.260 Core 1 connessione chiusa
Per favore, consigliatemi!
Perché l'ora del server non viene aggiornata quando arrivano nuove zecche?
Al momento dell'avvio dell'EA, tutto funziona come dovrebbe, ma poi il tempo passa, ma il nuovo valore del minuto corrente non entra nella variabile.
Cioè, l'Expert Advisor lavora in funzione del numero ottenuto nella variabile int M = TimeMinute(TimeCurrent());
In realtà questa linea di codice è dal riferimento e non funziona.
Per esempio, lo faccio partire alle 12-l'oracorrente restituita dal server corrisponde all'ora nella variabile, ma poi la variabile rimane alle 12, anche se sono già 15-20 minuti sull'orologio
Il codice è completamente migliore, più precisamente dove si crea la funzione e in quale funzione (OnInit, OnTick, OnTime) ottiene il valore dei minuti e chiama la funzione di stampa. Se in OnInit o fuori dai campi della funzione terminale, è così che dovrebbe essere. Se in OnTick, stamperà su ogni tick e aggiornerà il valore con un nuovo minuto.
Valeriy Yastremskiy:
Il codice è completamente migliore, più precisamente dove si crea la funzione e in quale funzione (OnInit, OnTick, OnTime) si ottiene il valore dei minuti e si chiama la funzione di stampa. Se in OnInit o al di fuori dei campi della funzione terminale, è così che dovrebbe essere. Se in OnTick, stamperà su ogni tick e aggiornerà il valore con un nuovo minuto.
Bene, ecco il codice completo. Nella funzione void OnTick() viene attivata all'inizio dalla prima linea da eseguire.
Si attiva solo al momento della ricompilazione o dell'aggiunta al campo pianificazione/cancellazione/. Per il resto del tempo, la variabile M mantiene il valore del minuto ottenuto durante la prima esecuzione dell'EA.
Beh, qui c'è un intero codice, non c'è altro da dire. Il void OnTick() è attivato all'inizio dalla prima linea da eseguire.
Si attiva solo al momento della ricompilazione o dell'unione al grafico/campo di cancellazione/ . Per il resto del tempo, la variabile M mantiene il valore del minuto ottenuto durante la prima esecuzione dell'EA.
Capito, grazie!
Avrei dovuto
metterlo nel corpo della funzione, invece di assegnare il valore M prima
Capito, grazie!
Avrei dovuto
metterlo nel corpo della funzione, invece di assegnare il valore M prima di esso.
Si può fare in diversi modi. Leggere le variabili globali e locali e la loro visibilità.
Pomeriggio. Cercando di ottenere l'angolo della linea di tendenza dall'angolo. Ecco il codice:
l'angolo è sempre 0. Indipendentemente dal fatto che si usino metodi della libreria standard o funzioni integrate. Allo stesso tempo, la linea è tracciata. Cosa c'è che non va? Come ottenere l'angolo?
Pomeriggio. Cercando di ottenere l'angolo della linea di tendenza dall'angolo. Ecco il codice:
l'angolo è sempre 0. Indipendentemente dal fatto che si usino metodi della libreria standard o funzioni integrate. Allo stesso tempo, la linea è tracciata. Cosa c'è che non va? Come posso ottenere l'angolo?
https://www.mql5.com/ru/forum/103591
Capisco, ma come si calcola l'angolo?
https://www.mql5.com/ru/forum/103591
Capisco, ma come si calcola l'angolo?
Sei un comico.
Chi voglio prendere in giro?
Forum sul trading, sistemi di trading automatico e test di strategia
Tutte le domande dei neofiti su MQL4 e MQL5, qualsiasi aiuto e discussione di algoritmi e codici
Nikolai Semko, 2020.10.26 00:34
Non bisogna avere paura della velocità. È solo una condizionalità per la conversione dei tipi.
Come variante della funzione di definizione degli angoli:
Dopo MT5 la sensazione di MT4 è semplicemente terribile. L'accesso alla storia è in qualche modo evirato. Non sto nemmeno parlando delle zecche.
Potete dirmi se questa selezione di caratteri è possibile nell'indicatore?