//**************************************************************************** //*** OCLH Oscillator *** //**************************************************************************** #property copyright "© solorik, Tank, 7 February 2026, https://www.forexfactory.com/" //https://overtonfx.ru" //https://overtonfx.ru/forums/torgovyye-sistemy.37/ #property link "https://www.forexfactory.com/thread/post/15566147#post15566147" //"https://www.forexfactory.com/thread/1109767-indicators-collection-of-tankk" //https://www.forexfactory.com/forum/69-platform-tech // #property description "Commodity Channel Index [CCI] — measures the deviation of the price from its Moving Average." #property description "Bull candle = (High-Low) + (Open-Low) + (High-Close)" #property description "Bear candle = (High-Low) + (High-Open) + (Close-Low)" #property description " " #property description "The indicator repaints in MTF mode!" //ARROWBAR && ALERTBAR corrected for MTF." //"Не перерисовывается в режиме MTF если RePaintMTF=false!" //"Индикатор НЕ перерисовывается! в режиме MTF." //"ARROWBAR и ALERTBAR скорректированы для MTF." #property description " " //"ALERTBAR без корректировки на MTF." //ARROWBAR и ALERTBAR скорректированы для MTF. "— ^ —" #property description "E-mail: tualatine@mail.ru" #property version "3.99" //#property strict #property indicator_separate_window //chart_window #property indicator_buffers 5 //--- #property indicator_color1 clrLightSteelBlue //LightSkyBlue //Lime //White //LightCyan //SpringGreen //Aqua //Lime //Aqua //White //Gold #property indicator_color2 clrHotPink //Orchid //LightPink //IndianRed //LightCoral //PaleVioletRed //SpringGreen //DarkOrchid //MediumVioletRed //Red //HotPink //Magenta //SkyBlue #property indicator_color3 clrNONE #property indicator_color4 clrLightSteelBlue //White //SkyBlue //MediumPurple //Lime //LightCyan //MediumOrchid //DeepSkyBlue //Aqua //Lavender // #property indicator_color5 clrRed //White //Blue //Aqua //Magenta //Gold //Yellow //DeepSkyBlue //LimeGreen //Orange //DarkOrange //Lime //--- #property indicator_width1 3 #property indicator_width2 3 #property indicator_width3 3 #property indicator_width4 2 #property indicator_width5 0 //--- #property indicator_style1 STYLE_SOLID #property indicator_style2 STYLE_SOLID #property indicator_style3 STYLE_SOLID #property indicator_style4 STYLE_SOLID #property indicator_style5 STYLE_SOLID //--- //#property indicator_level1 0 //#property indicator_levelcolor clrDimGray //DarkSlateGray //C'61,62,63' //C'0,66,0' //clrDarkSlateBlue //SteelBlue //Sienna //C'60,61,62' //C'66,122,177' // //#property indicator_levelwidth 0 //#property indicator_levelstyle STYLE_DOT //**************************************************************************** //*** Custom indicator ENUM settings *** //**************************************************************************** enum setIntpl { Intp0,/*OFF*/ Intp1,/*HALF*/ Intp2/*FULL*/ }; enum showCD { LINE,/*Line*/ sHISTO,/*Standard Histogram*/ aHISTO/*Alternative Histogram*/ }; //**************************************************************************** //*** Custom indicator input parameters *** //**************************************************************************** extern int History = 0; //288=D1/M5 //576=D2/M5; //864=D3/M5; //1152=D4/M5; //1440=D5/M5; extern ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; extern setIntpl Interpolation = Intp0; extern string PAIR = ""; extern int OscPeriod = 0; //0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711; extern ENUM_MA_METHOD OscMode = MODE_SMA; //extern ENUM_APPLIED_PRICE CCIPrice = PRICE_TYPICAL; //0.1454, 0.236, 0.382, 0.5, 0.618, 0.786, 1.0, 1.272, 1.414, 1.618, 2.058, 2.618, 3.32, 4.236, 5.35, 6.853.... //extern ENUM_STO_PRICE StoPrice = STO_LOWHIGH; extern showCD ShowIndex = sHISTO; //aHISTO; //LINE; // extern int DotCode = 0; //167; //110; //159; //108; // //extern int CrossLevel = 100; //extern int TrendLevel = 200; extern color buttColor = clrWhite; //Button text color extern int buttSize = 9; //Button text width extern color backColor = clrCrimson; //Button background color extern int axisX = 0; //Button X axis extern int axisY = 15; //Button Y axis extern ENUM_BASE_CORNER buttCorner = CORNER_LEFT_UPPER; //Button base corner extern int buttWindow = 1; //Button in which window extern string buttName = "OCLHOsc"; //Button text //**************************************************************************** //*** Custom indicator buffers *** //**************************************************************************** double POSS1[], NEGG1[], FAKE[], MAIN[], DOTZ[], SIGMA[]; double levLO, levHI, tevLO, tevHI, levZR, Pont, PONT, Dgts, DGTS; int altBU=0, altSE=0; int MAX, TFK, MTK, ARB, SGB, TikKont=1, ReCalc=1; string sTFR, cTFR, TWIN, PREF; datetime TimeBar=0, NewTime=0, OneTime=0; bool boBand=false, boHist=false, yesBars=false; //--- string sName, ShortName = "["+(string)OscPeriod+"]"; //+"±"+(string)Periud+ //**************************************************************************** //*** Custom indicator initialization function *** //**************************************************************************** int init() { TimeFrame = fmax(TimeFrame,_Period); TFK = TimeFrame/_Period; sTFR = StringSubstr(EnumToString(TimeFrame),7); cTFR = StringSubstr(EnumToString(ENUM_TIMEFRAMES(_Period)),7); //IndukName = WindowExpertName(); //--- TWIN = (PAIR=="") ? _Symbol : PAIR; /*StringUpper(PAIR);*/ MTK = TFK; //MTF = (RePaintMTF) ? TimeFrame : _Period; MTK = MTF/_Period; //--- OscPeriod = fmax(OscPeriod,1); //Percent = fmax(1,fmin(Percent,999)); /*SigPeriod = fmax(SigPeriod,0)*TFK;*/ boHist = ShowIndex>0; //ShowIndex==1 || (ShowIndex>1 && ((ShadowSignal && SigPeriod>0) || (!ShadowSignal && SigPeriod>1))) ? true : false; //--- MAX = OscPeriod + MTK*1; //fmax(fmax(OscPeriod,1),PCTPeriod); //fmax(PricePeriod,PipFilter); //--- Pont = SymbolInfoDouble(TWIN,SYMBOL_POINT); PONT = SymbolInfoDouble(TWIN,SYMBOL_POINT)*pow(10,SymbolInfoInteger(TWIN,SYMBOL_DIGITS)%2); Dgts = double(SymbolInfoInteger(TWIN,SYMBOL_DIGITS)); DGTS = double(SymbolInfoInteger(TWIN,SYMBOL_DIGITS)-SymbolInfoInteger(TWIN,SYMBOL_DIGITS)%2); //--- //------ IndicatorBuffers(6); IndicatorSetInteger(INDICATOR_DIGITS,(int)Dgts); //SymbolInfoInteger(TWIN,SYMBOL_DIGITS)-SymbolInfoInteger(TWIN,SYMBOL_DIGITS)%2); //Digits-Digits%2); //------ 5 распределенных буфера индикатора //enum showCD { LINE, HISTO }; SetIndexBuffer(0,POSS1); SetIndexStyle(0,boHist?DRAW_HISTOGRAM:DRAW_NONE); SetIndexBuffer(1,NEGG1); SetIndexStyle(1,boHist?DRAW_HISTOGRAM:DRAW_NONE); color fake = (color)ChartGetInteger(0,CHART_COLOR_BACKGROUND); SetIndexBuffer(2,FAKE); SetIndexStyle(2,boHist?DRAW_HISTOGRAM:DRAW_NONE,EMPTY,EMPTY,fake); //--- SetIndexBuffer(3,MAIN); SetIndexStyle(3,!boHist?DRAW_LINE:DRAW_NONE); SetIndexBuffer(4,DOTZ); SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,DotCode); ////------ 4 дополнительных буфера индикатора, используются для подсчета // SetIndexBuffer(5,SIGMA); for (int i=5; i<7; i++) SetIndexStyle(i,DRAW_NONE); ////------ настройка параметров отрисовки уровней // levLO = (Bid>-1) ? -CrossLevel : -CrossLevel; // levHI = (Bid>-1) ? CrossLevel : CrossLevel; //100-CrossLevel; // tevLO = (Bid>-1) ? -TrendLevel : -TrendLevel; // tevHI = (Bid>-1) ? TrendLevel : TrendLevel; //100-TrendLevel; // levZR = (Bid>-1) ? 0 : 0; //50; // //--- // SetLevelValue(0,levLO); // SetLevelValue(1,levHI); // SetLevelValue(2,tevLO); // SetLevelValue(3,tevHI); // SetLevelValue(4,levZR); //------ пропуск отрисовки первых баров for (int i=0; i<6; i++) { //SetIndexStyle(i,DRAW_LINE); //--- настройка параметров отрисовки SetIndexEmptyValue(i,0); //--- значение 0 отображаться не будет //SetIndexShift(11,SperiodShift); //--- установка сдвига линий при отрисовке if (History>MAX) SetIndexDrawBegin(i,Bars-History); //--- пропуск отрисовки первых баров if (History<=MAX) SetIndexDrawBegin(i,MAX*1); } //--- пропуск отрисовки первых баров //------ отображение в DataWindow SetIndexLabel(0,boHist ? TWIN+","+sTFR+": Positive" : NULL); //+ShortName); SetIndexLabel(1,boHist ? TWIN+","+sTFR+": Negative" : NULL); //+ShortName); SetIndexLabel(2,NULL); SetIndexLabel(3,TWIN+","+sTFR+": Index"+ShortName); SetIndexLabel(4,TWIN+","+sTFR+": Dots "+ShortName); //StringSubstr(EnumToString(Mode),5)+","+(string)Periud); //+">"+StringSubstr(EnumToString(ModeS),5)+">"+StringSubstr(EnumToString(ModeU),5)); //------ "короткое имя" для DataWindow и подокна индикатора + и/или "уникальное имя индикатора" //+WindowExpertName()+ sName = TWIN+","+sTFR+": OCLH Oscillator "+ShortName+" "; //IndicatorShortName(TWIN+","+sTFR+": CCI 2M2X NM TT "+ShortName+" "); //"±"+(string)cStep // //--- IndicatorSetString(INDICATOR_SHORTNAME,sName); //+MQLInfoString(MQL_PROGRAM_NAME)+ //--- //PREF = TWIN+","+sTFR+":OCLHOsc"+ShortName; //+"±"+(string)Periud+ //ChartWindowFind(0,sName) //------ рисуем Кнопку if (ObjectFind(0,PrefBT)<0) DrawBUTTON(0,PrefBT,buttName,buttColor,backColor,winTotal,true); ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1); //EventSetTimer(1); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //**************************************************************************** return(0); } //**************************************************************************** //*** Real Price Chart *** //**************************************************************************** void DrawHistoLine() { int CHTSCL=0, HSTS=0; int wSZ=0, bSZ=0, sZH=0; //------- получим значение свойства Масштаба графика CHTSCL = (int)ChartGetInteger(0,CHART_SCALE,0); //------ АвтоМасштаб для гистограммы..... switch(CHTSCL) { case 0 : HSTS=0; wSZ=0; bSZ=0; sZH=0; break; case 1 : HSTS=2; wSZ=0; bSZ=0; sZH=0; break; case 2 : HSTS=2; wSZ=0; bSZ=2; sZH=1; break; case 3 : HSTS=4; wSZ=0; bSZ=3; sZH=2; break; case 4 : HSTS=8; wSZ=0; bSZ=6; sZH=4; break; case 5 : HSTS=16; wSZ=2; bSZ=13; sZH=9; break; default: HSTS=2; wSZ=0; bSZ=3; sZH=1; break; } //--- //SZH = (HistoAutoSize) ? HSTS : HistoSize; //------ настройка параметров отрисовки //int HSLT = (HistoSize>=0) ? DRAW_HISTOGRAM : DRAW_NONE; //enum showCD { LINE, HISTO }; //--- SetIndexStyle(0,boHist?DRAW_HISTOGRAM:DRAW_NONE,EMPTY,bSZ); SetIndexStyle(1,boHist?DRAW_HISTOGRAM:DRAW_NONE,EMPTY,bSZ); color fake = (color)ChartGetInteger(0,CHART_COLOR_BACKGROUND); SetIndexStyle(2,boHist?DRAW_HISTOGRAM:DRAW_NONE,EMPTY,bSZ,fake); } //**************************************************************************** //*** Custom indicator deinitialization function *** //**************************************************************************** //int deinit() { Comment(""); ObjectsDeleteAll(0,PREF,-1,-1); return(0); } void OnDeinit(const int reason) { Comment(""); //ObjectsDeleteAll(0,PREF,-1,-1); //EventKillTimer(); //--- switch(reason) { //case REASON_PARAMETERS : case REASON_CHARTCHANGE : case REASON_RECOMPILE : case REASON_CLOSE : break; default : ObjectDelete(0,PrefBT); } } //**************************************************************************** //*** Custom indicator iteration function *** //**************************************************************************** int start() { if (buttYes && objSTATE(PrefBT)=="OFF") return(0); TikKont++; //if (TikKont%4==0) { //--- int i, CountedBars=IndicatorCounted(); if (CountedBars<0) return(-1); //Стандарт+Tankk+Вариант+forTMA... if (CountedBars>0) CountedBars--; int minBars=fmax(iBars(NULL,0),fmax(iBars(TWIN,TimeFrame),iBars(TWIN,TimeFrame))); int limit = (CountedBars>0 && ReCalc>0) ? iBars(NULL,0)-CountedBars-1+MTK : minBars-3-MAX; //fmin(iBars(TWIN,0)-CountedBars-1+TFK,minBars-3-MAX); //+MAX*10*TFK if (History>MAX) limit=fmin(History+MAX*3,minBars-3-MAX); //Comment(limit); if (NewTime!=iTime(NULL,0,0)+21) { //ObjectsDeleteAll(0,PREF,-1,-1); //if (DrawArrows>1 && ShowArrows>0) for (i=0; i<3*MAX; i++) { ObjectDelete(0,PREF+"ArrBU"+(string)Time[i]); ObjectDelete(0,PREF+"ArrSE"+(string)Time[i]); } CountedBars=0; /*if (History<=MAX) limit=minBars-1;*/ NewTime=iTime(NULL,0,0)+21; } //Time[0] //--- //if (ChartForeground) ChartSetInteger(0,CHART_FOREGROUND,0,true); else { ChartSetInteger(0,CHART_FOREGROUND,0,false); ChartRedraw(0); } //**************************************************************************** //*** OCLH Oscillator *** //**************************************************************************** if (TikKont%2==0 || CountedBars<3) { ReCalc=1; //if (OneTime!=iTime(NULL,0,0)+25 || CountedBars<3) //{ //--- // OneTime=iTime(NULL,0,0)+25; ReCalc=1; //--- //--- for (i=limit; i>=0 && iiBars(TWIN,TimeFrame)-3) continue; //--- MAIN[i]=0; DOTZ[i]=0; //SIGMA[i]=0; //--- //if (iClose(TWIN,TimeFrame,y) == iOpen(TWIN,TimeFrame,y)) continue; //iCCI(TWIN,TimeFrame,CCIPeriod,CCIPrice,y); //--- double oOpen = iMA(TWIN,TimeFrame,OscPeriod,0,OscMode,PRICE_OPEN,y); double oClos = iMA(TWIN,TimeFrame,OscPeriod,0,OscMode,PRICE_CLOSE,y); //iClose(TWIN,TimeFrame,y) double oLow = iMA(TWIN,TimeFrame,OscPeriod,0,OscMode,PRICE_LOW,y); double oHig = iMA(TWIN,TimeFrame,OscPeriod,0,OscMode,PRICE_HIGH,y); //iHigh(TWIN,TimeFrame,y); //--- double oBody = iMA(TWIN,TimeFrame,1,0,MODE_SMA,PRICE_CLOSE,y) - iMA(TWIN,TimeFrame,1,0,MODE_SMA,PRICE_OPEN,y); //--- if (oBody > 0) MAIN[i] = (oHig-oLow)+(oOpen-oLow)+(oHig-oClos); //(High-Low) + (Open-Low) + (High-Close); if (oBody < 0) MAIN[i] = (oHig-oLow)+(oHig-oLow)+(oClos-oLow); //(High-Low) + (High-Open) + (Close-Low)" if (oBody ==0) MAIN[i] = MAIN[i+1]; //--- //if (MAIN[i]==0 && MAIN[i+1]>0) MAIN[i]= PONT; //if (MAIN[i]==0 && MAIN[i+1]<0) MAIN[i]=-PONT; //--- MAIN[i] = getINTPL(MAIN[i],TimeFrame,Interpolation,i,0); //--- //--- DOTZ[i] = (DotCode>32 && DotCode<256) ? MAIN[i] : 0; //SymbolInfoDouble(TWIN,SYMBOL_POINT)/10) //--- //--- POSS1[i]=0; NEGG1[i]=0; FAKE[i]=0; if (!boHist) continue; //--- if (ShowIndex==1) { if (oBody > 0) POSS1[i] = MAIN[i]; if (oBody < 0) NEGG1[i] = MAIN[i]; } //--- if (ShowIndex==2) { if (oBody > 0) { POSS1[i] = MAIN[i]; FAKE[i] = MAIN[i]>MAIN[i+1*MTK] ? MAIN[i+1*MTK] : MAIN[i]/2; } if (oBody < 0) { NEGG1[i] = MAIN[i]; FAKE[i] = MAIN[i]>MAIN[i+1*MTK] ? MAIN[i+1*MTK] : MAIN[i]/2; } } //--- if (oBody ==0) { POSS1[i] = MAIN[i]; NEGG1[i] = MAIN[i]/2; } //--- } //*конец цикла* //--- } if (TikKont>999) TikKont=0; //*конец цикла* //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //**************************************************************************** return(0); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //%%% NonLag Schaff Trend Cycle X4 %%% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% double tmpBuf[][12]; //для 6 МАшек... double getINTPL(double PrIcE, int Mtf, int iMode, int i, int NB) { if (Mtf==_Period || iMode<1) return(PrIcE); NB*=2; if (ArrayRange(tmpBuf,0)!=iBars(TWIN,0)) ArrayResize(tmpBuf,iBars(TWIN,0)); int z=iBars(TWIN,0)-i-1, k=1, mPer = PeriodSeconds(Mtf)/PeriodSeconds(_Period); //Mtf/_Period; //+_Period; //--- double Ves1 = mPer; double Sum1 = mPer*PrIcE; //*tmpBuf[z][0+NB]; if (iMode>0) { tmpBuf[z][0+NB] = PrIcE; for (k=1; k=0; k++) { Ves1 += (mPer-k); Sum1 += (mPer-k)*tmpBuf[z-k][0+NB]; } } //--- tmpBuf[z][1+NB] = Ves1!=0 ? Sum1/Ves1 : tmpBuf[z][0+NB]; //--- double Ves2 = mPer; double Sum2 = mPer*tmpBuf[z][1+NB]; if (iMode>1) { for (k=1; k=0; k++) { Ves2 += (mPer-k); Sum2 += (mPer-k)*tmpBuf[z-k][1+NB]; } } //--- return( iMode==1 ? tmpBuf[z][1+NB] : (Ves2!=0 ? Sum2/Ves2 : tmpBuf[z][1+NB]) ); } //**************************************************************************** //*** MACD Fastest *** //**************************************************************************** string StringUpper(string s) { ushort c, n; int k=StringLen(s); for (int i=0; i96 && c<123) n = c-32; // a-z -> A-Z if (c>223 && c<256) n = c-32; // а-я -> А-Я if (c==184) n = 168; // ё -> Ё if (n>0) s = StringSetChar(s,i,n); } return(s); } //**************************************************************************** //*** Custom indicator ChartEvent function *** //**************************************************************************** string preState[2], buttON[2], PrefBT = "bOCLHOsc"+ShortName; //+StringConcatenate("[",History,">",ShowSupRes,"]"); //StringConcatenate("iSRSSR[",axisX,"x",axisY,"]","but"); //= "a"+PREF+"but"; //"bAKHR"+ShortName; //------ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if (id==CHARTEVENT_OBJECT_CLICK && sparam==PrefBT) getOnOff(0,PrefBT); //--- if (id==CHARTEVENT_CHART_CHANGE && buttYes && objSTATE(PrefBT)=="OFF") return; //костыль против инициализации индюка при переключении ТФ... //--- if (buttON[0]!="OFF" && id==CHARTEVENT_CHART_CHANGE && boHist) { /*start(); ChartSetInteger(0,CHART_FOREGROUND,0,false);*/ DrawHistoLine(); ChartRedraw(0); } //--- if (id==CHARTEVENT_CHART_CHANGE && winTotal!=WindowsTotal()-1) { winTotal = WindowsTotal()-1; DrawBUTTON(0,PrefBT,buttName, (buttON[0]!="OFF"?buttColor:clrBlack), backColor,winTotal, (buttON[0]!="OFF"?true:false)); ChartRedraw(0); } } //**************************************************************************** //*** CastIron PriceAction *** //**************************************************************************** string objSTATE(string Name) { return( ObjectGetInteger(0,Name,OBJPROP_STATE) ? "ON" : "OFF" ); } //**************************************************************************** //*** Akomuto Hirovato *** //**************************************************************************** void getOnOff(int NB, string Name) { buttON[NB] = objSTATE(Name); if (buttON[NB]!=preState[NB]) if (buttON[NB]=="OFF") { InitZero(NB); ObjectSetInteger(0,Name,OBJPROP_COLOR, clrBlack); preState[NB] = buttON[NB]; ChartRedraw(0); } else { /*init();*/ TikKont=1; NewTime=0; OneTime=0; ReCalc=0; start(); ObjectSetInteger(0,Name,OBJPROP_COLOR, buttColor); preState[NB] = buttON[NB]; ChartRedraw(0); } } //**************************************************************************** //*** MA 2Smoothed AA MTF TT *** //**************************************************************************** bool buttYes = buttColor!=clrNONE && buttSize>4; int winTotal=0; double bLen=fmax(1,StringLen(buttName)*1.15); bool DrawBUTTON(int NB, string Name, string Text, color txtClr=clrWhite, color bckClr=clrBlack, int winTot=0, bool OnOff=false) { if (buttColor==clrNONE || buttSize<5) return(false); //--- string objName = Name; //PREF+ //+(string)i; //+TimeToStr(iTime(NULL,0,i),TIME_MINUTES)+"_"+(string)Close[i],DGTS); //--- пред-удаление обектов ObjectDelete(0,objName); //Comment( (string)bLen ); //--- создадим кнопку if (!ObjectCreate(0,objName,OBJ_BUTTON, fmax(0,fmin(buttWindow,winTot)), 0, 0)) return(false); //--- установим координаты кнопки double XX = (buttCorner==0||buttCorner==2) ? 5+axisX : 10*buttSize/1.35+axisX; double YY = (5+axisY)+buttSize*2.25*NB; ObjectSetInteger(0,objName,OBJPROP_XDISTANCE, (int)XX); // координата по оси X ObjectSetInteger(0,objName,OBJPROP_YDISTANCE, (int)YY); // координата по оси Y ObjectSetInteger(0,objName,OBJPROP_XSIZE, int(buttSize*bLen)); // ширина кнопки //133 ObjectSetInteger(0,objName,OBJPROP_YSIZE, int(buttSize*2.0)); // высота кнопки //33 ObjectSetInteger(0,objName,OBJPROP_CORNER, buttCorner); // угол графика для привязки кнопки //CORNER_LEFT_UPPER ObjectSetString (0,objName,OBJPROP_TEXT, Text); // текст ObjectSetString (0,objName,OBJPROP_FONT, "Arial Black"); // шрифт ObjectSetInteger(0,objName,OBJPROP_FONTSIZE, buttSize); // размер шрифта ObjectSetInteger(0,objName,OBJPROP_COLOR, txtClr); // цвет текста ObjectSetInteger(0,objName,OBJPROP_BGCOLOR, bckClr); // цвет фона //C'236,233,216' ObjectSetInteger(0,objName,OBJPROP_BORDER_COLOR, clrNONE); // цвет границы ObjectSetInteger(0,objName,OBJPROP_BACK, false); // на заднем плане ObjectSetInteger(0,objName,OBJPROP_SELECTABLE, false); // кнопку можно выделить ObjectSetInteger(0,objName,OBJPROP_SELECTED, false); // выделить для перемещений ObjectSetInteger(0,objName,OBJPROP_HIDDEN, false); // скрыт в списке объектов ObjectSetInteger(0,objName,OBJPROP_ZORDER, 0); // приоритет на нажатие мышью ObjectSetInteger(0,objName,OBJPROP_STATE, OnOff); // кнопка нажата/отжата //--- успешное выполнение return(true); } //**************************************************************************** //*** ATRMA Levels MTF TT *** //**************************************************************************** void InitZero(int NB) { Comment(""); //for (int i=0; i<10; i++) SetIndexStyle(i,DRAW_NONE); //--- ArrayInitialize(POSS1,0.0); ArrayInitialize(NEGG1,0.0); ArrayInitialize(MAIN,0.0); ArrayInitialize(DOTZ,0.0); //for (int i=0; i