Sur une application de l'OOP - page 5

 
Dmitry Fedoseev:

Est-ce que ça fait une différence si tu écris comme ça à chaque fois :

SymbolInfoDouble(Symbol(),SYMBOL_ASK) 

ou comme ça :

s.Ask() 

?

Y a-t-il une différence entre :

a<- b

и

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

{

a[i] = b[i]

}

Et il y en a de plus intéressants, par exemple :

c <- b*a

où tous les identifiants sont des matrices et cette opération matricielle est effectuée en utilisant le code le plus efficace pour Windows.

? ?????

Il ne s'agit pas de ça.

Alors que MQL4 était un langage parfaitement équilibré entre simplicité et possibilités, de nombreux codeurs ont commencé à discuter de tous les "goodies" et n'ont pas pu se calmer. Et c'est comme ça qu'ils ont eu le trou du cul et le HAPPENING des pertes.

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

Y a-t-il une différence entre :

a<- b

и

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

{

a[i] = b[i]

}

Et il y en a de plus intéressants, par exemple :

c <- b*a

où tous les identifiants sont des matrices et cette opération matricielle est effectuée en utilisant le code le plus efficace pour Windows.

? ?????

Il ne s'agit pas de ça.

Alors que MQL4 était un langage parfaitement équilibré entre simplicité et possibilités, de nombreux codeurs ont commencé à discuter de tous les "goodies" et n'ont pas pu se calmer. Et c'est comme ça qu'ils ont eu le trou du cul et le HAPPENING des pertes.

Il est incorrect de comparer des langages fonctionnant avec des matrices et des nombres.
 
СанСаныч Фоменко:

Y a-t-il une différence entre :

a<- b

и

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

{

a[i] = b[i]

}

Et il y en a de plus intéressants, par exemple :

c <- b*a

où tous les identifiants sont des matrices et cette opération matricielle est effectuée en utilisant le code le plus efficace pour Windows.

? ?????

Il ne s'agit pas de ça.

Alors que MQL4 était un langage parfaitement équilibré entre simplicité et possibilités, de nombreux codeurs ont commencé à discuter de tous les "goodies" et n'ont pas pu se calmer. Donc ils ont eu un trou du cul et un tas de pertes.

Ce qui était, tout reste. Si vous ne le voulez pas, n'utilisez pas la POO. Tu n'as pas besoin de toucher à l'OLP, tu n'as pas besoin d'y penser, tu peux vivre comme avant.

Après votre "avec <- b*a" avant d'ouvrir une position, un certain nombre d'actions doivent encore être effectuées, si vous les effectuez en utilisant la POO, la vie devient plus agréable et amusante.

Pourquoi ne vous plaignez vous pas auprès des créateurs de R ou matlab du fait qu'il est impossible d'ouvrir des positions à partir de ces programmes et en général, qu'ils ne sont pas liés directement à l'exécution des transactions ? Vous pouvez accéder à n'importe quel langage de programmation de la même manière, presque aucun langage n'a d'action avec les matrices, etc. Vous comparez des choses de catégories différentes.

 
Dmitry Fedoseev:

Ce qui était là, tout est là. Si vous ne le voulez pas, n'utilisez pas la POO. Vous ne devez pas toucher à l'OOP, vous ne devez pas y penser, vous vivez comme avant.

Après votre "avec <- b*a" avant d'ouvrir une position il y a encore un certain nombre d'actions à effectuer, si vous les effectuez en utilisant la POO la vie devient plus agréable et plus amusante.

Pourquoi ne vous plaignez vous pas auprès des créateurs de R ou matlab du fait qu'il est impossible d'ouvrir des positions à partir de ces programmes et en général, qu'ils ne sont pas liés directement à l'exécution des transactions ? Vous pouvez accéder à n'importe quel langage de programmation de la même manière, presque aucun langage n'a d'action avec les matrices, etc. Vous comparez des choses de catégories différentes.

Permettez-moi d'ajouter qu'en utilisant la POO, si nécessaire, vous pouvez créer une classe CMatrix qui met en œuvre les opérations matricielles et remplacer + - * / = dans cette classe.

Et tout serait aussi simple que cela. Je n'ai même pas besoin de créer une CMatrix, tout a déjà été mis en œuvre dans l'une des bibliothèques.

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

Au fait, je vais bouleverser San-Sanych ;)). Cher Monsieur, savez-vous que votre R préféré possède également deux systèmes OOP ? )))))))). Mais ne vous soûlez pas avec le chagrin ;))

R. Ce langage d'analyse de données statistiques dispose également de 2 systèmes de programmation orientés objet, S3 et S4. Tous deux sont hérités du langage S (ce qui n'est pas surprenant étant donné que R est une implémentation open source du langage commercial S). S4 est, pour l'essentiel, cohérent avec les implémentations de la POO des principaux langages modernes. S3 est une variante plus légère, élémentaire, mise en œuvre au moyen du langage lui-même : une fonction générale est créée, qui répartit les demandes selon l'attribut "class" de l'objet reçu.

 
Alexey Volchanskiy:

