老王吧 发表于 2016-5-24 17:48:35

Market Price



//+------------------------------------------------------------------+
//|                                           #MarketPrice _v1_4.mq4 |
//|                                                       ServerUang |
//|                                    http://www.indofx-trader.net/ |
//+------------------------------------------------------------------+
#property copyright "ServerUang"
#property link      "http://www.indofx-trader.net/"

#property indicator_chart_window
extern string Settings_n_1 = "--------------------------";
extern int Side = 1;
extern int MP_Y = 0;
extern int MP_X = 0;

//--------------------------------------------------------------------
extern string Settings_n_2 = "--------------------------";
extern string Colors_Setting ="Setting for Colors";
extern color Highest_Color          = Blue;
extern color Distance_from_Highest_Color = DodgerBlue;
extern color Lowest_Color         = Red;
extern color Distance_from_Lowest_Color= OrangeRed;
extern color Hi_to_Lo_Color         = Peru;
extern color Daily_Av_Up_Color      = Blue;
extern color Daily_Av_Dn_Color      = Red;
extern color Time_n_Spread_Color    = LimeGreen;
extern color PipsToOpen_Up_Color    = Blue;
extern color PipsToOpen_Dn_Color    = Red;

//--------------------------------------------------------------------
extern string Settings_n_3 = "--------------------------";
extern string Signals_Settings = "Settings for Signals";
extern boolShow_Signals      = true;

// BuySeLL Variable
extern string BuySeLL_Settings = "--------------------------";
extern int MAFast_Period = 1;
extern int MAFast_Method = 0;
extern int MAFast_Apply_To = 0;
extern int MAFast_Shift = 0;

extern int MASlow_Period = 4;
extern int MASlow_Method = 0;
extern int MASlow_Apply_To = 1;
extern int MASlow_Shift = 0;

// Trend Variable
extern string TRend_Settings = "--------------------------";
extern int TMAFast_Period = 1;
extern int TMAFast_Method = 0;
extern int TMAFast_Apply_To = 0;
extern int TMAFast_Shift = 0;

extern int TMASlow_Period = 20;
extern int TMASlow_Method = 0;
extern int TMASlow_Apply_To = 0;
extern int TMASlow_Shift = 0;

// Strength Variable
extern string Strength_Settings = "--------------------------";
extern int RSI_Period = 5;
extern int RSI_PRICE_TYPE = 0;

extern int CCI_Period = 20;
extern int CCI_PRICE_TYPE = 0;

extern int STOCH_K_Period = 5;
extern int STOCH_D_Period = 3;
extern int STOCH_Slowing = 3;
extern int STOCH_MA_MODE = 0;
extern int STOCH_Price_Field = 0;

//--------------------------------------------------------------------
extern string Settings_n_4 = "--------------------------";
extern color LegendColor = Gainsboro;
extern color PriceColor_Up = Blue;
extern color PriceColor_Dn = Red;
extern color NeutralColor = LightGray;

extern color Arrow_Up = Lime;
extern color Arrow_Dn = Gold;
extern color Arrow_Nt = White;

//===================================================================+
double vA, vB, vC, TFs, High_Lama, Low_Lama;
int TimeFrame, x, y, space, baris, fontsize, cTF, cCC, cX, cSTR, cTR;
string text, fontname, Teks_Menit, Teks_Detik;
string UpSymbol="?,DnSymbol="?, NtSymbol="?, SignalSymbol;
color SignalColor;

// --- variabel Daili_Av --------------------------------------------+
int    R1, R5, R10, R20, RAvg, n, i;
string Teks_ReRata = "", Teks_Rerata_Kemarin ="";
colorwarna_ReRata, WarnaTeks;
//-------------------------------------------------------------------+

// --- Strength Variable ---
double v_RSI, v_Stoch, v_CCI;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                     |
//+------------------------------------------------------------------+
int deinit()
{
//----
   for(int i = ObjectsTotal() - 1; i >= 0; i--)
   {
       string label = ObjectName(i);
       if(StringSubstr(label, 0, 4) != "MP14")
         continue;
       ObjectDelete(label);   
   }   //----
   return(0);
   
   //ObjectsDeleteAll(0,OBJ_HLINE);
   //ObjectsDeleteAll(0,OBJ_TEXT);
   //ObjectsDeleteAll(0,OBJ_LABEL);
//----
   return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
   int    counted_bars=IndicatorCounted();
//----
   // Price
   TimeFrame = 15;
   vA = iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0);
   vB = iMA(Symbol(), TimeFrame, MAFast_Period, MAFast_Shift, MAFast_Method, MAFast_Apply_To, 0);
   vC = iMA(Symbol(), TimeFrame, MASlow_Period, MASlow_Shift, MASlow_Method, MASlow_Apply_To, 0);
   Write("MP14001", Side, MP_X+9, MP_Y+22, DoubleToStr(vA,Digits), 34, "Arial", CheckColor(vB, vC, PriceColor_Up, PriceColor_Dn) );

   // Highest
   vB=iHigh(NULL,1440,0); text=DoubleToStr(vB, Digits);
   Write("MP14002", Side, MP_X+100, MP_Y+14, text, 10, "Tahoma Bold", Highest_Color);
   
   // Lowest
   vC=iLow(NULL,1440,0); text=DoubleToStr(vC, Digits);
   Write("MP14003", Side, MP_X+100, MP_Y+62, text, 10, "Tahoma Bold", Lowest_Color);
   
   //--- Distance from Highest ---
   text=DoubleToStr((vA-vB)/Point,0);
   Write("MP14004", Side, MP_X+56, MP_Y+14, text, 10, "Tahoma Bold", Distance_from_Highest_Color);
   
   //--- Distance from Lowest ---
   text=DoubleToStr((vA-vC)/Point,0);
   Write("MP14005", Side, MP_X+56, MP_Y+62, text, 10, "Tahoma Bold", Distance_from_Lowest_Color);
   
   //--- Hi to Lo ---
   text=DoubleToStr((vB-vC)/Point,0);
   Write("MP14006", Side, MP_X+10, MP_Y+14, text, 10, "Tahoma Bold", Hi_to_Lo_Color);
   
   //--- 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;}
      
   Write("MP14007", Side, MP_X+10, MP_Y+62, Teks_ReRata, 10, "Tahoma Bold", warna_ReRata);
   
   //--- Time for Next Candle ---
   vB = (Time-Time)-MathMod(CurTime(),Time-Time);
   vA = vB/60;
   vB = (vA-MathFloor(vA))*60;
   vA = MathFloor(vA);
   Teks_Menit = DoubleToStr(vA,0);
   Teks_Detik = DoubleToStr(vB,0);
   text=Teks_Menit+":"+Teks_Detik;
   Write("MP14008", Side, MP_X+100, MP_Y+74, text, 10, "Tahoma Bold", Time_n_Spread_Color);
   
   // --- Spread ---
   vA = (Ask - Bid)/Point;
   text = (DoubleToStr(vA, Digits-4));
   Write("MP14009", Side, MP_X+56, MP_Y+74, text, 10, "Tahoma Bold", Time_n_Spread_Color);
   
   //--- Pips to Open ---
   vA = iOpen(NULL,1440,0);
   vB = iClose(NULL,1440,0);
   SignalColor=CheckColor(vB, vA, PipsToOpen_Up_Color, PipsToOpen_Dn_Color);
   text=DoubleToStr((vB-vA)/Point,0);
   Write("MP14010", Side, MP_X+10, MP_Y+74, text, 10, "Tahoma Bold", SignalColor);
   
   //--- Show_Signals ---
   if (Show_Signals)
      {
/*
       // Pair, Pair color depand to Trend
       vB = iMA(Symbol(), TimeFrame, TMAFast_Period, TMAFast_Shift, TMAFast_Method, TMAFast_Apply_To, 0);
       vC = iMA(Symbol(), TimeFrame, TMASlow_Period, TMASlow_Shift, TMASlow_Method, TMASlow_Apply_To, 0);
       Write("MP13001", Side, 85, 8, Symbol(), 16, "Arial Bold", CheckColor(vB, vC, PriceColor_Up, PriceColor_Dn) );
   
       // Pricecolor depand to Crossing MAfast and MAslow
       vA = iMA(Symbol(),0,1,0,MODE_EMA,PRICE_CLOSE,0);
       vB = iMA(Symbol(), TimeFrame, MAFast_Period, MAFast_Shift, MAFast_Method, MAFast_Apply_To, 0);
       vC = iMA(Symbol(), TimeFrame, MASlow_Period, MASlow_Shift, MASlow_Method, MASlow_Apply_To, 0);
       Write("MP13002", Side, 5, 5, DoubleToStr(vA,Digits), 20, "Arial Bold", CheckColor(vB, vC, PriceColor_Up, PriceColor_Dn) );
       //Write("MP13002", Side, 10, 10, DoubleToStr(vA,Digits), 16, "Arial Bold", CheckColor(vB, vC, PriceColor_Up, PriceColor_Dn) );
*/   
       // Legend
       //cTF=MP_X+127; cCC=MP_X+99; cX=MP_X+81; cSTR=MP_X+53; cTR=MP_X+25;
       cTF=MP_X+127; cCC=MP_X+99; cX=MP_X+76; cSTR=MP_X+40; cTR=MP_X+10;
       Write("MP14011", Side, MP_X+cTF,MP_Y+90, "TF", 10, "Arial", LegendColor); //152
       Write("MP14012", Side, MP_X+cCC,MP_Y+90, "CC", 10, "Arial", LegendColor); //116
       Write("MP14013", Side, MP_X+cX-5, MP_Y+90, "BS", 10, "Arial", LegendColor);//086
       Write("MP14014", Side, MP_X+cSTR, MP_Y+90, "Str", 10, "Arial", LegendColor); //048
       Write("MP14015", Side, MP_X+cTR,MP_Y+90, "TR", 10, "Arial", LegendColor); //012
   
       x=cTF; //154
       y=MP_Y+106; space=12; fontname="Arial"; fontsize=8;
       Write("MP14016", Side, x, y+(00*space), "MN", fontsize, fontname, LegendColor);
       Write("MP14017", Side, x, y+(01*space), "W1", fontsize, fontname, LegendColor);
       Write("MP14018", Side, x, y+(02*space), "D1", fontsize, fontname, LegendColor);
   
       Write("MP14019", Side, x, y+(04*space), "H4", fontsize, fontname, LegendColor);
       Write("MP14020", Side, x, y+(05*space), "H1", fontsize, fontname, LegendColor);
       Write("MP14021", Side, x, y+(06*space), "M30", fontsize, fontname, LegendColor);
   
       Write("MP14022", Side, x, y+(08*space), "M15", fontsize, fontname, LegendColor);
       Write("MP14023", Side, x, y+(09*space), "M5", fontsize, fontname, LegendColor);
       Write("MP14024", Side, x, y+(10*space), "M1", fontsize, fontname, LegendColor);
   
       // LOOP
       n=1; y=MP_Y+106; space=12;
       while (n<=9)
             {
            switch (n)
                {
               case 1: TFs = 43200;baris=0;break;
               case 2: TFs = 10080;baris=1;break;
               case 3: TFs =1440;baris=2;break;
            
               case 4: TFs =   240;baris=4;break;
               case 5: TFs =    60;baris=5;break;
               case 6: TFs =    30;baris=6;break;
            
               case 7: TFs =    15;baris=8;break;
               case 8: TFs =   5;baris=9;break;
               case 9: TFs =   1;baris=10; break;
                }//switch
            
                // Trend;
                vA = iMA(Symbol(),TFs, TMAFast_Period, TMAFast_Shift, TMAFast_Method, TMAFast_Apply_To, 0);
                vB = iMA(Symbol(),TFs, TMASlow_Period, TMASlow_Shift, TMASlow_Method, TMASlow_Apply_To, 0);
                if (vA>vB)
                   { SignalSymbol=UpSymbol; SignalColor=Arrow_Up; }
                else if(vA<vB)
                   { SignalSymbol=DnSymbol; SignalColor=Arrow_Dn; }
                else {SignalSymbol=NtSymbol; SignalColor=Arrow_Nt; }
                Write("MP14025"+DoubleToStr(n,0), Side, cTR, y+(baris*space), SignalSymbol, 10, "Wingdings", SignalColor );
            
                // STR Signals
                v_RSI   = iRSI(Symbol(), TFs, RSI_Period , RSI_PRICE_TYPE, 0);
                v_Stoch = iStochastic(Symbol(), TFs, STOCH_K_Period,STOCH_D_Period,STOCH_Slowing, STOCH_MA_MODE, STOCH_Price_Field, MODE_MAIN, 0);
                v_CCI   = iCCI(Symbol(), TFs,CCI_Period , CCI_PRICE_TYPE, 0);
               
                if ((v_RSI > 50) && (v_Stoch > 40) && (v_CCI > 0)) { SignalSymbol = UpSymbol; SignalColor = Arrow_Up ;}
                else if ((v_RSI < 50) && (v_Stoch < 60) && (v_CCI < 0)) { SignalSymbol = DnSymbol; SignalColor = Arrow_Dn ;}
            
                //netral condition
                else if ((v_RSI < 50) && (v_Stoch > 40) && (v_CCI > 0)) { SignalSymbol = NtSymbol;SignalColor = Arrow_Nt; }
                else if ((v_RSI > 50) && (v_Stoch < 60) && (v_CCI < 0)) { SignalSymbol = NtSymbol;SignalColor = Arrow_Nt; }
                else if ((v_RSI < 50) && (v_Stoch > 40) && (v_CCI < 0)) { SignalSymbol = NtSymbol;SignalColor = Arrow_Nt; }
                else if ((v_RSI > 50) && (v_Stoch < 60) && (v_CCI > 0)) { SignalSymbol = NtSymbol;SignalColor = Arrow_Nt; }
                else if ((v_RSI > 50) && (v_Stoch > 40) && (v_CCI < 0)) { SignalSymbol = NtSymbol;SignalColor = Arrow_Nt; }
                else if ((v_RSI > 50) && (v_Stoch < 60) && (v_CCI < 0)) { SignalSymbol = NtSymbol;SignalColor = Arrow_Nt; }
            
                Write("MP14026"+DoubleToStr(n,0), Side, cSTR, y+(baris*space), SignalSymbol, 10, "Wingdings", SignalColor );
            
            
                // BuySell Crossing
                vB = iMA(Symbol(), TFs, MAFast_Period, MAFast_Shift, MAFast_Method, MAFast_Apply_To, 0);
                vC = iMA(Symbol(), TFs, MASlow_Period, MASlow_Shift, MASlow_Method, MASlow_Apply_To, 0);
                if (vB>vC)
                   { SignalSymbol=UpSymbol; SignalColor=Arrow_Up; }
                else { SignalSymbol=DnSymbol; SignalColor=Arrow_Dn; }
                Write("MP14027"+DoubleToStr(n,0), Side, cX-3, y+(baris*space), SignalSymbol, 10, "Wingdings", SignalColor);
            
            
                // CandleColor
                vC = iClose( NULL , TFs, 0) - iOpen( NULL , TFs, 0);
                if ( vC > 0 )
                   { SignalColor = PriceColor_Up;SignalSymbol="n"; }
                else if ( vC < 0 ){ SignalColor = PriceColor_Dn; SignalSymbol="n"; }
                else { SignalColor = NeutralColor; SignalSymbol="?; }
                Write("MP14028"+DoubleToStr(n,0), Side, cCC+2, y+(baris*space), SignalSymbol, 10, "Wingdings", SignalColor ); //x=120
               
               
                Write("MP14029", Side, cTR, y+((baris+1)*space), "Created by ServerUang", 7, "Tahoma Narrow", Gray);
            
                n++;
             } //end while
         
         }//Show
         else Write("MP14030", Side, MP_X+10, MP_Y+90, "Created by ServerUang", 7, "Tahoma Narrow", Gray);

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

// Write Procedure
void Write(string LBL, double side, int pos_x, int pos_y, string text, int fontsize, string fontname, color Tcolor=CLR_NONE)
   {
       ObjectCreate(LBL, OBJ_LABEL, 0, 0, 0);
       ObjectSetText(LBL,text, fontsize, fontname, Tcolor);
       ObjectSet(LBL, OBJPROP_CORNER, side);
       ObjectSet(LBL, OBJPROP_XDISTANCE, pos_x);
       ObjectSet(LBL, OBJPROP_YDISTANCE, pos_y);
   }
   
   
// CheckColor Function

color CheckColor(double a, double b, color u, color d)
      {
      if (a>b) { return (u); } else { return (d); }
      }

//+------------------------------------------------------------------+


bzzyr 发表于 2016-9-3 23:22:01

总算找到了。。。。

随风潜入 发表于 2020-7-7 18:01:33

帮你顶下哈!!

raul 发表于 2020-7-8 21:46:54

学习了,不错

lingling 发表于 2020-7-11 14:12:06

谢谢楼主分享

628719 发表于 2020-8-4 10:00:26

帮你顶下哈!!

搜狐朋狗友 发表于 2020-8-21 21:05:49

谢谢楼主分享

小弥陀 发表于 2024-7-17 20:37:08

支持下
页: [1]
查看完整版本: Market Price