BS_#MarketPrice





//+------------------------------------------------------------------+
//|                                                 #MarketPrice.mq4 |
//|                                                       ServerUang |
//|                                    http://www.indofx-trader.net/ |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|                                               BS_#MarketPrice.mq4 |
//|                                    *********** edited by masemus |
//+------------------------------------------------------------------+
#property copyright "ServerUang"
#property link      "http://www.indofx-trader.net/"

#property indicator_chart_window

extern string Indicator_Name = "BS_#MarketPrice";
extern bool Right_Top = true;
extern int Shift_Y = 0; 
extern int Shift_X = 0;

// Untuk menentukan Warna Harga sesuai arah Trend
extern string Price_Variable = "Setting for Price Color" ; // change
extern color Price_color_Up = Blue;
extern color Price_color_Dn = Red;
extern int Time_Frame=15;

extern int MA_Fast_Period = 1; 
extern int MA_Fast_Method = 0; 
extern int MA_Fast_Apply_To = 0;
extern int MA_Fast_Shift = 0;

extern int MA_Slow_Period = 4; 
extern int MA_Slow_Method = 0;
extern int MA_Slow_Apply_To = 0;
extern int MA_Slow_Shift = 0;

extern string Value_Color ="Setting for Value Color";
extern color Highest_Color          = White;
extern color Distance_from_Highest_Color = Gainsboro;
extern color Lowest_Color           = Yellow;
extern color Distance_from_Lowest_Color  = Gold;
extern color Hi_to_Lo_Color         = White;
extern color Daily_Av_Up_Color      = Lime;
extern color Daily_Av_Dn_Color      = Orange;
extern color Time_n_Spread_Color    = Aqua;
extern color PipsToOpen_Up_Color    = LightSkyBlue;
extern color PipsToOpen_Dn_Color    = Salmon;

extern string Xtra_Information = "Setting for Extra information"; 

extern bool  Show_Xtra_Info    = true;

extern color Label_color          = Silver;
extern color Text_Xtreme_Up_Color = White;
extern color Text_Up_Color        = LightBlue;
extern color Text_Dn_Color        = Orange;
extern color Text_Xtreme_Dn_Color = Yellow;


// Untuk menentukan arah Trend
extern string Trend_Variable = "Variable TRend Direction" ; // change
extern int   xMA_Fast_Period     = 1; 
extern int   xMA_Fast_Method     = 0; 
extern int   xMA_Fast_Apply_To   = 0;
extern int   xMA_Fast_Shift      = 0;

extern int   xMA_Slow_Period     = 20; 
extern int   xMA_Slow_Method     = 0;
extern int   xMA_Slow_Apply_To   = 0;
extern int   xMA_Slow_Shift      = 0;
extern color Trend_Up_Color     = Blue;
extern color Trend_Dn_Color     = Red;
//=================================================================================
string Label_Teks="", Huruf="", Teks="", nomor="";
double Nilai, x, y, d_A, d_B, TF, Range, bbP, bbMid, bbM, nilaiWarnaCandle;
color  WarnaHarga, WarnaTrend, WarnaCandle;
int    Ukuran, n, Kolom;

// --- variabel Daili_Av --------------------------------------------
int    R1, R5, R10, R20, RAvg, i;
string Teks_ReRata = "", Teks_Rerata_Kemarin ="", Nomor="";
color  Warna_ReRata;

