Algoritmi, metodi di soluzione, confronto delle loro prestazioni - pagina 14

 
Sergey Dzyublik:

1. non ha senso. Gli algoritmi sono confrontati nel loro insieme sui risultati relativi.
2. La soluzione è già integrata - è una libreria standard<Generic\ArrayList.mqh>.

1. cioè, la velocità dell'algoritmo non è importante. La soluzione è "concettualmente potente" e questo è sufficiente. Ok.

2. Quindi, basta collegarsi tramite il plug-in ed è tutto? Ok.

//--------------------------------------------------------------------

Se il criterio principale per valutare l'algoritmo è"concettualmente potente", allora ho perso.

Se il criterio principale dell'algoritmo è "Semplicità, velocità e convenienza ", vinco io.

A questo punto possiamo chiudere l'argomento.

 
fxsaber:

  1. Per quale motivo lo stile è tale che le interfacce sono scritte prima, e solo dopo le classi (come discendenti delle loro rispettive interfacce)?
  2. Perché si fa questo? (StringToUpper(generatorName);)
  3. Ovviamente se ne sono dimenticati.




Un po' sorpreso che l'abbiano fatto tramite CArrayList invece di usare la appena discussa HashMap. Non avrebbe dovuto essere guidato dall'originale storto dell'autore, dove le transazioni sono indici, non biglietti.

HashMap sarebbe stato più chiaro, più pratico e più veloce, molto probabilmente.


Mi sono sorpreso che tale codice si legga facilmente. Tuttavia, non ho ancora raggiunto il livello di astrazione mostrato nella programmazione. Il mio stile finora è procedurale + OOP. Questo codice è puro OOP. A quanto pare si tratta di una scuola di programmazione ben imparata. Solo il lavoro diStanislav Korotky su questo sito ha un livello di astrazione simile.


1) Lo stile è tale per l'integrazione.
Se avete bisogno di testare la vostra classe, potete ereditare e implementare l'interfaccia per il test.
Se hai bisogno del tuo generatore, puoi ereditarlo.


2) Sì, è ridondante, eccessivo, grazie:

StringToUpper(generatorName);



3) No, non l'ho fatto:

      //TODO add shared_ptr / move out generator (Dependency Injection)
      IGenerator<T>* generator = CreateGenerator<T>();

È stato originariamente scritto sottoshared_ptr, di cui non ho un'implementazione.
Ma è una buona idea mettere la dipendenzaIGenerator<T> nei parametri della funzione per i test.

 
Sergey Dzyublik:

3) No, non l'ho dimenticato:

È stato originariamente scritto sottoshared_ptr, di cui non ho un'implementazione.

Capisco, non l'avevo notato.

 
Lunghezza della stringa, sai quanti caratteri al massimo?
 
Renat Akhtyamov:
Lunghezza della stringa, non so - quanti caratteri al massimo?

Sto aspettando una risposta:

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

Algoritmi, metodi di soluzione, confronto delle loro prestazioni

Vladimir Karputov, 2017.12.11 08:37

Correggetemi, ma la lunghezza della stringa non è finita?

https://msdn.microsoft.com/ru-ru/library/sx08afx2.aspx

Non riesco proprio a trovare questa limitazione per MQL5...


 

C'è un chiaro schema di ripetuta mancanza di rispetto per la comunità e un chiaro schema di provocazione.

Non leggerlo (i post di una persona in vari thread costruttivi) non è sempre possibile, dopo di che svilupparlo e dimenticarlo - ancora meno.

Trolling e spitting nelle mani di aiuto, il cui numero distingue notevolmente questa risorsa dal lato positivo.


Potrebbe essere sbagliato.

 
Vladimir Karputov:

Correggetemi, ma la lunghezza delle stringhe non è finita?

Solo limite di memoria

void OnStart()
{
  string Str;
  
  Print(StringInit(Str, 1 e8)); // true - 100 Mb
}
 
Реter Konow:

1. cioè, la velocità dell'algoritmo non è importante. La soluzione è "concettualmente potente" e questo è sufficiente. Ok.

2. Quindi, basta collegarsi tramite il plug-in ed è tutto? Ok.

//--------------------------------------------------------------------

Se il criterio principale per valutare l'algoritmo è"concettualmente potente", allora ho perso.

Se il criterio principale per valutare l'algoritmo -"semplicità, velocità e convenienza" - allora vinco.

Si può chiudere il tema su questo punto.


Mi dispiace, non si può, mi pento.
Ma che persona stupida sei.
Il problema non è che qualcuno non sa qualcosa, ma la totale mancanza di desiderio di imparare qualcosa.

Che differenza fa 10ms uno o 8ms l'altro.
Se avete solo bisogno di confrontare relativamente chi è più veloce e di quanto, ricordando di controllare la fedeltà.

 
fxsaber:

Solo limitazione di memoria

OOO !!!!!

Grazie mille!

perché la mia corda è sottosquadro e non sapevo come aumentare la lunghezza

Non rovinare il thread, non litigare qui.

 

soluzione attraverso il foglio - tanto codice.... Non potresti essere più specifico?

Sto solo cercando di renderlo chiaro agli altri)

In generale, anch'io non riesco a prendere l'abitudine di usare le librerie standard - e penso che molte persone qui abbiano le loro versioni dello stesso foglio.

stesso problema

cioè salviamo tutti i valori, ticker con un magik - prezzo, prezzo aperto, tempo, prezzo di chiusura. cioè sarà per la contabilità degli ordini virtuali

In effetti, la soluzione più veloce sarebbe quella di memorizzare tutte le informazioni nella struttura. E qui gli accessi saranno fatti attraverso l'indice di riferimento ordinato sammiva.


A proposito, la questione di come definire una stampa. possono essere alcune soluzioni già pronte. In poche parole dovrebbe stampare non così spesso - ma prima del fallimento dovrebbe scaricare le informazioni necessarie, o in qualche modo adattarsi comodamente a questo modo - e preferibilmente senza le variabili globali

Motivazione: