Su un'applicazione dell'OOP - pagina 5

 
Dmitry Fedoseev:

Fa differenza se si scrive così ogni volta:

SymbolInfoDouble(Symbol(),SYMBOL_ASK) 

o come questo:

s.Ask() 

?

C'è una differenza tra:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

E ce ne sono di più interessanti, per esempio:

c <- b*a

dove tutti gli identificatori sono matrici e questa operazione di matrice viene eseguita utilizzando il codice più efficiente per Windows.

??????

Non si tratta di questo

Quando MQL4 era un linguaggio perfettamente bilanciato tra semplicità e possibilità, un sacco di codificatori hanno iniziato a discutere di tutte le "chicche" e non riuscivano a calmarsi. Ed è così che hanno ottenuto lo stronzo e l'avvenimento delle perdite.

 
СанСаныч Фоменко:

C'è una differenza tra:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

E ce ne sono di più interessanti, per esempio:

c <- b*a

dove tutti gli identificatori sono matrici e questa operazione di matrice viene eseguita utilizzando il codice più efficiente per Windows.

??????

Non si tratta di questo

Quando MQL4 era un linguaggio perfettamente bilanciato tra semplicità e possibilità, un sacco di codificatori hanno iniziato a discutere di tutte le "chicche" e non riuscivano a calmarsi. Ed è così che hanno ottenuto lo stronzo e l'avvenimento delle perdite.

Non è corretto paragonare i linguaggi che operano con matrici e numeri.
 
СанСаныч Фоменко:

C'è una differenza tra:

a<- b

и

for(i = 1; i < 1000; i++)

{

a[i] = b[i]

}

E ce ne sono di più interessanti, per esempio:

c <- b*a

dove tutti gli identificatori sono matrici e questa operazione di matrice viene eseguita utilizzando il codice più efficiente per Windows.

??????

Non si tratta di questo

Quando MQL4 era un linguaggio perfettamente bilanciato tra semplicità e possibilità, un sacco di codificatori hanno iniziato a discutere di tutte le "chicche" e non riuscivano a calmarsi. Quindi hanno uno stronzo e un sacco di perdite.

Ciò che era, tutto rimane. Se non vuoi, non usare OOP. Non devi toccare l'OLP, non ci devi pensare, puoi vivere come prima.

Dopo il tuo "con <- b*a" prima di aprire una posizione, un certo numero di azioni devono ancora essere eseguite, se le esegui usando OOP, la vita diventa più piacevole e divertente.

Perché non ti lamenti con i creatori di R o matlab del fatto che è impossibile aprire posizioni da questi programmi e in generale, che non sono legati direttamente all'esecuzione dei trade? Si può arrivare a qualsiasi linguaggio di programmazione allo stesso modo, quasi nessun linguaggio ha azioni con matrici ecc. State confrontando cose di categorie diverse.

 
Dmitry Fedoseev:

Quello che c'era, è tutto lì. Se non vuoi, non usare OOP. Non devi toccare l'OOP, non devi pensarci, vivi come prima.

Dopo il tuo "con <- b*a" prima di aprire una posizione ci sono ancora una serie di azioni da eseguire, se le esegui usando OOP la vita diventa più piacevole e più divertente.

Perché non ti lamenti con i creatori di R o matlab del fatto che è impossibile aprire posizioni da questi programmi e in generale, che non sono legati direttamente all'esecuzione dei trade? Si può arrivare a qualsiasi linguaggio di programmazione allo stesso modo, quasi nessun linguaggio ha azioni con matrici ecc. State confrontando cose di categorie diverse.

Lasciatemi aggiungere, usando OOP, se necessario, potete creare una classe CMatrix che implementa le operazioni di matrice e sovrascrivere + - * / = in essa.

E tutto sarebbe così semplice. Non ho nemmeno bisogno di creare un CMatrix, tutto è già stato implementato in una qualsiasi delle librerie.

CMatrix m1, m2;
// заполняем матрицы
CMatrix m3 = m1 + m2;

A proposito, vado a sconvolgere San-Sanych )). Caro signore, sa che anche il suo R preferito ha due sistemi OOP? )))))))) Basta non ubriacarsi di dolore ))

R. Questo linguaggio per l'analisi statistica dei dati ha anche 2 sistemi di programmazione orientati agli oggetti, S3 e S4. Entrambi sono ereditati dal linguaggio S (il che non è sorprendente dato che R è un'implementazione open source del commerciale S). S4 è, per la maggior parte, coerente con le implementazioni OOP dei moderni linguaggi mainstream. S3 è una variante più leggera, implementata elementarmente tramite il linguaggio stesso: viene creata una funzione generale, che distribuisce le richieste in base all'attributo "class" dell'oggetto ricevuto.

 
Alexey Volchanskiy:

