- //+------------------------------------------------------------------+
- //| #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 bool Show_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 ="";
- color warna_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[4]-Time[5])-MathMod(CurTime(),Time[4]-Time[5]);
- 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)
- {
-
- // 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); }
- }
- //+------------------------------------------------------------------+
|