// --- Variabel Time for next candle
string Teks_Menit, Teks_Detik;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectsDeleteAll(0,OBJ_HLINE);
   ObjectsDeleteAll(0,OBJ_TEXT);
   ObjectsDeleteAll(0,OBJ_LABEL);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int    counted_bars=IndicatorCounted();
   
   //Menampilkan Harga
   Nilai=iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0); Teks=DoubleToStr(Nilai,Digits);
   Huruf="Arial"; Ukuran=18; x=5+Shift_X; y=5+Shift_Y;
   // WarnaHarga=WarnaLampu pada trend TF 5 menit
   d_B = iMA(Symbol(),Time_Frame,MA_Fast_Period,MA_Fast_Shift,MA_Fast_Method,MA_Fast_Apply_To,0);
   d_A = iMA(Symbol(),Time_Frame,MA_Slow_Period,MA_Slow_Shift,MA_Slow_Method,MA_Slow_Apply_To,0);
   WarnaHarga=CheckWarna(d_B, d_A, Price_color_Up, Price_color_Dn);
   Tulis("MP01", Right_Top, x, y, Teks, Ukuran, Huruf, WarnaHarga);

   Huruf="Tahoma Bold"; Ukuran=10; 
   d_A=iHigh(NULL,1440,0); Teks=DoubleToStr(d_A, Digits);
   d_B=iLow(NULL,1440,0); Teks=DoubleToStr(d_B, Digits);
   //--- Informasi Hi to Lo ---
   Teks=DoubleToStr((d_A - d_B)/Point,0);
   x=40+Shift_X; y=5+Shift_Y;
   Tulis("MP06", Right_Top, x, y, Teks, Ukuran, Huruf, Hi_to_Lo_Color);
   Tulis("MP22", Right_Top, x-11, y+0, " Curr: ", 7, Huruf, Label_color);
   
   //--- Informasi Daily Av ---
   R1=0; R5=0; R10=0; R20=0; RAvg=0; i=0;
   R1 =  (iHigh(NULL,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,1))/Point;
   for(i=1;i<=5;i++)   
     R5  = R5  + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point;
   for(i=1;i<=10;i++)
     R10 = R10 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point;
   for(i=1;i<=20;i++)
     R20 = R20 + (iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i))/Point;

   R5 = R5/5;
   R10 = R10/10;
   R20 = R20/20;
   RAvg  =  (R1+R5+R10+R20)/4;    
   
   Teks_ReRata = (DoubleToStr(RAvg,Digits-4));
   Teks_Rerata_Kemarin = (iHigh(NULL,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,1))/Point;
   
   if (Teks_ReRata > Teks_Rerata_Kemarin) {Warna_ReRata = Daily_Av_Up_Color;}
      else {Warna_ReRata = Daily_Av_Dn_Color;}
      
   x=40+Shift_X; y=45+Shift_Y;
   Tulis("MP07", Right_Top, x, y, Teks_ReRata, Ukuran, Huruf, Warna_ReRata);
   Tulis("MP23", Right_Top, x-11, y+0, " D.Av: ", 7, Huruf, Label_color);
   
   //Time for Next Candle
   d_B = (Time[4]-Time[5])-MathMod(CurTime(),Time[4]-Time[5]);
   d_A = d_B/60;
   d_B = (d_A-MathFloor(d_A))*60;
   d_A = MathFloor(d_A);
   Teks_Menit = DoubleToStr(d_A,0);
   Teks_Detik = DoubleToStr(d_B,0);
   Teks=Teks_Menit+":"+Teks_Detik;
   x=185+Shift_X; y=5+Shift_Y;
   Tulis("MP08", Right_Top, x, y, Teks, Ukuran, Huruf, Time_n_Spread_Color);
   Tulis("MP24", Right_Top, x-11, y+0, " Time : ", 7, Huruf, Label_color);
   
   // --- Spread
   d_A = (Ask - Bid)/Point;
   Teks = (DoubleToStr(d_A,Digits-4));
   x=68+Shift_X; y=45+Shift_Y;
   Tulis("MP09", Right_Top, x, y, Teks, Ukuran, Huruf, Time_n_Spread_Color);
   Tulis("MP25", Right_Top, x-11, y+0, " Sprd: ", 7, Huruf, Label_color);
   
   //--- Informasi from Pips to Open ---
   d_A = iOpen(NULL,1440,0);
   d_B = iClose(NULL,1440,0);
   WarnaHarga=CheckWarna(d_B, d_A, PipsToOpen_Up_Color, PipsToOpen_Dn_Color);
   Teks=DoubleToStr((d_B-d_A)/Point,0);
   x=68+Shift_X; y=5+Shift_Y;
   Tulis("MP10", Right_Top, x, y, Teks, Ukuran, Huruf, WarnaHarga);
   Tulis("MP26", Right_Top, x-11, y+0, " To Op: ", 7, Huruf, Label_color);
   
   //--- Show_Xtra_Info ---
   if (Show_Xtra_Info)
      {//--- Info TRend ---
       Huruf="Trebucet"; Ukuran=7;
       if (Right_Top) {Teks="BS  TR";}
                 else {Teks="TR  BS";}
       x=156+Shift_X; y=3+Shift_Y+4;
       Tulis("MP11", Right_Top, x, y, Teks, Ukuran, Huruf, Label_color);
       Tulis("MP12", Right_Top, x-66, y+32, " 240 ", Ukuran, Huruf, Label_color);
       Tulis("MP13", Right_Top, x-55, y+32, " 60 ", Ukuran, Huruf, Label_color);
       Tulis("MP14", Right_Top, x-44, y+32, " 30 ", Ukuran, Huruf, Label_color);
       Tulis("MP15", Right_Top, x-33, y+32, " 15 ", Ukuran, Huruf, Label_color);
       Tulis("MP16", Right_Top, x-22, y+32, " 5 ", Ukuran, Huruf, Label_color);
       Tulis("MP17", Right_Top, x-11, y+32, " 1 ", Ukuran, Huruf, Label_color);
       n=1;
       while (n<=6)
         {
          switch (n)
             {
              case  1: TF =    1;  Range=2; break;
              case  2: TF =    5;  Range=(Ask - Bid)/Point; break;
              case  3: TF =   15;  Range=(Ask - Bid)/Point; break;
              case  4: TF =   30;  Range=(Ask - Bid)/Point; break;
              case  5: TF =   60;  Range=(Ask - Bid)/Point; break;
              case  6: TF =   240;  Range=(Ask - Bid)/Point; break;
              //case 7: TF = 1440;  break;
             }//switch
          
          nomor=DoubleToStr(n,0); x=125+Shift_X; y=23+Shift_Y+5; Kolom=11;
          Huruf="Arial Bold"; Ukuran=40;          
          d_B = iMA(Symbol(),TF, xMA_Fast_Period, xMA_Fast_Shift, xMA_Fast_Method, xMA_Fast_Apply_To,0);
          d_A = iMA(Symbol(),TF, xMA_Slow_Period, xMA_Slow_Shift, xMA_Slow_Method, xMA_Slow_Apply_To,0);
          WarnaTrend=CheckWarna(d_B, d_A, Trend_Up_Color, Trend_Dn_Color);
          Tulis("MP18"+nomor, Right_Top, x-(n*Kolom), y-23, "-", Ukuran, Huruf, WarnaTrend);
          
          //BuySeLL
          d_B = iMA(Symbol(),TF, 1, 0, 0, 0, 0);
          d_A = iMA(Symbol(),TF, 4, 0, 0, 0, 0);
          WarnaTrend=CheckWarna(d_B, d_A, Trend_Up_Color, Trend_Dn_Color);
          Tulis("MP19"+nomor, Right_Top, x-(n*Kolom), y-5, "-", Ukuran, Huruf, WarnaTrend);
          
                   
          
          //Huruf="Tahoma Narrow"; Ukuran=7; x=10+Shift_X; y=88+Shift_Y+44;
          //Tulis("MP20", Right_Top, x, y, "Created by ServerUang", Ukuran, Huruf, Gray);
          n++;   
         }//while
      }//Show
   else 
      {
       Huruf="Tahoma Narrow"; Ukuran=7; x=10+Shift_X; y=88+Shift_Y+4;
       Tulis("MP21", Right_Top, x, y, "Created by ServerUang", Ukuran, Huruf, Gray);
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
// Prosedur Tulis
void Tulis(string LBL, double sebelah, int pos_x, int pos_y, string teks, int ukuran_huruf, string nama_huruf, color warna=CLR_NONE)
     {
       Label_Teks=LBL;
       ObjectCreate(LBL, OBJ_LABEL, 1, 0, 0);
       ObjectSetText(LBL,teks, ukuran_huruf, nama_huruf, warna);
       ObjectSet(LBL, OBJPROP_CORNER, sebelah);
       ObjectSet(LBL, OBJPROP_XDISTANCE, pos_y);
       ObjectSet(LBL, OBJPROP_YDISTANCE, pos_x);
     }

// Function CheckWarna
color CheckWarna(double a, double b, color U, color D)
      {
        if (a>b) { return (U); } else { return (D); }
      } 
      






Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open time of each bar
Series array that contains open prices of each bar
Series array that contains close prices for each bar


Indicator Curves created:


Indicators Used:

Moving average indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: