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
Tu pensi in categorie di amebe :).
" Dovremmo dimenticare le piccole efficienze, diciamo circa il 97% del tempo: l 'ottimizzazione prematura è la radice di tutti i mali. Eppure non dovremmo perdere le nostre opportunità in quel 3% critico".
Questa è la quarta volta che vengo citato su questo forum.
Non ci vuole molta intelligenza per citare e copiare, anche una scimmia può cercare di impararlo. :)
Ma spiegare il tuo pensiero in modo cosciente - è più difficile e sta già rivendicando il livello dell'homo sapiens.
Allora, vuoi provare a dargli un senso o non sei ancora a quel livello? :)
Da un paio d'anni sono periodicamente tormentato dall'idea di implementare un tester di strategie multi-valuta.
Ho visto diverse implementazioni, ho letto idee e ho anche guardato MT5.
Voglio dire, perché ne ho bisogno se c'è una MT5 dove la multivaluta è già implementata nel terminale?
Scrivere un tester interno di strategie multivaluta senza bug è un compito molto complesso che raramente viene completato.
Vi consiglio di riprovare MetaTrader 5 in versione 64 bit:
- multivaluta e tester dettagliato di strategie di trading
- tutti i dati storici, compresa la cronologia degli spread, sono pronti
- Laversione a 64 bit di MetaTrader 5 permette di lavorare con enormi quantità di dati (basta mettere 8/12/16 Gb di memoria)
- La velocità del codice MQL5 è diverse volte più veloce di MQL4 (codice nativo compilato con SSE2 attivo)
- MQL5 orientato agli oggetti permette di scrivere Expert Advisors molto più sofisticati
- Un tester distribuito permette di utilizzare più agenti remoti per i test
È meglio usare uno strumento che è stato provato e testato molte volte ed è attivamente sviluppato e supportato dagli sviluppatori.L'ottimizzazione del codice richiede un minimo di comprensione di quanto un frammento di codice richieda risorse in termini di operazioni elementari eseguite (addizione, moltiplicazione, accesso alla memoria, calcolo degli indirizzi, ecc.) Senza questo, nessuna ottimizzazione è possibile in linea di principio e anche il miglior compilatore sarà impotente contro questo povero programmatore. Sembra una cosa ovvia, ma vedo che questa può essere una grande novità anche per molti programmatori. :)
Non posso permettermelo, ma vorrei davvero esprimermi con fermezza nella tua direzione, ma va bene, supponiamo che il tuo esempio di inettitudine e testardaggine chiarisca le cose a molte persone
Sei attaccato all'efficienza immaginaria del tuo semplice indirizzamento, gli esempi che ho dato e le basi della scrittura di codice efficiente - sei incapace di leggere e capire, andiamo dall'area 2x2:
c'è un compito, ma un compito difficile )) - il trucco è vitale - il cliente come sempre chiede un codice minimo, che nel processo di lavoro acquisisce versatilità - i numeri nella lista qui sotto
1. scrivere una funzione per moltiplicare matrici bidimensionali
2. scrivere una funzione per la moltiplicazione di matrici tridimensionali
3. e puoi scrivere una funzione universale - X * Y?
4. puoi trovare una matrice inversa?
- un normale programmatore scrive una funzione che moltiplica l'array X[2] [2] * Y[2][2].
- con la vostra "logica" - scrivete un codice incredibilmente veloce che consisterà in una matrice X[4] e Y[4] e una funzione per moltiplicare X[4] * Y[4] e assicuratevi di usare una funzione per convertire gli stupidi dati di ingresso/uscita come una matrice bidimensionale nei dati corretti - una matrice unidimensionale, e studiate l'algebra delle matrici e scrivete trasformazioni equivalenti per matrici unidimensionali
- Il primo programmatore comincia ad aggiungere l'universalità alla sua funzione; non posso nemmeno immaginare cosa farete (sarà molto difficile controllare la moltiplicazione di matrici ventidimensionali convertite in array unidimensionale con una matita); e finalmente appare un programmatore con OOP e definisce la classe base - matrice e disegna il metodo di moltiplicazione delle matrici;
- Non voglio nemmeno immaginare cosa farete con il quarto compito, perché questo "cliente astuto con idee nuove e brillanti" può apparire all'orizzonte; il programmatore con OOP aggiunge solo un metodo per trovare la matrice inversa; e, inoltre, aggiunge tutte le operazioni di matrice e le distribuisce agli altri programmatori, in modo che non si arrabbino dopo
Se riuscite a realizzare che cosa è un codice con la programmazione abituale, con OOP e con le vostre "idee brillanti" (il vostro codice crescerà a valanga di dimensioni dal secondo compito e l'efficienza è fuori questione) - capirete cosa è la programmazione efficiente, e sì, ho dimenticato - gli errori di matrice hanno bisogno di controllo - dovete ancora lavorare un po' )))))))))))))))
Quello che stai cercando di argomentare è già stato sperimentato dai programmatori di tutto il mondo, credimi, nessun Bill Gates può farti programmare in OOP se non è efficace, tutto dipende dalle prospettive del progetto - se il progetto si espanderà - senza OOP sarà una perdita di tempo e sarà scritto un vasto codice senza flessibilità e versatilità
Beh, bisogna confondere e mescolare in un mix di serpenti a sonagli diverse cose. :)
Uno è una fonte di informazione che è oggettiva e l'altro è un ricevitore che è soggettivo perché non è sempre in grado di percepire tutte le informazioni, ma solo una parte di esse.
niente del genere. L'informazione ha senso solo se applicata a una particolare fonte e a un particolare destinatario. Non può esistere un'informazione "assoluta" per noi, perché avendola toccata o misurata, diventiamo immediatamente un ricevitore soggettivo. Ne consegue che è fondamentalmente impossibile provare o confutare l'esistenza di informazioni oggettive in qualsiasi fonte - è come discutere sulla presenza/assenza di Dio.
E la nozione stessa di informazione, in generale, nasce solo quando si scelgono sia la fonte che il ricevitore.
niente del genere. Le informazioni hanno senso solo se applicate a una fonte e a un ricevitore specifici. Non può esistere un'informazione "assoluta" per noi, perché avendola toccata o misurata, diventiamo immediatamente un ricevitore soggettivo.
Naturalmente c'è sempre una fonte di informazione. Non c'è altro modo di guardare le informazioni.
Un'informazione senza fonte semplicemente non può esistere. :) Beh, se c'è una fonte di informazione oggettiva, l'informazione proveniente da essa sarà oggettiva di per sé. Il ricevitore di informazioni sarà sempre soggettivo, ma può avvicinarsi all'oggettività con una precisione infinita se percepisce tutte le informazioni senza distorsioni.
- Con la tua "logica", devi semplicemente scrivere un codice incredibilmente veloce con array X[4] e Y[4] e una funzione per moltiplicare X[4] * Y[4] e sicuramente una funzione per convertire stupidi dati di input/output in un array bidimensionale in un valido dato unidimensionale e studiare l'algebra delle matrici e scrivere trasformazioni equivalenti per matrici unidimensionali.
Purtroppo non hai capito la cosa semplice, che ho cercato di portare alla tua comprensione, ma vedo che è inutile perché se l'idraulico (per esempio) decidesse improvvisamente di riqualificarsi temporaneamente come programmatore, rimane comunque un idraulico e pensa come un idraulico, la cui cosa principale è la lunghezza dei tubi posati sul terreno. :)
Il criterio di ottimizzazione del programma non è la lunghezza del codice, ma il numero di operazioni per un particolare compito. Se vi viene richiesto di moltiplicare solo una matrice bidimensionale, mentre implementate casi molto più generali e inutili, va da sé che nessuno vi ringrazierà per tale dilettantismo.
La soggettività del ricevitore non è che riceve in modo impreciso ciò che proviene dalla fonte, ma che questo flusso che gli arriva può essere interpretato in modi diversi. Lo stesso flusso di bit può essere un'informazione completamente diversa, vedete?
Andrei01, scusa, ma non capisco perché stai scrivendo qualcosa qui. È per il robo-rating o qualcosa del genere? I tuoi post sono percepiti come una sorta di rumore fluviale che non contiene alcun segnale utile per questo thread. Si prega di filtrare il flusso in uscita: la gente legge, non i robot...
1. La soggettività del ricevitore non è che riceve in modo impreciso ciò che proviene dalla fonte, ma che questo flusso che gli arriva può essere interpretato in modi diversi. Lo stesso flusso di bit può essere un'informazione completamente diversa, vedete?
Andrei01, scusa, ma non capisco per quale motivo stai scrivendo qualcosa qui. È per la valutazione dei robot o cosa? I tuoi post sono percepiti come una sorta di rumore fluviale senza alcun segnale utile per questo thread. Si prega di filtrare il flusso in uscita - la gente legge, non i robot...
1. Il fatto che il ricevente interpreti l'informazione in modo diverso, a seconda delle sue ragioni, è solo un'indicazione che è soggettivo.
2. Mathemat, purtroppo non ho afferrato il significato di questa frase. Ci hai messo troppo rumore eccessivo. :) A proposito, è un esempio del fatto che la fonte dell'informazione può anche allagare, cioè generare deliberatamente informazioni senza senso. :)
Purtroppo non hai capito la cosa semplice, che ho cercato di portare alla tua comprensione, ma vedo che è inutile, perché se un idraulico (per esempio) decidesse di riqualificarsi temporaneamente come programmatore, rimane comunque un idraulico e pensa come un idraulico, la cui cosa principale è la lunghezza dei tubi posati sul terreno. :)
Il criterio di ottimizzazione del programma non è la lunghezza del codice, ma il numero di operazioni per un particolare compito. Se vi viene richiesto di moltiplicare solo una matrice bidimensionale, e implementerete casi molto più generali e inutili, va da sé che nessuno vi ringrazierà per tale dilettantismo.
Purtroppo, si pensa solo in termini di "risoluzione del problema subito e direttamente", e non si pensa ai futuri cambiamenti nell'algoritmo di funzionamento del programma
Si tratta di compiti altamente specializzati che vengono risolti in 20-30 minuti grazie alla loro facilità di implementazione, oppure questi compiti sono già stati implementati in progetti più grandi.
C-4 ha già detto che gli algoritmi di trading basati sul MACD stanno diventando una cosa del passato, non lo ripeterò
SZY: studiate almeno alcuni sviluppi nell'ottimizzazione del codice, se questo è un punto dolente per voi, ecco le cose che la gente ha risolto: http: //www.realcoding.net/article/rubric/code_optim?page=6
Vi saluto ancora una volta in questo thread, non vedo il bisogno di ripetermi, chi vuole capire cos'è l'OOP e la programmazione efficiente, penso che lo capirà o lo cercherà su Google da solo?
Sbagliato di nuovo. L'interpretazione del flusso in arrivo è il compito di colui che sta sopra il ricevitore e stabilisce le condizioni del gioco. Il ricevitore è di ferro; macina le informazioni secondo l'algoritmo stabilito per lui dal Game Master. In questo senso è completamente e strettamente oggettivo, perché è un ferro muto. Ma soggettivo è il Maestro.
Sapevate che le informazioni possono essere interpretate in modo diverso, a seconda del contesto del compito da svolgere?