Quelqu'un a-t-il créé un système de trading automatisé efficace ? Quel est votre conseil ? - page 16

 
Aleksei Stepanenko #:
Super ! Qu'en est-il du profit avec OOP. Est-ce que ça ira tout de suite après que vous l'ayez appris ?

La POO vous donne la possibilité d'écrire un code compact, clair et élégant. Vous passez plusieurs fois moins de temps à écrire, modifier et déboguer du code, ce qui est très coûteux. Vous pouvez construire un système de trading beaucoup plus sophistiqué et essayer beaucoup plus d'options de trading. Bien sûr, si vous n'avez pas d'idées pour un bot rentable, il vaut mieux ne rien faire du tout. En outre, il ne faut pas oublier la probabilité de perte directe en cas de bogues, dont la probabilité est beaucoup plus faible dans un bon code POO.

 
Вадим Калашнков #:

La POO vous donne la possibilité d'écrire un code compact, clair et élégant.

Ce n'est pas le cas.

 
PapaYozh #:

Ce n'est pas le cas.

Eh bien, si vous définissez une tâche pour la compliquer délibérément, alors oui, il y a plus d'occasions de la compliquer délibérément avec la POO.

Mais si vous ne devenez pas comme le singe à lunettes, vous obtenez un code beaucoup plus clair, plus structuré et plus facile à maintenir avec la POO.

 

Je ne suis pas contre le POO, mes amis. J'aime son idée d'objet. Et je l'utilise partiellement, mais sous la forme de structures, ou plutôt d'un tableau de structures. En trading, il suffit de stocker toutes les données d'un graphique et de ne pas exécuter de boucles sur chaque barre. Mais je pense que c'est tout ce dont nous avons besoin. Bien sûr, on peut tout écrire en POO, ceux qui en ont l'habitude. Mais ils sont aussi loin d'être rentables que les procéduriers. Toute la question est dans le système rentable, si vous l'avez, vous pouvez l'écrire par goto-code :)

Le sujet de la branche plane sur la manière de le résoudre.

 
Aleksei Stepanenko #:

Et je l'utilise en partie, mais sous la forme de structures, ou plutôt, d'un ensemble de structures.


En Java, il a même son propre nom : POJO (Plain Old Java Object).

;)

 
Georgiy Merts #:

Le code POO est sensiblement plus clair, plus structuré et plus facile à maintenir.

Ce n'est pas toujours le cas et cela ne dépend pas de la POO, mais de la propreté du code, du nommage.

 
Aleksei Stepanenko #:

Je ne suis pas contre le POA, mes amis. J'aime son idée d'objet. Et je l'utilise partiellement, mais sous la forme de structures, ou plutôt d'un tableau de structures. En trading, il suffit de stocker toutes les données d'un graphique et de ne pas exécuter de boucles sur chaque barre. Mais je pense que c'est tout ce dont nous avons besoin. Bien sûr, on peut tout écrire en POO, ceux qui en ont l'habitude. Mais ils sont aussi loin d'être rentables que les procéduriers. Toute la question est dans le système rentable, si vous l'avez, vous pouvez l'écrire par goto-code :)

Le sujet de la branche plane sur la manière de le résoudre.

Utiliser des structures n'est pas de la POO. Tous les avantages de la POO commencent lorsque vous commencez à utiliser des modèles de POO. Héritage, singletons, facettes des objets, classes d'interface, etc. De plus, vous ne pouvez pas vous passer de l'OOP si vous avez plus de 2 personnes dans votre équipe. Par exemple :

enum Direction
{
  BUY,
  SELL,
  NO_SIGNAL
};

class Signal
{
public:
  Signal() {}
 ~Signal() {}

  virtual Direction check_signal() { return NO_SIGNAL; }
};

Ensuite, écrivez vous-même ou confiez à 3 personnes le soin d'écrire des signaux, par exemple pour 3 indicateurs différents :

class RSISignal : public Signal
{
public:
  RSISignal() {}
 ~RSISignal() {}

  Direction check_signal() 
  { 
    Direction result;
    // Checking signal with RSI
    return result;
  }
};

L'endroit où le signal est utilisé suffit :

Signal* signal;

switch signal_type
{
  case RSI : signal = new RSI;
  case CCI : signal = new CCI;
  case MA  : signal = new MA;
};

if (signal.check_signal())
.....

Vous, en tant que sénateur, êtes complètement abstrait des implémentations du corps de la fonction. La mise en œuvre et le choix de l'indicateur utilisé ne sont pas importants pour vous. Vous utilisez simplement check_signal et c'est tout. Dans cet exemple, une seule fonction est utilisée. Et s'il y a de nombreuses fonctions dans une classe, vous devez insérer des interrupteurs lorsque l'implémentation dépend de la configuration ou d'un autre choix. De même, si vous utilisez une base de données ou, disons, un fichier journal à plusieurs endroits, vous devez créer une variable globale et contrôler son état à toutes les étapes (si le fichier ou la base de données est ouvert, etc.). Si vous utilisez un singleton dans ce but, vous pouvez être sûr que, quel que soit l'endroit où vous utilisez le fichier de log/objet de base, il y aura toujours une copie de l'objet où vous pourrez rouvrir la base/le fichier, utiliser les drapeaux d'état, faire un log en mémoire tampon pour ne pas écrire sur le disque à chaque sortie, etc. Si vous avez plus de 10 000 lignes de code, la fonctionnalité est un véritable enfer pour le développeur. Et dans six mois, lorsque vous aurez oublié la moitié de votre code, ce sera un véritable enfer de le retravailler. En outre, une bonne conception OOP vous permet d'ajouter de nouvelles fonctionnalités ou de modifier les anciennes sans craindre que tout parte en vrille si vous changez quelque chose quelque part.

 
Valeriy Yastremskiy #:
Quelle est la différence entre la POO de la 5 et celle de la 4 ? L'illumination. La différence entre les paramètres de l'environnement du stock est évidente. Les barres sont numérotées à partir de la fin. Je ne vois pas d'autres différences évidentes dans la langue.

Au minimum, on s'est débarrassé d'un tas de fonctions télescopiques et, surtout, on a ajouté une bibliothèque standard comportant un grand nombre de classes utiles.

 
La connaissance de la programmation opérationnelle me rapprochera-t-elle d'une manière ou d'une autre de mon rêve de gagner 200 livres sur 100 ?
 
Вадим Калашнков #:

Au minimum, on s'est débarrassé d'un tas de fonctions télescopiques et, surtout, on a ajouté une bibliothèque standard avec un grand nombre de classes utiles.

en particulier Object.mqh

tout droit sorti des livres que vous avez malencontreusement cités... un modèle brillant :-)

Lesujet n'est pas de savoir si vous avez bien maîtrisé le cours OOP et appris à le défendre... à mon avis c'est une maîtrise de merde

Bref, prenez vos manuels et allez à l'école demain.