De plus, en utilisant la POO, si nécessaire, vous pouvez créer une classe CMatrix qui implémente les opérations matricielles et remplacer + - * / = dans celle-ci.

Et tout sera aussi facile. Je n'ai même pas besoin de créer CMatrix, tout a déjà été mis en œuvre dans l'une des bibliothèques.

Vous pouvez, mais SanSan8 vous répondra que ce ne serait pas fait de la meilleure façon, dans ce R, comme le croit SanSan8, ces opérations matricielles sont faites de la meilleure façon, probablement en codant en langage assembleur pur.

La différence avec R est que dans R tout est prêt, il suffit de le prendre et de l'utiliser, alors qu'ici vous devez tout faire vous-même.

 
Dmitry Fedoseev:
Vous pouvez, mais SanSan8 répondra que ce ne serait pas fait de la meilleure façon, c'est comme dans ce R, comme SanSan8 le pense, ces opérations matricielles sont faites de la meilleure façon, probablement en codant sur l'assembleur pur.

J'ai ajouté à mon message précédent - il s'avère que R a OOP. (Terrible)).

Au fait, j'ai essayé ce R - c'est un frein rare. Pas étonnant - c'est un interprète. Donc, pas d'Asm.

 
Alexey Volchanskiy:

J'ai ajouté à mon message précédent - il s'avère que R a OOP. (Terrible)).

Au fait, j'ai essayé ce R - c'est un frein rare. Pas étonnant - c'est un interprète. Donc, pas d'Asm.

Si vous ne savez pas comment cuisiner des chats, gardez le silence...

R. Ce langage d'analyse de données statistiques dispose également de 2 systèmes de programmation orientés objet

Et alors ? Il y a beaucoup plus là-dedans que MQL n'a pas. Et alors ?

Ce n'est pas la question. La supériorité algorithmique d'une langue par rapport à une autre n'a aucune importance à partir d'un certain seuil de capacité par rapport au domaine concerné.

Vous êtes en train de mâcher les goûts des codeurs ici, et personnellement je suis ici pour le bien du commerce.

PS.

Vos classes matricielles devront utiliser la bibliothèque Intel pour les opérations matricielles, alors peut-être que vous égalerez R en la matière.

 
Vasiliy Sokolov:

Voilà. Hiérarchie des classes commerciales dans la bibliothèque standard :

Cela implique que le module de gestion de l'argent est un conseiller expert. L'arrêt suiveur est également un conseiller expert. Expert Advisor comprend d'autres Expert Advisors. Cet héritage incohérent résulte du fait que le trailing stop et le money management ont tous deux besoin d'accéder à certaines données et méthodes privées du conseiller expert de base.

Eh bien, c'est juste un système de classe mal conçu.

D'un autre côté, mon modèle de conseiller expert est entièrement basé sur les classes de la bibliothèque standard, et je ne vois pas de problèmes particuliers. L'idéologie de la fabrique de pièces du conseiller expert est implémentée. Pour l'utilisateur de classes, l'écriture d'une EA consiste à écrire cette même fabrique, qui peut créer un générateur d'entrées, de filtres, de définisseurs de SL-TP, et d'autres composants de la TS.

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

Il y avait MQL4 - un langage parfaitement équilibré entre simplicité et fonctionnalités, mais non, une bande de codeurs a commencé à parler de "goodies" et n'arrive pas à se calmer. Et c'est ce que nous avons obtenu - un trou du cul et une perte de pertes.

Quelque chose que je ne comprends pas... Eh bien, n'utilisez pas les innovations MQL5, c'est tout.

J'aime beaucoup l'héritage et les fonctions virtuelles. Mais quand je veux faire quelque chose de simple dans l'urgence - je ne les utilise pas. Dans le même temps, lorsqu'un traitement complexe de données complexes est nécessaire, la POO permet de le faire de manière beaucoup plus pratique et, ce qui est important, la maintenance ultérieure est également très facile.

 
George Merts:

Je ne comprends pas... Eh bien, n'utilisez pas les innovations de MQL5, c'est tout.

J'aime beaucoup l'héritage et les fonctions virtuelles. Mais quand je veux faire quelque chose de simple en vitesse, je ne les utilise pas. En même temps, lorsqu'un traitement complexe de données complexes est nécessaire, il est beaucoup plus pratique d'utiliser la POO et, ce qui est important, la maintenance ultérieure est également très facile.

Je serais tout à fait d'accord avec vous, si ce n'était d'une circonstance désagréable : MQL n'a AUCUN outil pour l'analyse statistique des cotations. Ceci est particulièrement visible lorsqu'il s'agit de R. Chaque broutille nécessite une programmation. Et je suis même silencieux quand on parle de modèles.

Mais ce n'est pas tout.

Les bibliothèques externes sont interdites, d'où la place de marché R. S'il n'y avait pas cette restriction, je deviendrais simplement riche sans aucun risque en vendant des indicateurs de très haute qualité.

Mais ce n'est pas tout.

Le site dispose d'un groupe de codeurs de combat qui affirment haut et fort qu'il s'agit d'un site de programmation, et que les messages liés au commerce sont donc inappropriés.

C'est le contexte de la POO. Sinon, c'est une question de goût.

Raison: