Un po' sorpreso :) Ho pensato di condividere e fare una domanda NON retorica. - pagina 15

 
hrenfx:

Stiamo parlando di un ottimizzatore, non di un sacco di corse di un singolo tester. Il concetto di ottimizzatore è molto diverso. Lì si ottengono significativi guadagni di velocità a scapito di piccoli errori nei risultati. L'ottimizzatore non ha affatto bisogno di modelli basati sui tick. Al massimo, si basano sui prezzi di apertura. Un ottimizzatore non è un tester, è tutta un'altra cosa. Il tuo approccio è diverso, e anche abbastanza logico.

Facendo un tester inaffidabile (e non c'è modo che il margine di errore sia dell'1%), lo sviluppatore avrà una macchia a vita. E il discorso di "100 volte più veloce" sembrerà poco impressionante rispetto a "come si è visto che un ottimizzatore ha il diritto di caricare qualcosa"?

Al contrario, stiamo lottando per la massima precisione e velocità dell'ottimizzatore a causa di

  • algoritmi ottimizzati
  • prestazioni e funzionalità massimizzate del linguaggio MQL5
  • agenti multi-threaded, remoti e basati su cloud
  • Storia dettagliata di M1 con supporto di spreads
  • uso di versioni a 64 bit
La parallelizzazione dell'ottimizzazione delle strategie ha portato immediatamente ad una velocizzazione lineare del numero di core di calcolo e MQL5 è diventato un gigantesco balzo in avanti rispetto a MQL4.
 
Renat:

Facendo un tester inaffidabile (e non ci sarà un errore dell'1%), lo sviluppatore avrà una macchia a vita.

Mi sembra che parliamo lingue diverse. Non vi sto rimproverando nulla. Inoltre, ho detto che gli sviluppatori hanno preso l'unica strada giusta.

Basta non criticare tutti gli altri sviluppi che non ti riguardano. Il mio Expert Advisor è 100 volte più veloce di MT4-tester e il suo errore è <1% SOLO SUL MIO EA. Non ne ho bisogno per altri Expert Advisors.

Vedete, ho dovuto, e l'ho fatto per me stesso, e non impongo questo modo a nessuno. Sto solo dicendo che, se necessario, è sempre possibile scrivere una calcolatrice non UNIVERSALE stupida, ma molto veloce. E dopo che i suoi risultati dovrebbero essere lucidati su un tester MT4-MT5 ben progettato, che non è nemmeno muto, ma piuttosto un vero simulatore di trading.

Bisogna essere idioti per criticare gli sviluppatori che l'ottimizzatore non è veloce come il calcolatore. E bisognerebbe essere molto testardi per sostenere che un calcolatore scritto appositamente per un caso particolare non è più veloce di un tester universale in questo caso particolare.

Di nuovo, gli sviluppatori sono alimentati dai loro clienti - le società di brokeraggio, rappresentate da un esercito di trader. MTS fornisce cibo ai suoi clienti - i mercati. Ognuno sta facendo i suoi affari. Basta non criticarsi a vicenda. Potete trattarvi l'un l'altro con rispetto e senza mancare di rispetto.

Il topikstarter ha quasi iniziato attaccando gli sviluppatori. Più volte ha detto che non è permesso. Alla fine anche gli sviluppatori hanno cominciato ad esagerare, dicendo le loro cose. Rispettiamoci a vicenda.

 

Per riassumere, quello che ho fatto per me è che il tester/ottimizzatore MT5 è un MUST, non importa se non è applicabile per alcuni casi speciali (sia personali che applicati), perché niente è perfetto. Tk.

Per me personalmente la discussione è stata utile. Almeno mi è diventato chiaro che dal punto di vista degli sviluppatori, la soluzione che hanno implementato è la migliore. Il fatto che qualcuno possa aver bisogno di fare miliardi di corse è un'altra questione. Potete farlo voi stessi. Questo è tutto. Non possiamo cambiare l'ottimizzatore di MT5 nella direzione dell'aumento delle prestazioni (a valori esorbitanti), non è reale. Hanno fatto molto, quasi tutto il possibile in termini di prestazioni. Buon per loro.

Così ho avuto una risposta alla mia domanda non retorica.


A hrenfx : che risposta vuoi da Renat? Risponde come dovrebbe fare uno sviluppatore. IMHO, capisce tutto quello che dici. Ma non risponde a te personalmente - ma a tutti quelli che lo leggono. Quindi dovresti sempre leggere le risposte degli sviluppatori.


Noi ci lamentiamo della vita, mentre loro fanno software non per noi personalmente, ma per i consumatori. A quanto pare, se li pagassimo milioni farebbero software per noi personalmente.


Quindi grazie. Risposta ricevuta. :)

 
Academic:

