Libreria di classi generiche - bug, descrizione, domande, caratteristiche d'uso e suggerimenti - pagina 15

 
Vasiliy Sokolov:

Ci sono diversi vantaggi nella soluzione proposta per il dizionario, il più importante dei quali non è del tutto ovvio a prima vista. Quando scriviamo codice come questo

Noi siamo cablati nel codice stesso dell'Expert Advisor. Quando riempiamo il dizionario, lo facciamo dinamicamente, cioè al momento dell'esecuzione del programma. L'approccio dinamico ci dà più flessibilità. Per esempio, i codici di errore possono essere contenuti in un file speciale, per esempio ErrorsCode.txt:

Al momento del lancio il programma può leggere questo file e riempire il dizionario con i codici richiesti e poi restituire la variante richiesta della stringa all'utente. Ci possono essere diversi file di questo tipo: un file per lingua. In questo modo, è possibile eseguire la localizzazione, dove vengono visualizzati i codici di errore nella lingua dell'utente, a seconda della lingua dell'utente. Inoltre, l'utente stesso può tradurre questi codici di errore nella sua lingua una volta, e il programma stesso "impara" a produrre il messaggio desiderato nella sua lingua. Questo è il modo in cui la maggior parte dei programmi sono localizzati, quando la traduzione di un menu è contenuta in un file di testo e il programma la carica, a seconda delle impostazioni. Cioè, senza alcuna ricompilazione del programma e senza cambiare il suo algoritmo, possiamo influenzare significativamente la rappresentazione dei suoi risultati.

Capite che tali "localizzazioni" sono fatte perfettamente senza HashMap. Cioè ancora una volta solo la velocità di ricerca è un vantaggio qui. Ma in questo compito non ne hai affatto bisogno.

Cioè ci deve essere un compito, che mostrerà un vantaggio pratico sotto forma di riduzione dell'ottimizzazione del tempo. Altri esempi saranno sempre molto privati e altrettanto discutibili. Ma con l'ottimizzatore non si può discutere.

 
fxsaber:

Vi rendete conto che tali "localizzazioni" sono fatte perfettamente senza HashMap. Cioè, di nuovo, l'unico vantaggio è la velocità di ricerca qui. Ma in questo compito in pratica non è affatto necessario.

Cioè ci deve essere un compito, che mostrerà un vantaggio pratico sotto forma di riduzione dell'ottimizzazione del tempo. Altri esempi saranno sempre molto privati e altrettanto discutibili. Per quanto riguarda l'ottimizzatore - non si può discutere su questo.

Il punto in questo caso non è la velocità. Ma nell'esempio - per così dire "per capire" l'essenza. E dove applicare questa "essenza" è un'altra questione.

 
Artyom Trishkin:

In questo caso non si tratta di velocità. Si tratta dell'esempio - per così dire - di "capire" l'essenza. E dove applicare questa "essenza" è un'altra questione.

Io ho una percezione leggermente diversa.

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Algoritmi, metodi di decisione, confronto delle loro prestazioni

Sergey Dzyublik, 2017.12.11 10:41

In questo particolare compito: indice => valore
Sarebbe più veloce usareCArrayList cheCHashMap.

CArrayList prende più del doppio dello spazio in meno, inoltre ha meno riordinamenti quando si aggiungono nuovi elementi(CArrayList ha 2 fattori di crescita, mentreCHashMap ha circa 1,2 nell'implementazione attuale).
E c'è meno confusione quando si legge il risultato diCArrayList.

Non l'ho ancora capito, nonostante le spiegazioni. Il mio analfabetismo me lo impedisce. Non ho osato entrare nelle viscere delle librerie - lo stile di implementazione/astrazione mi ripugna. Ma dovrò farlo, suppongo.

 
fxsaber:

Io ho una percezione leggermente diversa.

Sono d'accordo. Ci sono molte cose belle nel mondo, ma non tutte sono necessarie per il commercio. È così con questa biblioteca. Cosa dà al commerciante?

(Ripeto la domanda, perché o non è stata notata o nessuno sa perché un commerciante ne ha bisogno)

 
fxsaber:

Questo non è ancora stato capito, nonostante le spiegazioni. Il mio stesso analfabetismo è un ostacolo. Non ho ancora osato entrare nelle viscere delle librerie - lo stile di implementazione/astrazione mi ripugna. Ma dovrò farlo, suppongo.


Se volete, posso descrivere brevemente l'architetturadell' implementazione diCHashMap- non è banale.

 
Alexey Oreshkin:

Secondo. Ci sono molte cose belle nel mondo, ma non tutte sono necessarie per il commercio. È così con questa biblioteca. Che cosa dà a un commerciante?

(Ripeterò questa domanda ancora una volta, perché o questa domanda non è stata notata o nessuno sa perché un trader ne ha bisogno)


I contenitori danno alle persone esperte in strutture di dati un'interfaccia conveniente per l'elaborazione veloce di un certo insieme di dati.
In molti linguaggi di programmazione i contenitori sono parti integranti e direttamente integrati nel linguaggio stesso.
Solo perché non sai come usare qualcosa non significa che sia scomodo o inutile.

 
Sergey Dzyublik:

Se siete interessati, posso descrivere brevemente l'architettura dell'implementazionedi CHashMap- non è banale.

Interessante. Ed ecco una domanda. Non mi piaceva l'attuale implementazione e l'ho modificata. Certo, è storto. Come posso ottenere la bibbia originale?

 
Sergey Dzyublik:


I contenitori danno alle persone che capiscono le strutture di dati un'interfaccia conveniente per elaborare rapidamente una certa quantità di dati.
In molti linguaggi di programmazione, i contenitori sono parte integrante e direttamente integrati nel linguaggio stesso.
Solo perché non sai come usare qualcosa non significa che non sia conveniente o utile.

Non sto dicendo che non sia utile. Mi interessa come può aiutare nel trading. Esattamente nel commercio. E non nella programmazione di cavalli sferici nel vuoto. Se stavano scrivendo un software per le stazioni meteo in µl che visualizza le previsioni del tempo - nessuna domanda, è chiaro che è semplicemente necessario e come e dove può essere applicato.
Qualcuno può dare una risposta specifica riguardo al trading?
 
Alexey Oreshkin:
Chi mi darà una risposta concreta sul trading?

La velocità del tester è importante per il trading? Se sì, allora HashMap influisce anche sul trading, perché aumenta la velocità di sviluppo e di esecuzione del TS.