Créer un EA basé sur l'indicateur Center of Gravity - Guide pour MetaTrader 4

Mike 2016.07.01 18:21 26 0 0
Pièce jointe

Bonjour à tous,

Aujourd'hui, j'aimerais partager une idée qui me trotte dans la tête depuis un moment. Je travaille sur un Expert Advisor (EA) qui utilise l'indicateur Center of Gravity. Mon objectif est de l'intégrer à une stratégie de scalping intraday conservatrice, mais je me heurte à un petit problème : l'EA refuse d'ouvrir des positions, que ce soit sur un compte démo ou lors des tests. Alors, pourquoi cela se produit-il ?

Le concept de l'indicateur Center of Gravity

Pour ceux qui ne le connaissent pas, cet indicateur génère cinq lignes parallèles à la tendance. L'idée est d'ouvrir des trades lorsque les lignes extrêmes se croisent, idéalement en utilisant un système de trailing. Par exemple, je pense que lorsque la moyenne mobile simple (SMA) à période 1, basée sur les prix bas, croise la ligne inférieure de l'indicateur par le bas, cela pourrait être un bon signal pour ouvrir un trade BUY. Inversement, pour un SELL, il faudrait que la SMA basée sur les prix hauts croise la ligne supérieure par le haut.

Les détails de l'EA

Actuellement, j'ai le code de l'EA nommé C_S_intraday.mq4. C'est une version simple, sans contrôle des dépôts ou gestion de temps, et sans trailing. Voici un aperçu du code :

//+---------------------------------------------------------------------+
//| C_S_intraday.mq4                                                  |
//+---------------------------------------------------------------------+
extern double lots=0.1;
extern int BB = 125;
extern int MM = 2;
extern int II = 0;
extern double KK = 2.0;
extern int NN = 1102;

double maH0, maH1, maL0, maL1;

int start() {
    maH0 = iMA(NULL, 0, 1, 0, MODE_LWMA, PRICE_HIGH, 0); // moyenne mobile basées sur les prix hauts
    maH1 = iMA(NULL, 0, 1, 0, MODE_LWMA, PRICE_HIGH, 1);
    maL0 = iMA(NULL, 0, 1, 0, MODE_LWMA, PRICE_LOW, 0); // moyenne mobile basées sur les prix bas
    maL1 = iMA(NULL, 0, 1, 0, MODE_LWMA, PRICE_LOW, 1);

    double cgh = iCustom(NULL, 0, "Center of Gravity", BB, MM, II, KK, NN, 3, 0);
    double cgl = iCustom(NULL, 0, "Center of Gravity", BB, MM, II, KK, NN, 4, 0);

    if (cgl < maL0) { // si la moyenne mobile (bas) croise la ligne inférieure de l'indicateur par le bas
        OrderSend(NULL, OP_BUY, lots, Ask, 2, Ask - 10 * Point, Ask + 20 * Point, "create1", 123, 0, Lime);
    }

    return (0);
}
//+------------------------------------------------------------------+

Comme vous pouvez le voir, il y a encore des ajustements à faire. Si vous avez des conseils ou des idées sur la manière de surmonter ce blocage, je suis preneur ! N'hésitez pas à partager votre expérience ou vos suggestions dans les commentaires. Merci d'avance et bon trading à tous !


Image de l'EA

Liste
Commentaire 0