A hrenfx : che risposta vuoi da Renat? Risponde come dovrebbe fare uno sviluppatore. IMHO, capisce molto bene tutto quello che dici. Ma non risponde a te personalmente - ma a tutti quelli che lo leggono. È così che si dovrebbero sempre leggere le risposte degli sviluppatori.

Tutti si capiscono. Le leggi degli affari non sono state abrogate...
 
Alla luce di questo argomento di qualità e velocità dei vari tester universali, ho dimenticato di menzionare il vero concorrente di MQL5 - Stock#.
StockSharp торговые роботы. Создание, обучение, разработка торговых роботов.
  • StockSharp
  • stocksharp.com
Библиотека для создания торговых роботов (HFT, Арбитраж и т.д.) Графическая платформа для торговых роботов. Создание и тестирование роботов
 
hrenfx:
Alla luce del precedente argomento della qualità e della velocità dei vari tester universali, ho dimenticato di menzionare il vero concorrente di MQL5 - Stock#.

In effetti, creare un Data-Crusher o un parser, come lo chiamate voi, non è una cosa semplice.

Come avete già notato sopra - è ragionevole passare dai prezzi espressi sotto forma di numeri fluttuanti ai prezzi sotto forma di interi, perché in primo luogo riduce lo spazio di memoria di almeno 4 volte, perché USHORT occupa solo due byte e ha una gamma di valori da 0 a 65535, che anche per cinque cifre in principio è sufficiente. Così si scopre che 6553 punti vecchi sono più che sufficienti, mentre DOUBLE richiede 8 byte.


Cioè, se abbiamo 50 milioni di tick per esempio su un simbolo (tenendo conto che codifichiamo anche il tempo in USHORT, otteniamo la dimensione del tick 3*2 = 6 byte) Quindi 50 * 6 sono circa 300 megabyte. E in un caso se memorizziamo il tick come DOUBLE e anche se il tempo è USHORT, otteniamo 2 * 8 + 2 = 20 byte, quindi 20 * 50 è almeno un gigabyte.

Bene, se i caratteri diciamo 7, è in una versione di 7 * 300 = 2,1 gigabyte e la seconda 7 giga. OP. Se prendiamo come standard 4 giga di RAM per le macchine a 64 bit, si scopre che siamo già passati al 100% allo swap.

Beh, se non memorizzi i tick durante l'ottimizzazione e li generi prima di un'esecuzione, ci vorrà sicuramente meno spazio :)). Ma non sarà più un robot digitale.


Ok - andiamo oltre: supponiamo di essere intelligenti e di aver generato dei tick. E prendono 2 giga di memoria, ma se siamo intelligenti e diligenti, ma non abbiamo esperienza e sappiamo poco di alte prestazioni - allora creeremo il nostro "thread" per ogni esecuzione dall'inizio della storia alla fine, e funzionerà. Ma solo sull'ultima "stupidità" perderemo circa quattro volte la produttività. Pensateci! Quattro volte tanto - sono tutto per la C, naturalmente. Quindi, se qualcuno più di uno vorrebbe avere un ottimizzatore di super-performance (non un tester), sono pronto a creare un tale programma. Ma ci vorrà del tempo ed è per questo che voglio dei soldi. :)

Cioè, qui ho appena contato un'accelerazione di SETTE volte.


Sono circa 150 milioni di tick in 12 secondi su DOUBLE in numeri interi anche quattro volte più veloci, cioè 4 secondi per eseguire tutti i tick su tre caratteri dal 1999 a oggi.

Ho un tale tester (per l'ambiente MT4 anche con supporto per il compilatore con MT4 e C++ nativo) con multicurrency. È facile rifarlo per il net trading. Non compilerò con MT5, sono pigro. A proposito, supporta il debug MT4 :)) Direttamente in studio. Posso allegarvi l'elaborazione distribuita su macchine vicine, ma ci sarà un guadagno di prestazioni, dovremo vedere.

Con grafici, con contatori di prestazioni, con il caricamento della propria storia... Quindi non è una cosa piccola - 10.000 linee ad occhio e croce. :)

 
Academic:

Se ai moderatori non dispiace, postate qui degli screenshot di esempi del vostro tester. Prendi qualche EA standard, convertilo in "all-in-one" (senza indicatori) ed eseguilo in diversi ottimizzatori, incluso il tuo. I risultati, almeno sotto forma di screenshot.

Non ha senso mostrarmi il mio conteggio (l'ho già detto sopra), perché non può essere chiamato meglio della parola "conteggio". Secondo la tua dichiarazione hai quasi (non so tutto) un ottimizzatore completo. Gli sviluppatori hanno disposto il loro ottimizzatore (anche due - MT4 e MT5). Possiamo discutere e criticare. Mostraci qualcosa di tuo. Potrebbero esserci dei potenziali acquirenti.

Forse, anche gli sviluppatori avranno dei ripensamenti se il vostro ottimizzatore universale calcola davvero molto più velocemente e con un errore accettabile.

C'è anche una questione di indicatori. Personalmente non ne ho bisogno per scrivere EAs, ma il 99% degli Expert Advisors li usa, quindi l'architettura del loro tester-ottimizzatore è stata personalizzata secondo le realtà della maggioranza. Quindi ci può essere una certa perdita di velocità architettonica per "tutto in uno" (potrebbe essere più veloce), ma c'è un grande vantaggio per le varianti con indicatori (che potrebbe essere).

P.S. I tuoi numeri sono ovviamente imprecisi: non puoi avere la storia in INT che occupa 2.1Gb, e in DOUBLE che occupa 7Gb. La differenza dovrebbe essere sempre esattamente 2 (USHORT non è sufficiente) volte. Passare all'aritmetica intera con i prezzi dà un vantaggio significativo quando tutta la logica in un EA può essere sostituita con la logica intera. Questo non succede molto spesso.

 
hrenfx:

Se ai moderatori non dispiace, postate qui degli screenshot di esempi del vostro tester. Prendi qualche EA standard, convertilo in "all-in-one" (senza indicatori) ed eseguilo in diversi ottimizzatori, incluso il tuo. I risultati, almeno sotto forma di screenshot.

Non ha senso mostrarmi il mio conteggio (l'ho già detto sopra), perché non può essere chiamato meglio della parola "conteggio". Secondo la tua dichiarazione hai quasi (non so tutto) un ottimizzatore completo. Gli sviluppatori hanno disposto il loro ottimizzatore (anche due - MT4 e MT5). Possiamo discutere e criticare. Mostraci qualcosa di tuo. Potrebbero esserci dei potenziali acquirenti.

Forse, anche gli sviluppatori avranno dei ripensamenti se il vostro ottimizzatore universale calcola davvero molto più velocemente e con un errore accettabile.

C'è anche una questione di indicatori. Personalmente non ne ho bisogno per scrivere EAs, ma il 99% degli Expert Advisors li usa, quindi l'architettura del loro tester-ottimizzatore è stata personalizzata secondo le realtà della maggioranza. Quindi ci può essere una certa perdita di velocità architettonica per "tutto in uno" (potrebbe essere più veloce), ma c'è un grande vantaggio per le varianti con indicatori (che potrebbe essere).

P.S. I tuoi numeri sono ovviamente imprecisi: non puoi avere una storia in INT che occupa 2.1Gb e una storia in DOUBLE che occupa 7Gb. La differenza dovrebbe essere sempre esattamente 2 (USHORT non è sufficiente) volte. Passare all'aritmetica intera con i prezzi dà un vantaggio significativo quando tutta la logica in un EA può essere sostituita con la logica intera. Questo non succede molto spesso.

Se pensate che USHORT non sia sufficiente, allora sì. Ma secondo me, sarà sufficiente. Inoltre, non hai bisogno del doppio - FLOAT è la metà e più veloce.

E che dire delle pelli - allora :

Sì, ok - li mostrerò se ho tempo, ma non le skin - dato che non è un'applicazione a finestra, ma mostrerò qualcosa come un video.

Gli acquirenti penso che non ci saranno. :) E in estate, forse verrà il tempo, lo convertirò in rete e lo metterò "in vendita". Farò un sito web in inglese e lo metterò su. Penso che questo lo venda :) (In realtà sto già ridendo - qui non mi sono impegnato nella vita sharavara toloko) sarà per 30-50 sterline. Ma è interessante - pensaci: lo scrivi su MT4 e lo debug in studio :) :)


