Argomento interessante per molti: cosa c'è di nuovo in MetaTrader 4 e MQL4 - grandi cambiamenti in arrivo - pagina 69

 
Avals: ... Un semplice esempio, semplicemente non sarete riempiti con un limite su un mercato di tendenza nel posto giusto e sarete fuori da una posizione. E quando va contro la vostra posizione limite, sarete sommersi.

Beh, sì, problemi di esecuzione, mal interpretato (a mio modo) le parole "più redditizio da fare"
 
MetaDriver:
Hai mai analizzato i codici di hrenfx(getch nella vita precedente)? Ti consiglio vivamente di guardare tutti i suoi lavori nel 4° forum kodobase e analizzarne attentamente un paio o tre per comprendere appieno gli algoritmi. E a tutta la tua brigata di "persone di altissimo livello professionale" consiglio vivamente di fare lo stesso. Forse dovresti essere meno delirante sulle capacità intellettuali di Ivan e iniziare a migliorare le tue stesse capacità.


Tu non hai mostrato un cazzo di numeri, tu hai tre tick nelle barre, mentre lui ha un tick in ognuna - solo LoAsk e HiBid - che è esattamente quello che ha propagandato qui per un tempo molto lungo. Quindi se rimuovi due confronti inutili dal ciclo e spegni i controlli di gamma nel compilatore (RangeCheck), allora la cifra dichiarata sembra già abbastanza realistica, anche con calcoli utili (minimi) all'interno del ciclo.

Alcuni dei codici hrenfx in cui mi sono imbattuto - il codice è di alta qualità, non posso dire nulla. Ne uso ancora alcuni. Ma non mischiate le mosche con le cotolette. Tu, come gerica, scrivi senza nemmeno capire il test che ti propongo. O per mancanza di profonda conoscenza del C, o per qualche altra ragione stai sottolineando che una barra per hrenfx è solo due interi lunghi. In realtà, passiamo un puntatore alla struttura che descrive la barra; la struttura stessa non viene passata per valore, il che significa che attivare e disattivare il numero di elementi nella barra non influirà in alcun modo sulle prestazioni. Nota, sto parlando del tempo di performance dello strato stesso, sto ignorando il tempo di riempimento dell'array.

Ecco il risultato delle prestazioni se si lascia solo un valore nella struttura stessa:

Cioè, in effetti, il tempo per distribuire una struttura leggera, costituita da un singolo valore lungo è diminuito molte volte, da 9 secondi a 2,35, ma il tempo di esecuzione stesso è rimasto quasi lo stesso (anche leggermente aumentato, perché ho iniziato a chiamare rand() nel controllo if). Se il motore delega l'esecuzione allo stratega, cosa che in realtà sta accadendo, il tempo di esecuzione diventa ancora più lungo e la dimensione della barra descrittiva della struttura non ha assolutamente nulla a che fare con questo.

Quindi, se hai intenzione di dire ancora qualcosa, studia prima C - poi avremo qualcosa di cui parlare.

 
C-4:

Cioè è vero che il tempo per distribuire una struttura leggera costituita da un singolo valore lungo è diminuito moltissimo, da 9 secondi a 2,35, ma il tempo dell'esecuzione stessa rimane quasi lo stesso

E se lo dividiamo per 8 (core)?
 
TheXpert:
E se si divide per 8 (core)?
Se si divide, è possibile raggiungere una velocità di 100 000 000 bar, ma ancora, stiamo ragionando in modo troppo astratto e speculativo. In un vero tester, ci saranno comunque dei costi per le chiamate di funzione, la distribuzione e la lettura dei dati dal disco, i calcoli matematici all'interno delle strategie, l'invio di segnali di acquisto e vendita, la registrazione e la memorizzazione dei dati intermedi e molto, molto di più. Una singola chiamata della funzione TradeSystem() nel primo esempio aumenta il tempo di esecuzione della strategia del 40%. Quindi, anche se dividiamo il risultato per 8, ci avvicineremo solo al limite dichiarato, ma è stato annunciato che è stato raggiunto in 5 ore senza alcun aiuto da un programmatore. E non sapremo ancora per molto tempo se hrenfx intendeva le prestazioni in modalità multithreading o single-threaded.
Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Основы языка / Функции / Вызов функции - Документация по MQL5
 
