Erreurs, bugs, questions - page 1611

 

Bug dans la nouvelle version du compilateur, build 1354 :

2016.07.08 14:10:04.626 MetaCOT2 COT Absolute Changes (EURUSD,H1) math overflow or undefined calculation detected. Check source code, please

Le message se produit avant même que OnInit ne soit appelé. Aucun objet complexe n'est utilisé. Aucun calcul n'est effectué non plus. Tout fonctionnait bien dans les versions précédentes.

Apparaît lors du chargement d'un indicateur personnalisé.

 
coderex:
voulez-vous std::cout et std::cin ?

Non, c'est passé depuis longtemps.

le fait que printf() dans MQL, contrairement à C++, passe à une nouvelle ligne alors qu'on ne lui demande pas de le faire, n'est pas pratique.

 

Il y a plusieurs erreurs ici en même temps

class B;
class A { public:
        virtual B *f() { Print( __FUNCSIG__ ); return &this; }
};
class B : public A { public:
        virtual B *f() { Print( __FUNCSIG__ ); return &this; }
};
void OnStart() 
{
        A a;
        a.f().f();
}

1. Transformation implicite de la classe de base en classe dérivée. Elle doit être explicite, sinon vous obtiendrez un message d'erreur

        virtual B *f() { Print( __FUNCSIG__ ); return (B *)&this; } //(*)
2. erreur d'exécution : résultat (de bas en haut)

B* B::f()
B* A::f()

Mais si vous le réécrivez en C++, le résultat sera

B* A::f()
B* A::f()

 
Au contraire, il y a aussi une erreur de casting ici. Le transfert de &this vers B* devrait entraîner une erreur. D'un autre côté, c'est censé faire la même chose.
 
Комбинатор:
Au contraire, il y a aussi une erreur de casting ici. Le transfert de &this vers B* devrait entraîner une erreur. Dans les plus, aussi, d'ailleurs.
La conversion explicite est autorisée (vérifier avec C++)
 
A100:
La conversion explicite est acceptable (vérifier en C++)
Besoin de dynamic_cast ici, est-ce que ça marche ?
 
Комбинатор:
Ici nous avons besoin de dynamic_cast, est-ce que ça marche ?
si
        virtual B *f() { Print( __FUNCSIG__ ); return dynamic_cast<B *>( &this ); }

alors le résultat de l'exécution est correct (de bas en haut) :

accès par pointeur invalide
B* A::f()

 
A100:

L'autre distribution dans votre exemple n'est pas correcte.

Il y a donc une erreur dans la conversion de type mql qui devrait se transformer en un cast dynamique, ce qui en fait ne se produit pas ou se produit incorrectement.

 

Messieurs !

MT4 dispose d'une méthode de glisser-déposer très pratique pour définir les ordres stop : lorsque je fais glisser le curseur à l'écart de la ligne de transaction, je peux immédiatement voir le bénéfice qui sera réalisé si la transaction se clôture au prix auquel le curseur est positionné.

Dans mon activité de trading, j'utilise une stratégie pour laquelle j'ai souvent besoin d'un outil similaire, mais pas pour une seule transaction, mais pour TOUTES les transactions ouvertes sur un graphique donné.

C'est-à-dire que lorsque je place le curseur sur un prix quelconque, j'aimerais voir la taille du PROFIT TOTAL, qui sera obtenu si TOUTES les transactions sont fermées au prix auquel le curseur est placé.

Et ce serait un véritable luxe si, lorsque je relâche le bouton de la souris, toutes les transactions ouvertes étaient automatiquement réglées sur les TP et SL corrects pour ce bénéfice, comme c'est actuellement le cas pour une seule transaction.

Peut-être que j'en veux trop, mais j'ai décrit une situation idéale. Je veux au minimum une calculatrice qui saisisse les niveaux et les volumes des transactions ouvertes (toutes les transactions sont unidirectionnelles, soit toutes les ventes, soit tous les achats) et le prix de clôture, et qui donne le bénéfice total à réaliser après la clôture de toutes les transactions lorsqu' un prix donné est atteint. Ou, par exemple, il peut s'agir d'un indicateur sous forme deligne horizontale qui indique le prix auquel le bénéfice du groupe sera nul à la clôture. Je suis en train de le calculer avec une calculatrice de poche mais il est très long et peut provoquer des erreurs.

Je chercherais bien sur le marché moi-même, mais je ne sais pas quoi chercher. Doit-il s'agir d'un conseiller expert, d'un indicateur, d'un robot ou d'autre chose ? S'il n'y a rien de prêt, je suis prêt à discuter des termes d'une commande pour l'écriture d'un tel outil.
 
vodoleyvl:

Messieurs !

MT4 dispose d'une méthode de glisser-déposer très pratique pour définir les ordres stop : lorsque je fais glisser le curseur à l'écart de la ligne de transaction, je peux immédiatement voir le bénéfice qui sera réalisé si la transaction se clôture au prix auquel le curseur est positionné.

Dans mon activité de trading, j'utilise une stratégie où j'ai souvent besoin d'un outil similaire, mais pas pour une seule transaction, mais pour TOUTES les transactions ouvertes sur un graphique donné.

C'est-à-dire que lorsque je place le curseur sur n'importe quel prix, je voudrais voir la taille du MONTANT de profit, qui sera si TOUTES les transactions sont fermées au prix auquel le curseur est placé.

Et ce serait un véritable luxe si, lorsque je relâche le bouton de la souris, toutes les transactions ouvertes étaient automatiquement réglées sur les TP et SL corrects pour ce bénéfice, comme c'est actuellement le cas pour une seule transaction.

Peut-être que j'en veux trop, mais j'ai décrit une situation idéale. Je veux au moins une calculatrice qui saisisse les niveaux et les volumes des transactions ouvertes (toutes les transactions sont unidirectionnelles, soit toutes les ventes, soit tous les achats) et le prix de clôture, et qui donne le bénéfice total à réaliser après la clôture de toutes les transactions lorsqu' un prix donné est atteint. Ou, par exemple, il peut s'agir d'un indicateur sous la forme d'uneligne horizontale qui indique le prix auquel le bénéfice du groupe sera nul à la clôture. Je suis en train de le calculer avec une calculatrice de poche mais il est très long et peut provoquer des erreurs.

Je chercherais bien sur le marché moi-même, mais je ne sais pas quoi chercher. Doit-il s'agir d'un conseiller expert, d'un indicateur, d'un robot ou d'autre chose ? S'il n'existe pas un tel outil prêt à l'emploi, je suis prêt à discuter des termes d'une commande pour l'écriture d'un tel outil.
Le langage de programmation MQL vous aidera, il met en œuvre toutes vos fantaisies.