Se c'è un tale indicatore su un simbolo con gli stessi parametri non viene ricalcolato. Ma per essere onesti non ricordo cosa esattamente non c'è, ma tutto è lì, che è necessario in MT4. E i tick provengono da ogni simbolo nell'EA dove il test è in esecuzione, e non solo dal simbolo su cui l'EA è in esecuzione come in MT5 ora.

Questo mi ricorda - ci sono anche le librerie e l'esportazione ... Beh, c'è tutto. :)

 
La conversione dei prezzi in valori interi non ha particolari vantaggi. Sì, diminuisce effettivamente i volumi, ma molte volte perde la velocità a causa dell'inevitabile ricodifica in doppio. È inevitabile, perché è impossibile rendere l'intero sistema intero, la matematica calcolabile deve ancora essere fatta in doppio (la cui precisione non è nemmeno sufficiente).

I dati interi (e anche se corti corti) non possono essere usati in nessuna operazione di divisione e moltiplicazione. Dove memorizzare valori frazionari di 15 cifre? Allo stesso modo, è pericoloso e suicida usare il float, che manca assolutamente di precisione. La quantità di errori accumulati in float è tale che non dovreste mai usarlo per calcolare gli indicatori.

Gli sviluppatori principianti non ne sono consapevoli. Non vedono ancora tutta la portata delle complessità.
 
Renat:
Non c'è un vantaggio particolare nel convertire i prezzi in numeri interi. Sì, riduce effettivamente i volumi, ma molte volte perde velocità a causa dell'inevitabile conversione in doppio. È inevitabile, perché non è possibile rendere l'intero sistema intero, la matematica calcolabile deve ancora essere fatta in doppio (la cui precisione non è nemmeno sufficiente).

I dati interi (e anche se corti corti) non possono essere usati in nessuna operazione di divisione e moltiplicazione. Dove memorizzare valori frazionari di 15 cifre? Allo stesso modo, è pericoloso e suicida usare il galleggiante, che manca totalmente di precisione. La quantità di errori accumulati in float è tale che non dovreste mai usarlo per calcolare gli indicatori.

Gli sviluppatori principianti non ne sono consapevoli. Non vedono tutta la portata delle complicazioni.
In "quell" ottimizzatore tutto è come nel vostro caso - dubles. Ma quello che dici sull'impossibilità di usare - beh, forse. Anche se... ? - Prezzo in pip, indicatori in pip, tutto in pip... Solo ciò che è uguale a un PUNTO in ogni caso può essere diverso - cioè, abbiamo un numero che è assegnato a un tipo particolare (mucche, chilometri, ecc.) e ha i suoi punti. Quindi in numeri interi tutto è perfettamente risolto. È qui che vi sbagliate. :)
Motivazione: