Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1187

 
Сергей Таболин:

Potrei sbagliarmi, ma non credo che tu abbia la minima idea di come funziona l'EA. Cosa intendete con "il programma è in esecuzione"?

Un consiglio: prima di tutto, scoprite cosa sono OnInit, OnTick e OnDeinit. Penso che tutto andrà a posto ))))

In generale, a giudicare dalla tua risposta, tu stesso non capisci bene come funziona il programma. Visto che sembra una domanda stupida. Sì, proprio come il commentatore precedente pensa che si fermi. Solo dall'esperienza di programmazione in altri linguaggi, penso che esegua il suo corpo in un ciclo, e quando arriva un evento, si immerge in esso. Se il programma esegue il suo corpo in un ciclo, questo spiega perché il programma è scritto in quel modo.
 

Buongiorno a tutti! Sto testando un Expert Advisor in MT4.
Potete per favore dirmi quale lingua, o funzione in MQL4 dovrebbe essere usata per fare in modo che la funzione Print() stampi solo 1 volta in MT4 Tester Log e solo con il valore dell'ultima ora. Ecco un semplice codice.

int g;
void OnTick()
{
if (Hour()>g)
{
Print("------------------------------------=",Hour());
g=Hour();
}
}

Print() viene stampato nel МТ-4 Log-File ad ogni ora.

2020.06.24 15:54:12.250 2010.01.04 06:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=6
2020.06.24 15:54:12.249 2010.01.04 05:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=5
2020.06.24 15:54:12.249 2010.01.04 04:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=4
2020.06.24 15:54:12.248 2010.01.04 03:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=3
2020.06.24 15:54:12.247 2010.01.04 02:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=2
2020.06.24 15:54:12.247 2010.01.04 01:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=1
2020.06.24 15:54:12.214 2010.01.01 00:00:00  ОПТИМ КОДА test started
2020.06.24 15:54:12.196 TestGenerator: spread set to 2
2020.06.24 15:54:09.838 Expert ОПТИМ КОДА EURUSD,M1: loaded successfully
2020.06.24 15:54:09.827 Expert ОПТИМ КОДА EURUSD,M1: removed

Ma ho bisogno che Print() venga stampato nel Logger MT-4 solo una volta con l'ultimo valore dell'ora. Sarebbe logico cancellare la penultima, cioè la precedente voce di Print ( ) dopo che l'ultima appare nel log. So come cancellare un ordine, un oggetto grafico. Ma non so ancora come cancellare la voce Print() dal Logbook.

Grazie per il vostro aiuto.

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Данные типа double выводятся с точностью до 16 десятичных цифр после точки, при этом данные могут выводиться либо в традиционном либо в научном формате – в зависимости от того, как запись будет наиболее компактна. Данные типа float выводятся с 5 десятичными цифрами после точки. Для вывода вещественных чисел с другой точностью либо в явно...
 
Valeriy Yastremskiy:
No. Il segno di spunta non viene tagliato dall'esaminatore. Se l'EA è in esecuzione, i tick in arrivo vengono saltati. Quando finisce, il prossimo ticchettio lo farà ripartire in modalità standby.
Secondo la vostra logica, sembra che il programma non andrà mai alla funzione di impostazione del lotto. Ma è così che il programma è scritto dall'editore ufficiale. Ho scritto l'ordine delle funzioni nei post precedenti.
 
Lo chiederò di nuovo, sto avendo dei ripensamenti con i commentatori precedenti. L'esempio ufficiale suggerisce di contare il volume del lotto nel corpo del programma, ma non è logico calcolarlo su ogni tick? Per cosa è scritto nel corpo del programma?
 
Non posso installare un EA. Il pulsante d'installazione non fa clic. Per essere più precisi, non succede niente quando lo premo
 
Сергей Таболин:

Kalash o Maxim? ))))))))))))


Domanda:

C'è un copione. Non può essere lanciato dall'EA con i mezzi standard. Quindi, dobbiamo aggiungerlo all'Expert Advisor come funzione. Ma non voglio fare le stesse modifiche nell'Expert Advisor quando modifico lo script. Come fare? Per mezzo di inclusioni?

Classi) e oggetti
O incollando)
 
Ivan_Invanov:
Secondo la vostra logica, viene fuori che il software non andrà mai alla funzione di impostazione del lotto. Ma questo è il modo in cui il programma è scritto dall'editore ufficiale. Ho scritto l'ordine delle funzioni nei post precedenti.
L'inizializzazione e la deinizializzazione funzionano una volta sola. All'inizio e alla fine.
 
Ivan_Invanov:
In generale, a giudicare dalla sua risposta, lei stesso non capisce bene come funziona il programma. Quindi sembra che sia una domanda stupida. Proprio come il commentatore precedente pensa che si fermi. Solo dall'esperienza di programmazione in altri linguaggi, penso che esegua il suo corpo in un ciclo, e quando arriva un evento, si immerge in esso. Se il programma esegue il suo corpo in un ciclo, questo spiega perché il programma è scritto in quel modo.

A giudicare dal tuo commento, non capisci nemmeno questo. (((

Questo non è "altre lingue", questo è MQL!

Un consiglio anche a te: cerca di capire esattamente come funziona questo gruppo.

Tutte le altre funzioni sono derivate.

Capire cosa fare.

 
Ivan_Invanov:
Sì, non capisco, quindi chiedo. So che l'ontick è un evento, ma non capisco dove va l'EA dopo. Andrà nel corpo del programma e calcolerà il volume del lotto, o non andrà? Perché l'EA dell'editore ufficiale è stato scritto in questo modo?

E pensi che qualcuno qui inizierà a riscrivere la documentazione per te personalmente? Solo per te? Qui dentro? Cancella quello che hai detto ....

 
Ivan_Invanov:
Sì, non capisco, è quello che sto chiedendo. So che l'ontick è un evento, solo che non mi è chiaro dove va poi l'EA. Perché è stato scritto in questo modo dall'editore?

Tu mostreresti il codice (ma devi capire che se mostri il codice allora il copyright è in bella vista) e i ragazzi guarderanno lo schema dell'EA e diranno cosa si chiama e cosa non si apre un accordo oppure no.

Motivazione: