Libreria di classi generiche - bug, descrizione, domande, caratteristiche d'uso e suggerimenti - pagina 11
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
L'ultimo esempio per oggi e apparentemente per questa settimana: la corrispondenza tra il numero del trade e il numero dell'ordine che lo ha avviato:
Per il mio caso in cui ci sono più di 10.000 compravendite nel conto, il risultato è il seguente:
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Libreria di classi generiche - bug, descrizione, domande, peculiarità d'uso e suggerimenti
Vasiliy Sokolov, 2017.12.08 13:30
Se N è molto piccolo, si normalizza semplicemente il numero ottenuto dalla funzione hash, in modo che sia sempre nel limite N:
Ho letto fino a questo punto finora. Vasily, grazie, tutto è chiaro, tranne quello evidenziato. Secondo me, prendere il residuo come normalizzazione è sbagliato. Sembra più logico
Questo è il punto: la dimensione del dizionario è spesso sconosciuta. Un semplice esempio, diciamo che abbiamo un consulente che fa trading. Tiene traccia delle transazioni effettuate. Quando un trade appare nella storia, dobbiamo collegare questo trade con il Medjack dell'Expert Advisor. Per questo è logico usare il dizionario. Dove il numero di trade è usato come chiave (identificatore unico), e il numero magico dell'Expert Advisor è usato come valore. Il problema è che all'inizio dell'EA non possiamo determinare in anticipo se avremo 100 trade, 1000 o nessun trade. Indipendentemente da quanta memoria si alloca in anticipo, sarà sempre o troppo poca o troppo grande.
Ovviamente non mi sono ancora scervellato. Può spiegare cosa viene assegnato? Non lo capisco affatto.
Sembra una presa in giro.
HashFunction.mqh senza un inlude. Questo non è giusto.
A cosa serve questa funzione?
Credo di non essermi rotto completamente il cervello. Potresti chiarire la parte evidenziata? Non lo capisco affatto.
Personalmente, ho capito che quando si fanno dei trade, l'EA dovrebbe scrivere il numero di un magik nel dizionario (array) per il numero del trade, che in questo caso è un indice di cella.
Il numero di scambi futuri non è noto in anticipo, e dovremmo già avere un array dichiarato per scrivere i maggiori. Il compito è quello di allocare in anticipo la quantità di memoria necessaria per l'array.
È impossibile allocare la quantità esatta di memoria in anticipo. Quindi, potremmo scrivere una stringa con delle stringhe, ottenere il numero di sottostringhe, inizializzare l'array e scrivere tutte le sottostringhe (nidi d'ape) lì.
Poi ogni medjack sarà accessibile per numero di mestiere.
Questo è più o meno come lo vedo io.
L'ultimo esempio per oggi e apparentemente per questa settimana: la corrispondenza tra il numero del trade e il numero dell'ordine che lo ha avviato:
Per il mio caso, in cui ci sono più di 10.000 operazioni sul mio conto, il risultato è il seguente:
Quanto rende la versione classica nel suo caso?
A cosa serve questa funzione?
Non si compila solo per struct e union.Aggiunto un altro sovraccarico
Si è imbattuto in.
Aggiunto un altro sovraccarico
Mi sembra che se un oggetto non implementa qualche interfaccia o metodo, è meglio generare esplicitamente un'eccezione piuttosto che tenerlo nascosto e poi cercare la fonte del problema senza mezzi termini.
Restituisce numeri negativi, cosa che segue logicamente da tale codice. Va bene?
Assolutamente normale.
L'hash non garantisce nulla, è solo un numero che caratterizza in qualche misura questo o quell'oggetto.
Se avete bisogno di un intero, usate uint.
Per quanto mi riguarda, se un oggetto non implementa qualche interfaccia o metodo, è meglio generare esplicitamente un'eccezione piuttosto che tacere e poi cercare la fonte del problema per un tempo sconosciuto.
MqlTick?
MqlTick?
Capite cosa fa il codice se non c'è un'implementazione esplicita della specializzazione della funzione templateGetHashCode per il tipo T?
Risposta: è patetico perché sorvola sulla mancanza di attuazione. Tutti gli oggetti della stessa classe restituiranno lo stesso valore di hash.