TheXpert:
E se lo dividiamo per 8 (core)?
No, hrenfix ha un tester single-threaded, è scritto nel suo post.
C-4:

Alcuni dei codici hrenfx mi sono arrivati - il codice è di alta qualità, non posso dire nulla. Ne uso ancora alcuni. Ma non mischiate le mosche con le cotolette. Tu, come gerica, scrivi senza nemmeno capire il test che ti propongo. O per mancanza di profonda conoscenza del C, o per qualche altra ragione stai sottolineando che una barra per hrenfx è solo due interi lunghi. In realtà, passiamo un puntatore alla struttura che descrive la barra; la struttura stessa non viene passata per valore, il che significa che attivare e disattivare il numero di elementi nella barra non influirà in alcun modo sulle prestazioni. Nota, sto parlando del tempo di performance dello strato stesso, sto ignorando il tempo di riempimento dell'array.

Ecco il risultato delle prestazioni se si lascia solo un valore nella struttura stessa:

Cioè, in effetti, il tempo per distribuire una struttura leggera, costituita da un singolo valore lungo è diminuito molte volte, da 9 secondi a 2,35, ma il tempo di esecuzione stesso è rimasto quasi lo stesso (anche leggermente aumentato, perché ho iniziato a chiamare rand() nel controllo if). Se il motore delega l'esecuzione allo stratega, cosa che effettivamente accade, il tempo di esecuzione diventa ancora più lungo e la dimensione della struttura che descrive la barra non c'entra assolutamente nulla.

Quindi, se hai intenzione di dire ancora qualcosa, studia C per cominciare e poi avremo qualcosa di cui parlare.

Non voglio discutere la discrepanza trovata meno di due volte, // che può essere attribuita, per esempio, a differenze di compilatori e processori.

La performance di Ivan è vicina a quella reale, per strategie leggere, ed è abbastanza motivante per scrivere semplici "calcolatori" per ciascuna delle sue strategie.

Per questo la produttività è enorme rispetto a un mashup universale di tester regolari. Questo è esattamente quello che Ivan voleva dire, e non a Renat, ma a te, a me e ad altri "utenti" che stanno aspettando "sotto il mare del tempo".

 
C-4:
non un programmatore, in sole cinque ore.
Non ricordo che abbia detto di non essere un programmatore, è stato a lungo conosciuto qui come programmatore tra le altre cose.
 
MetaDriver:
No, hrenfix ha un tester a thread singolo, è scritto nel suo post.
Ha anche le stesse istruzioni su come disaccoppiarlo.
 
Mischek:
Non ricordo che abbia detto di non essere un programmatore, ma è stato a lungo conosciuto qui come un programmatore tra gli altri.
Non è un professionista, e a differenza di alcune persone che pensano di essere professionisti, lo dice, anche se ad un livello più alto della maggior parte dei lavori di punta.
 
C-4:

1) ...... Ma è stato anche dichiarato che è stato realizzato, per così dire, con un mezzo botto, da un non programmatore, in sole 5 ore.

2) E non sapremo per molto tempo se hrenfx intendeva le prestazioni in modalità multithreaded o single-threaded.

1) Il risultato è stato ottenuto in cinque ore da un uomo che scrive il tester non per la prima volta, cioè un "non programmatore" molto esperto. Per esempio,una delle sue imprese, già tre anni fa.

2) Leggete più attentamente il post originale e lo scoprirete subito. "la manovella non è un lettore..." ? ;)

Простая идея мультивалютного тестера с примером реализации - MQL4 форум
  • www.mql5.com
Простая идея мультивалютного тестера с примером реализации - MQL4 форум
 
Il filo dei testimoni di Crenfix ))