Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Besoin d'aide pour la prog de mon 1 er EA

  • wimz01

    Je suis débutant complet en programmation et j'aurai besoin d'aide pour coder une stratégie simple basé sur 4 indicateur ma question concerne la partie "expert start function", je veux savoire comment coder mes conditions d'entrée et de sortie quis sont les suivantes :

    OrderBuy if EMAFAST>EMASLOW && GG TREND BAR D1 GREEN && 3 LEVEL SEMAFOR affiche un 3 haussier

    OrderSell if EMAFAST<EMASLOW && GG TREND BAR D1 RED && 3 LEVEL SEMAFOR affiche un 3 baissier

    CloseOrderBuy if 3 LEVEL SEMAFOR affiche un 3 baissier

    CloseOrderSell if 3 LEVEL SEMAFOR affiche un 3 haussier
  • wimz01

    Pour préciser ma question voici une partie du code que j'ai déjà entré :

    double MAFAST = iMA(NULL,0,FastMAPeriod,FastMAshift,FastMAType,FastMAPrice,0);
    double MASLOW = iMA(NULL,0,SlowMAPeriod,SlowMAshift,SlowMAType,SlowMAPrice,0);
    double MAFAST_p = iMA(NULL,0,FastMAPeriod,FastMAshift,FastMAType,FastMAPrice,1);
    double MASLOW_p = iMA(NULL,0,SlowMAPeriod,SlowMAshift,SlowMAType,SlowMAPrice,1);
    double TREND_D1 = iCustom(NULL,0,"GG-TrendBar",0,0);
    double RETOUR = iCustom(NULL,0,"3_Level_ZZ_Semafor",0,0);

    if (istrade() == false)
    {
    if (MAFAST_p < MASLOW_p && MAFAST > MASLOW)
    {
    ticket = OrderSend(Symbol(),OP_BUY,MathMin(NormalizeDouble((AccountBalance() + AccountCredit()) / 10000 * AccountRiskPercent,Ask,3,0,0,"BUY",magicalNumber,0,Green);
    }
    if (MAFAST_p > MASLOW_p && MAFAST < MASLOW)
    {
    ticket = OrderSend(Symbol(),OP_SELL,MathMin(NormalizeDouble((AccountBalance() + AccountCredit()) / 10000 * AccountRiskPercent,Bid,3,0,0,"SELL",magicalNumber,0,Red);

    Pour les indicateurs Icustom je ne sais pas comment inclure dans mes conditions, GGTREND BAR D1 GREEN et 3 du SEMAFOR HAUSSIER et vis versa
  • wimz01

    Pour le GGTREND BAR je pense que je peux mettre à la place une formule m'indiquant la tendance D1 mais comment ?

    Help me please BBPERRIN, d'ailleurs en passant tes vidéos m'ont beaucoup aidé merci beaucoup.
  • bperrin

    Je ne connais pas trop la fonction iCurstom !... Elle te renvoie un double d'après ton code... Donc il faut la tester avec un double...
    Je vais me renseigner !

    En ce qui concerne tes MA, cela doit fonctionner non ?
  • bperrin

    Euh c'est quoi un "SEMAFOR" ? C'est plusieurs bougies haussières ou baissières ?
  • wimz01

    J'ai pas tester , icustom sert à faire appel à un indicateur programmé après la ou je bloque c'est comment dire en MQ4L que je prends long quand tel indic et vert en d1 et que tel indique nous indique un possible retournement à la hausse

    Sur le coup je regrette de ne pas m'être plus intéressé à la programmation lors de mes cours en électronique mais bon c'était de la prog de CI donc ça m'aurai sûrement pas aider, de tout façon j'ai toujours eu du mal avec les langues étrangère alors une langue inventer par des geeks je vous en parle pas mais là c'est différent sa m’intéresse.
    Modifié le 2012-11-25 08:53:33 par wimz01
  • bperrin

    Concrètement : les indicateurs "GG-TrendBar" et "3_Level_ZZ_Semafor" font quoi ? Et elle te renvoi quoi si tu les affiches dans un "Comment" ?


    Edite :
    - Je pense qu'en fonction des valeurs de retour des iCustom.... Tu devrais pouvoir faire des conditions non ?
    Modifié le 2012-11-25 08:55:45 par bperrin
  • Da_blackst4r

    Le GG trendbar sur mon screen en haut à gauche indique la force d'une tendance baissière ou d'un tendance haussière,
    et est basé sur le parabolic sar ainsi que sur l'adx
    Da_blackst4r a joint une image
    besoin-d-aide-pour-la-prog-de-mon-1-er-ea-6145
  • bperrin

    Ok ! Mais en gros... iCustom... Il met quoi comme valeur en retour ?... *-) ?...

    Je te conseil de mettre un truc du style :

    Comment( "GG-TrendBar : " + TREND_D1 + "\n3_Level_ZZ_Semafor" + RETOUR);

    Et de voir les valeurs que tu as pour pouvoir faire tes conditions ! ^^
  • Da_blackst4r

    le 3 level ZZ semaphor est lui basé sur des moyennes mobiles,
    il marque des plus haut et des plus bas et fonctionne de la même manière que le zig zag
    la force des signal est croissante, on a d'abord le cercle marron, puis rose, puis jaune qui est le plus "puissant"
    théoriquement,
    à note que cet indicateur repeint,
    Da_blackst4r a joint une image
    besoin-d-aide-pour-la-prog-de-mon-1-er-ea-6146
  • wimz01

    - L'indicateur de retournement 3 level semafor (2 fichiers) : http://dl.free.fr/m4oV5XotD et http://dl.free.fr/lnZ9D760G

    Il sert à donner des seuils ou un retournement de tendance à une forte probabilité d'être fait (moi ce qui m'intéresse c'est les 3) il est basé sur la théorie de dow

    - L'indicateur GGTRENDBAR (2fichiers) : http://dl.free.fr/ixjhuGBHX et http://dl.free.fr/bG2mjrcDx
    il donne la tendance sur tous les timeframe

    Merci de votre aide, je vous attendais avec impatience
  • wimz01

    DABLACKSTAR + rapide que moi GG
  • Da_blackst4r

    @ wimz

    haha ^^
    personnellement je vais pas pouvoir t'aider ,j'ai juste poster à titre informatif ^^
    je n'y connais rien en programmation d'expert advisor donc va falloir compter sur bperrin :P
  • bperrin

    Tu as tester ton EA ?... Et écris : Comment( "GG-TrendBar : " + TREND_D1 + "\n3_Level_ZZ_Semafor" + RETOUR); Savoir ce qu'il te renvoyer ?... Notamment lorsque tu souhaite avoir l'information... au point critique sur un graph...
  • wimz01

    Voici le code que j'ai rentrer pour le moment, il manque pleins de choses notamment le else pour mes conditions de sorti et surtout la prise en compte dans mes conditions de ggtrendbar et semafor j’espère que vous allez pouvoir m'aider

    //+------------------------------------------------------------------+
    //| BELKASYS.mq4 |
    //| Copyright 2012, wimz2012 |
    //| http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2012, wimz2012"
    #property link "http://www.metaquotes.net"

    // Variables externes
    extern string NOTE2 = " Parametres trade ";
    extern double AccountRiskPercent = 0.1;

    extern string Indicator_Setting = " Parametres indicateurs ";
    extern int FastMAPeriod = 3,
    FastMAType = 1, //0:SMA 1:EMA 2:SMMA 3:LWMA
    FastMAPrice = 0, //0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted
    FastMAshift = 0,
    SlowMAPeriod = 34,
    SlowMAType = 0, //0:SMA 1:EMA 2:SMMA 3:LWMA
    SlowMAPrice = 0, //0:Close 1:Open 2:High 3:Low 4:Median 5:Typical 6:Weighted
    SlowMAshift = 0;

    int magicalNumber,ticket;


    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    //----
    magicalNumber = 00002;
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start()
    {
    //----
    double MAFAST = iMA(NULL,0,FastMAPeriod,FastMAshift,FastMAType,FastMAPrice,0);
    double MASLOW = iMA(NULL,0,SlowMAPeriod,SlowMAshift,SlowMAType,SlowMAPrice,0);
    double MAFAST_p = iMA(NULL,0,FastMAPeriod,FastMAshift,FastMAType,FastMAPrice,1);
    double MASLOW_p = iMA(NULL,0,SlowMAPeriod,SlowMAshift,SlowMAType,SlowMAPrice,1);
    double TREND_D1 = iCustom(NULL,0,"GG-TrendBar",0,0);
    double RETOUR = iCustom(NULL,0,"3_Level_ZZ_Semafor",0,0);

    if (istrade() == false)
    {
    if (MAFAST_p < MASLOW_p && MAFAST > MASLOW)
    {
    ticket = OrderSend(Symbol(),OP_BUY,MathMin(NormalizeDouble((AccountBalance() + AccountCredit()) / 10000 * AccountRiskPercent,Ask,3,0,0,"BUY",magicalNumber,0,Green);
    }
    if (MAFAST_p > MASLOW_p && MAFAST < MASLOW)
    {
    ticket = OrderSend(Symbol(),OP_SELL,MathMin(NormalizeDouble((AccountBalance() + AccountCredit()) / 10000 * AccountRiskPercent,Bid,3,0,0,"SELL",magicalNumber,0,Red);
    }
    }
    Comment( "GG-TrendBar : " + TREND_D1 + "\n3_Level_ZZ_Semafor" + RETOUR);

    else




    //----
    return(0);
    }
    bool istrade ()
    {
    if (OrdersTotal () >= 1)
    {
    return (true) ;
    }
    else
    {
    return (false) ;
    }
    }
    //+------------------------------------------------------------------+
  • wimz01

    Non car quand je compil il y a une erreur
  • wimz01

    En tous cas les gars respect parce que c'est pas facile, vous deviez fumer du crâne pendant vos études
  • bperrin

    Normal pour l'erreur... Vire le "else" qui est tout seul et ne sert à rien...
  • wimz01

    mais meme sans le else metaeditor me dit unbalanced left parenthesis
  • thebud49

    wimz,

    j'ai put voir sur un autre forum qu'il fallait mieux rentrer âpres un 3 sur un 2 du même sens ce qui equivau à une prise de position juste après une correction et donc moins de faux signaux.

    Donc par exemple on attend un 3 pour indiquer un retournement à la baisse(en haut) en suite on voit un 2 qui signal une correction(en bas) et après on attend un signal sur le future 2 qui part a la baisse ( en haut).

    Je précise je n'ai pas testé mais cela filtre les faux signaux du 3 qui repeint assez souvent et permet de prendre une bonne entrée.
    Modifié le 2012-11-25 09:32:34 par thebud49