Annonce
Réduire
Aucune annonce.
Ads
Réduire
MT4 Market profile
Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • MT4 Market profile

    je ne sais plus qui m'a passé le programme...mais celui-ci ne donne pas le "déroulé" des prox par couleur et par lettre, TOUT est bleu en 1 mn, mn et 15mn..

    QUELQU'UN A-T-IL MIEUX? MERCI

    //+------------------------------------------------------------------+
    //| MarketProfile.mq4 |
    //| Copyright © 2006, Viatcheslav Suvorov|
    //+------------------------------------------------------------------+
    #property copyright "Viatcheslav Suvorov"

    #property indicator_chart_window


    extern datetime StartDate = D'';
    extern bool lastdayStart = true;
    extern int CountProfile = 2;



    int fontsize=10;
    int i,j;
    double LastHigh,LastLow,CurPos;
    bool signal;
    //+------------------------------------------------------------------+
    //| Custor indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    ObjectsDeleteAll(0,OBJ_RECTANGLE);
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    string short_name;


    //---- name for DataWindow and indicator subwindow label
    short_name="MarketProfile";
    IndicatorShortName(short_name);
    SetIndexLabel(0,short_name);

    return(0);
    }

    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()

    {
    deinit();
    double onetick;
    double Mediana=0;
    int MaxSize=0;
    int MySize=0;
    int MySizeEuropa=0;
    int MySizeAzia=0;
    int MySizeAmerica=0;
    int BACK=0;
    if (lastdayStart) StartDate=Time[0];

    int x=Period();
    if (x>60) return(-1);
    if (x<5) return(-1);


    BACK=0;
    while (TimeDayOfYear(Time[BACK])>TimeDayOfYear(StartDate) || TimeYear(Time[BACK])!=TimeYear(StartDate) && (BACK BACK++;
    if (BACK>=Bars) return(0);
    }//while


    onetick = 1/(MathPow(10,Digits));
    i=BACK;
    ////
    int cycles;

    for (cycles=CountProfile;cycles>0;cycles--) {

    signal=false;
    LastHigh=High;
    LastLow=Low;
    while (!signal)
    {
    //if (i+1==Bars) signal=true;
    if (High[i+1]>LastHigh) LastHigh=High[i+1];
    if (Low[i+1] MaxSize=0;
    MySize=0;

    if (TimeDay(Time)!=TimeDay(Time[i+1]))
    {

    signal=true;
    CurPos=LastLow;
    while (CurPos<=LastHigh){
    MySizeAzia=0;
    MySizeEuropa=0;
    MySizeAmerica=0;
    for (j=i;j>=BACK;j--) {
    if ((High[j]>=CurPos) && (Low[j]<=CurPos)) {
    MySize++;
    if (TimeHour(Time[j])>=13) MySizeAmerica++; else
    if ((TimeHour(Time[j])>=8) && (TimeHour(Time[j])<13)) MySizeEuropa++; else
    MySizeAzia++;

    }//if
    }//for
    if (MySizeAzia+MySizeEuropa+MySizeAmerica>MaxSize){
    MaxSize=MySizeAzia+MySizeEuropa+MySizeAmerica;
    Mediana=CurPos;
    }
    if (i-MySizeAzia>=0)
    if(ObjectFind("rec"+"Azia"+TimeToStr(Time,TIME_DATE)+CurPos) == -1 && MySizeAzia!=0) {
    ObjectCreate("rec"+"Azia"+TimeToStr(Time,TIME_DATE)+CurPos, OBJ_RECTANGLE, 0, Time, CurPos,Time[i-MySizeAzia],CurPos+onetick);
    ObjectSet("rec"+"Azia"+TimeToStr(Time,TIME_DATE)+CurPos, OBJPROP_COLOR, Blue);
    }//if
    if(ObjectFind("rec"+"Europa"+TimeToStr(Time,TIME_DATE)+CurPos) == -1 && MySizeEuropa!=0) {
    ObjectCreate("rec"+"Europa"+TimeToStr(Time,TIME_DATE)+CurPos, OBJ_RECTANGLE, 0, Time[i-MySizeAzia], CurPos,Time[i-MySizeAzia-MySizeEuropa],CurPos+onetick);
    ObjectSet("rec"+"Europa"+TimeToStr(Time,TIME_DATE)+CurPos, OBJPROP_COLOR, Blue);
    }//if
    if(ObjectFind("rec"+"America"+TimeToStr(Time,TIME_DATE)+CurPos) == -1 && MySizeAmerica!=0) {
    ObjectCreate("rec"+"America"+TimeToStr(Time,TIME_DATE)+CurPos, OBJ_RECTANGLE, 0, Time[i-MySizeAzia-MySizeEuropa], CurPos,Time[i-MySizeAzia-MySizeEuropa-MySizeAmerica],CurPos+onetick);
    ObjectSet("rec"+"America"+TimeToStr(Time,TIME_DATE)+CurPos, OBJPROP_COLOR, Blue);
    }//if




    CurPos=CurPos+onetick;
    }//while
    ObjectCreate("mediana"+TimeToStr(Time,TIME_DATE), OBJ_RECTANGLE, 0, Time, Mediana,Time[i+10],Mediana+onetick);
    ObjectSet("mediana"+TimeToStr(Time,TIME_DATE), OBJPROP_STYLE, STYLE_SOLID);
    ObjectSet("mediana"+TimeToStr(Time,TIME_DATE), OBJPROP_COLOR,White);
    BACK=i+1;
    }//if
    i++;
    if (i>=Bars) return(0);
    }//while
    }//for
    //----
    return(0);
    }
    //+------------------------------------------------------------------+


  • #2
    QUELQU'UN A-T-IL MIEUX ? MERCI

    Commentaire


    • #3
      A priori 3 choses à changer (surtout les buffer, enlever l'espace après l'index i])

      et peut être enlever les antislash pour ne laisser que les " exemple (if(ObjectFind("rec)

      for (cycles=CountProfile;cycles>0;cycles--) {

      signal=false;
      LastHigh=High[i ]
      LastLow=Low[i ]
      while (!signal)


      if (TimeDay(Time[i ])!=TimeDay(Time[i+1]))


      CurPos=CurPos+onetick;
      }//while
      ObjectCreate("mediana"+TimeToStr(Time[i ],TIME_DATE), OBJ_RECTANGLE, 0, Time[i ], Mediana,Time[i+10],Mediana+onetick);
      ObjectSet("mediana"+TimeToStr(Time[i ],TIME_DATE), OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("mediana"+TimeToStr(Time[i ],TIME_DATE), OBJPROP_COLOR,White);

      Commentaire

      Chargement...
      X