Inoltre, usando OOP, se necessario, puoi creare una classe CMatrix che implementa le operazioni di matrice e sovrascrivere + - * / = in essa.

E tutto sarà così semplice. Non ho nemmeno bisogno di creare CMatrix, tutto è già stato implementato in una qualsiasi delle librerie.

Puoi, ma SanSan8 ti risponderà che non sarebbe fatto nel modo migliore, in questo R, come SanSan8 crede, queste operazioni di matrice sono fatte nel modo migliore, probabilmente codificando in puro linguaggio assembly.

La differenza con R è che in R tutto è pronto, basta prenderlo e usarlo, mentre qui devi fare tutto da solo.

 
Dmitry Fedoseev:
Si può, ma SanSan8 risponderà che non sarebbe fatto nel modo migliore, è come in questo R, come pensa SanSan8, queste operazioni di matrice sono fatte nel modo migliore, probabilmente codificando sull'assemblatore puro.

Ho aggiunto al mio post precedente - risulta che R ha OOP. (Terribile)).

A proposito, ho provato questo R - è un freno raro. Non c'è da stupirsi - è un interprete. Quindi, niente Asm.

 
Alexey Volchanskiy:

Ho aggiunto al mio post precedente - risulta che R ha OOP. (Terribile)).

A proposito, ho provato questo R - è un freno raro. Non c'è da stupirsi - è un interprete. Quindi, niente Asm.

Se non sai cucinare i gatti, taci...

R. Questo linguaggio per l'analisi statistica dei dati ha anche 2 sistemi di programmazione orientati agli oggetti

E allora? C'è molto di più lì dentro che MQL non ha. E allora?

Non è questo il punto. La superiorità algoritmica di una lingua rispetto a un'altra non ha alcuna importanza dopo una certa soglia di capacità rispetto alla materia.

Qui si masticano i gusti dei codificatori, e personalmente sono qui per il bene del commercio.

PS.

Le vostre classi matriciali dovranno usare la libreria Intel per le operazioni matriciali, poi forse eguaglierete R in questa materia.

 
Vasiliy Sokolov:

Ecco a voi. Gerarchia delle classi commerciali nella libreria standard:

Implica che il modulo di gestione del denaro è un Expert Advisor. Il trailing stop è anche un Expert Advisor. Expert Advisor include altri Expert Advisor. Questa eredità incoerente deriva dal fatto che sia il trailing stop che il money management hanno bisogno di accedere ad alcuni dati e metodi privati dell'Expert Advisor di base.

Beh, questo è solo un sistema di classi mal concepito.

D'altra parte, il mio modello di Expert Advisor è basato interamente sulle classi della Libreria Standard, e non vedo particolari problemi. L'ideologia della fabbrica delle parti di Expert Advisor è implementata. Per l'utente di classi, scrivere un EA consiste nello scrivere proprio questo factory, che può creare un generatore di ingressi, filtri, definitori di SL-TP, e altri componenti del TS.

 
СанСаныч Фоменко:

C'era MQL4 - un linguaggio perfettamente bilanciato tra semplicità e caratteristiche, ma no, un gruppo di codificatori ha iniziato a parlare di "chicche" e non riesce a calmarsi. E questo è ciò che abbiamo: uno stronzo e una perdita di perdite.

Qualcosa che non capisco... Beh, non usare le innovazioni MQL5, tutto qui.

Mi piace molto l'ereditarietà e le funzioni virtuali. Ma quando voglio fare qualcosa di semplice in fretta - non li uso. Allo stesso tempo, quando è richiesta l'elaborazione di dati complessi - con OOP è fatto molto più convenientemente e, cosa importante, l'ulteriore manutenzione è anche molto facile.

 
George Merts:

Non capisco... Beh, non usate le innovazioni di MQL5, tutto qui.

Mi piace molto l'ereditarietà e le funzioni virtuali. Ma quando voglio fare qualcosa di semplice in fretta - non li uso. Allo stesso tempo, quando è richiesta l'elaborazione di dati complessi, è molto più conveniente usare OOP e, cosa importante, la manutenzione successiva è anche molto facile.

Sarei completamente d'accordo con te, se non fosse per una circostanza spiacevole: MQL non ha alcuno strumento per l'analisi statistica delle quotazioni. Questo è particolarmente evidente quando si tratta di R. Ogni sciocchezza richiede una programmazione. E sono anche silenzioso quando si parla di modelli.

Ma non è tutto.

Le librerie esterne sono vietate, da qui il mercato R. Se non fosse per questa restrizione, diventerei semplicemente ricco senza alcun rischio vendendo indicatori di altissima qualità.

Ma non è tutto.

Il sito ha un gruppo di codificatori da battaglia che sostengono con entusiasmo che questo è un sito di programmazione, quindi i post relativi al commercio sono inappropriati.

Questo è lo sfondo dell'OOP. Altrimenti, è una questione di gusto.