//وووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو 0 وو // ADX_Smoothed_2.mq4 // بçىهيهيèے: رهًمهé تîâàë¸â, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua //وووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو 1 وو #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 SlateBlue #property indicator_color2 FireBrick #property indicator_color3 DarkGreen #property indicator_level1 25 //---- input parameters extern int per = 14; extern double alpha1 = 0.25; extern double alpha2 = 0.33; extern int PriceType = 0; extern int Qnt_Bar = 300; extern color Color_Obj = Red; //---- buffers double DiPlusFinal[]; double DiMinusFinal[]; double ADXFinal[]; double DIPlusLead[]; double DIMinusLead[]; double ADXLead[]; //وووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو 2 وو int init() { //---- indicators IndicatorBuffers(6); SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, DiPlusFinal); SetIndexLabel(0, "Di Plus"); //---- SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, DiMinusFinal); SetIndexLabel(1, "Di Minus"); //---- SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(2, ADXFinal); SetIndexLabel(2, "ADX"); //---- SetIndexBuffer(3, DIPlusLead); SetIndexBuffer(4, DIMinusLead); SetIndexBuffer(5, ADXLead); //---- IndicatorDigits(2); IndicatorShortName("ADX(" + per + ")smothed_2"); //---- return(0); } //وووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو 3 وو int start() { int counted_bars = IndicatorCounted(); int i, k, limit; double DIPlus, DIMinus, ADX, DIPlus1, DIMinus1, ADX1; //---- if(counted_bars == 0) limit = Bars - per - 1; if(counted_bars > 0) limit = Bars - counted_bars; for(i = limit; i >= 0; i--) { DIPlus = iADX(NULL, 0, per, PriceType, MODE_PLUSDI, i); DIMinus = iADX(NULL, 0, per, PriceType, MODE_MINUSDI, i); ADX = iADX(NULL, 0, per, PriceType, MODE_MAIN, i); DIPlus1 = iADX(NULL, 0, per, PriceType, MODE_PLUSDI, i + 1); DIMinus1 = iADX(NULL, 0, per, PriceType, MODE_MINUSDI, i + 1); ADX1 = iADX(NULL, 0, per, PriceType, MODE_MAIN, i + 1); //---- DIPlusLead[i] = 2*DIPlus + (alpha1 - 2) * DIPlus1 + (1 - alpha1)*DIPlusLead[i+1]; DIMinusLead[i]= 2*DIMinus + (alpha1 - 2) * DIMinus1+(1 - alpha1)*DIMinusLead[i+1]; ADXLead[i] = 2*ADX + (alpha1 - 2) * ADX1 + (1 - alpha1) * ADXLead[i+1]; DiPlusFinal[i] = alpha2*DIPlusLead[i] + (1 - alpha2) * DiPlusFinal[i+1]; DiMinusFinal[i] = alpha2*DIMinusLead[i] + (1 - alpha2) * DiMinusFinal[i+1]; ADXFinal[i] = alpha2*ADXLead[i] + (1 - alpha2) * ADXFinal[i+1]; //--------------------------------------------------------------------------------- 31 -- if (i < Qnt_Bar && ADXFinal[i] > ADXFinal[i+1] && ADXFinal[i] > 25) { string Obj_Name = "ADX_ind_" + Time[i]; if (ObjectFind(Obj_Name) == -1) ObjectCreate (Obj_Name, OBJ_TEXT, 0,0,0); // رîçنà¸ى îلْهêٍ ObjectSet (Obj_Name, OBJPROP_TIME1, Time[i]); // تîîًنèيàٍà ص ObjectSet (Obj_Name, OBJPROP_PRICE1, Low[i]); // تîîًنèيàٍà Y ObjectSetText(Obj_Name,"+",8,"Arial Black",Color_Obj);// زهêٌٍîâîه îïèٌàيèه WindowRedraw(); // خليîâëهيèه îٍîلًàوهيèے } //--------------------------------------------------------------------------------- 32 -- } return(0); } //وووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو 4 وو int deinit() { int Qnt_Obj_Del = 0; // دîêà يهٍ îلْهêٍîâ ê َنàëهيè‏ int Kol_Objects = ObjectsTotal(); // خلùهه êîëè÷هٌٍâî îلْهêٍîâ string Mas_Name_Del[1]; // خلْےâëهيèه ىàٌٌèâà ArrayResize(Mas_Name_Del, Kol_Objects); // سٌٍàيàâëèâàهى ًàçىهً ىàٌٌèâà //--------------------------------------------------------------------------------- 41 -- for (int k=0; k < Kol_Objects; k++) // دî êîëè÷هٌٍâَ îلْهêٍîâ { string Obj_Name = ObjectName(k); // اàïًàّèâàهى èىے îلْهêٍà string Bebin = StringSubstr(Obj_Name,0,8);// بçâëهêàهى ïهًâûه 8 ٌèىâîëîâ èç ًٌٍîêè if (Bebin == "ADX_ind_") // إٌëè يàéنهي îلْهêٍ, èىے êîٍîًîمî .. { // .. يà÷èيàهٌٍے ٌ èٌêîىîé ïîنًٌٍîêè Qnt_Obj_Del=Qnt_Obj_Del+1; // تîëè÷هٌٍâî èى¸ي îلْهêٍîâ ê َنàëهيè‏ Mas_Name_Del[Qnt_Obj_Del]=Obj_Name; // حàêàïëèâàهى ىàٌٌèâ÷èê } } //--------------------------------------------------------------------------------- 42 -- for (int i=1; i<=Qnt_Obj_Del; i++) // دî èىهيàى îلْهêٍîâ â ىàٌٌèâه ObjectDelete(Mas_Name_Del[i]); // سنàëےهى WindowRedraw(); // ؤëے ىîىهيٍàëüيîمî îٍîلًàوهيèے return; } //وووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووو 5 وو