YZ_Book_All_PriceCH_V3

Author: Copyright 2021-2025
Price Data Components
Orders Execution
Checks for the total of open orders
Miscellaneous
Uses files from the file systemIt reads information from a fileIt reads information from a fileIt opens Message Boxes to the userIt writes information to fileIt writes information to file
0 Views
0 Downloads
0 Favorites
YZ_Book_All_PriceCH_V3
ÿþ//+------------------------------------------------------------------+

//|                                       YZ_Book_All_PriceCH_V2.mq5 |

//|                   Copyright 2020-2025, MetaQuotes Software Corp. |

//|                              https://www.mql5.com/ru/users/yuraz |

//| 16.01.2025 4>@01>B:0 2 A2O78 87<5=5=8O<8 ?;0BD>@<K               |

//| 21.01.2025 4>@01>B:0 48709=0 , 4>101>B:0 GB5=8O 482845=4>2       |

//|            A ?><>ILNA5@28A0, ?><8<> A:@8?B0                      |

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

#property copyright "Copyright 2021-2025"

#property link      "https://www.mql5.com/ru/users/yuraz"

#property version   "2.01"

#property description   "8@652>9 8=48:0B>@ 2021-2025"



#property indicator_chart_window

#property indicator_plots 1

#property indicator_buffers 1



// 2020.10.31 0B0 ?C1;8:0F88 https://www.mql5.com/ru/code/31706

//

// 2022.02.12 A?@02;5=0 >H81:0 >B>1@065=8O F5=K ,  DLNG5@AK

//            8709= 87<5=5=8O A2O70==K5 A >1@01>B:>9 DLNG5@A>2

//

// 2025.01.16 >@01>B:8 87<5=5=8O ?;0BD>@<K



#include <Trade\OrderInfo.mqh>

#define  dpYZ 10 // =0G0;> >B 25@E0

#define  dpXD 3



#define  gpPosStepX   60 //



unsigned char mapSpinDec[]=

  {

   0x42,0x4D,0x7A,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00

   ,0x00,0x00,0x0B,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x00

   ,0x00,0x00,0x44,0x01,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x1C,0xED

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x1C

   ,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24

   ,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24

   ,0x1C,0xED,0x24,0x1C,0xED,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED

   ,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x24,0x1C,0xED,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

  };



unsigned char mapSpinInc[]=

  {

   0x42,0x4D,0x56,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00

   ,0x00,0x00,0x0C,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x00

   ,0x00,0x00,0x20,0x01,0x00,0x00,0x12,0x0B,0x00,0x00,0x12,0x0B,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x1E,0x1E,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5

   ,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0xE6,0xB5,0x1D,0xE6

   ,0xB5,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x1D,0xE6,0xB5,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0xE6,0xB5,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

   ,0x00,0x00,0x00,0x00,0x00,0x00

  };



//#resource "SpinDec.png";

//#resource "SpinInc.png";



//#resource "CheckBoxOn.bmp";

//#resource "CheckBoxOff.bmp";

//string ButtonInfoID="yzInfoButtonSet";  // 8<O >1J5:B0 OBJ_BITMAP_LABEL



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

//|                                                                  |

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

enum  SelIndicator

  {

   NoSelect=0,

   Select=1

  };

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

//|                                                                  |

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

struct TYZTSParams

  {

   //   string            sSymbol;

   int               Select;

   int               SymDigits;





  };

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

//|                                                                  |

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

enum  myOpenChart

  {

   NoOneChart    =0, // 5 B:@K20BL G0@BK

   OpenChar      =1  // B:@KBL, 5A;8 =5 >B:@KB

  };



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

input myOpenChart                pChartOpen        =  NoOneChart           ; // '0@BK >B:@K20L 8;8 =5B

//input int pKontract=1;

//input int pSH=100;

input int pDay       = 60; // 8=8<0;L=> =5>1E>48<>5 :>;8G5AB2> 10@>2 ?> 8=AB@C<5=BC

input int pFONT_SIZE =  7; //  07<5@ H@8DB0



//input double pPrcMax=9;                    // '8B0BL ?@>F5=B 482845=4>2, A A09B0



input int                        pCORNER           = CORNER_LEFT_UPPER     ; // <5AB> @0A?>;>65=8O =0 M:@0=5

input bool                       pFlagOper         = false                 ; // ?>:07K20BL , =5 ?>:07K20BL ?>78F88

input bool                       pFlagGetDividend  = true                  ; // '8B0BL =5 G8B0BL 482845=4K





input color                      color_up          = clrLime               ;

input color                      color_down        = clrRed                ;

input int                        pYZ               = dpYZ                  ;

input int                        pXD               = dpXD                  ;

input int                        pYZStep           = 20                    ;



input int                        pYD_BASE_DEC      = 20                    ; // Y Step DEC

input int                        pYD_BASE_INC      = 20                    ; // Y Step INC

input int                        pXD_BASE_DEC      = 3                     ; // X Step DEC

input int                        pXD_BASE_INC      = 3                     ; // X Step INC



input int                        pPosStepX         = gpPosStepX            ; // X Step

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////





string sSymbol[];

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

//|                                                                  |

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

struct TYZTSvariable

  {

   //string            sSymbol;

   int               HandleInd;

   long              idChart;

   string            NameIndicator;

  };





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

//| Custom indicator initialization function                         |

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





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

//|                                                                  |

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

class CYZTS

  {

public:

                     CYZTS(

      bool _tradeDisabled=false

                          ,bool _drawDisabled=false

   );

                    ~CYZTS();

   void              myOnChartEvent(const int id,

                                    const long &lparam,

                                    const double &dparam,

                                    const string &sparam);



   void              ProcessTick(string sSym);

   void              OnEventTimer(void);

   void              myOnBookEvent(const string &symbol) ;

   

   int               gCountSym;   

private:

   void              SetInit(void);

   string            GetTickDescription(MqlTick &tick) ;

   int               GetSrHistor(string sSymbol);

   void              ProcessTickSymbol(string sSym);

   void              CreateDataParams();

   void              DeleteIndicators(void);

   void              startDisplay(void);

   string            GetDividend(string sSymbol,int iSym);

   string            GetK?;0B0(string ssSymbol,int iSym);

   void              @>25@8BLA;85B">B:@KBL'0@B(int iPos);

   void              ReadDividend(void);

   void              GetDividendFrom_www_dohod_ru(string sSymbol);

   void              GetDividendFrom_www_dohod_ru_File(string sSymbol, int iSym);

   void              OrderGetInfoSymbol(string ssSymbol, int iSym);

   void              MyDestroy(void);

/////////////////////////////////////////////////////////////////////////////////////////////////

   COrderInfo        m_order;

   color             clrColor;

   color             clrColorPrc;

   MqlTick           ticks_array[];

   double            sym_1[];

   double            sym_1s[];

   double            sym_1b[];

   double            sym_Contract[];

   double            sym_Cena[];

   double            sym_POSITION_VOLUME[];

   double            sym_Position_Summa[];

   double            sym_POSITION_PROFIT[];

   double            sym_POSITION_TP[];

   double            sym_POSITION_TPProfit[];

   double            sym_POSITION_PRICE_OPEN[];

   double            rb1[];

   double            rs1[];

   double            s1prc[];

   double            sym_Ask[];

   double            sym_Bid[];

   color             colors[];

   color             colorsBS[];

   color             colorss1prcSave[];

   double            s1prcSave[];

   string            symDiv[];

   string            symK?;0B0[];

   double            sym_>;8G5AB2>:F89[];

   double            sym_!C<<082845=4>2[];

   double            sym_Position_SummaAll;

   double            sym_!C<<082845=4>2A53>;

   double            sym_Summa@>D8B;

   double            LastCenaSave[];

   double            TPProfit;

   double            sym_TPProfit;

   double            sym_Order_Volume[];

   double            sym_Order_PRICE_OPEN[];

   double            sym_Order_Summa[];

   double            sym_Order_>;8G5AB2>:F89[];

   double            sym_Order_!C<<082845=4>2[];

   string            sym_Order_K?;0B0[];

   int               ThisStock[];

   TYZTSvariable     Variable[];

   TYZTSParams       params[];

   int               XD;

   int               YD;



  };



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

//|                                                                  |

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

void              CYZTS::myOnBookEvent(const string &symbol)

  {

   startDisplay();

  }





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

//|                                                                  |

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

void              CYZTS::myOnChartEvent(const int id,

                                        const long &lparam,

                                        const double &dparam,

                                        const string &sparam)

  {

// startDisplay();

  }



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

//|                                                                  |

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

void CYZTS::OnEventTimer(void)

  {

//startDisplay();

//MqlDateTime mdt;

//datetime t=TimeCurrent(mdt);

//MqlDateTime str1;

//TimeToStruct(t,str1);

//string strt=StringFormat("%02d.%02d.%4d %02d.%02d.%02d",str1.day,str1.mon,str1.year,str1.hour,str1.min,str1.sec);

//Comment(strt);

  }

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

//|                                                                  |

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

int CYZTS::GetSrHistor(string ssSymbol)

  {

   int max_bars=TerminalInfoInteger(TERMINAL_MAXBARS);

   int iBar=Bars(ssSymbol,PERIOD_D1);

   double  HighAsSeries[];

   double  LowAsSeries[];

   datetime TimeAsSeries[];



   ArraySetAsSeries(TimeAsSeries,true);

   ArraySetAsSeries(HighAsSeries,true);

   ArraySetAsSeries(LowAsSeries,true);



   if(iBar<=pDay)

      return(0);



   int iS;

   iS=ArrayResize(HighAsSeries,iBar);

   if(iS!=iBar)

      return(0);

   iS=ArrayResize(LowAsSeries,iBar);

   if(iS!=iBar)

      return(0);

   iS=ArrayResize(TimeAsSeries,iBar);

   if(iS!=iBar)

      return(0);

   int copied;

   copied=CopyTime(ssSymbol,PERIOD_D1,0,iBar,TimeAsSeries);

   if(copied!=iBar)

      return(0);

   copied=CopyHigh(ssSymbol,PERIOD_D1,0,iBar,HighAsSeries);

   if(copied!=iBar)

      return(0);

   copied=CopyLow(ssSymbol,PERIOD_D1,0,iBar,LowAsSeries);

   if(copied!=iBar)

      return(0);



// string sDAY=TimeToString(TimeAsSeries[1],TIME_DATE);

// double HL=HighAsSeries[1]-LowAsSeries[1];

   double sHR= 0;

   for(int i = 1; i <= pDay; i++)

     {

      sHR=sHR+(HighAsSeries[i]-LowAsSeries[i]);

      // sDAY=TimeToString(TimeAsSeries[i],TIME_DATE);

     }

   sHR=sHR/pDay;

   return(int(sHR));

  }

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

//|                                                                  |

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

CYZTS::CYZTS(

   bool _tradeDisabled

   ,bool _drawDisabled

)

  {

   SetInit();

  }







void CYZTS::SetInit()

{

   int lReal=0;

   gCountSym = SymbolsTotal(true);  // false - A5 A8<2>;K , true   B>;L:> A8<2>;K 2 MarketWatch

   



   sym_Position_SummaAll=0;

   sym_!C<<082845=4>2A53>=0;

   sym_Summa@>D8B=0;

   TPProfit=0;

   int i;

// string lsymDiv;

   string ssSymbol;

   for(i=0; i<gCountSym; i++)  // =0945< 8=AB@C<5=BK A :>=B@0:B>< pKontract

     {

      ssSymbol = SymbolName(i, true);

      //lsymDiv = GetDividend(ssSymbol);



      //StringReplace(lsymDiv,"%","");

      //if(StringToDouble(lsymDiv) >= pPrcMax)

      //  {

      //   SymbolSelect(ssSymbol,true); // 2:;NG8< A8<2>; 2  MarketWatch

      //  }

      //else

      //  {

      //   SymbolSelect(ssSymbol,false); // 2:;NG8< A8<2>; 2  MarketWatch

      //  }





      //int trade_mode=(int)SymbolInfoInteger(ssSymbol,SYMBOL_TRADE_MODE);

      //switch(trade_mode)

      //  {

      //   case SYMBOL_TRADE_MODE_DISABLED: SymbolSelect(ssSymbol,false);

      //   break;

      //   case SYMBOL_TRADE_MODE_LONGONLY: SymbolSelect(ssSymbol,false);

      //   break;

      //   case SYMBOL_TRADE_MODE_SHORTONLY: SymbolSelect(ssSymbol,false);

      //   break;

      //   case SYMBOL_TRADE_MODE_CLOSEONLY: SymbolSelect(ssSymbol,false);

      //   break;

      //   case SYMBOL_TRADE_MODE_FULL: SymbolSelect(ssSymbol,true);

      //   break;

      //  }



      SymbolSelect(ssSymbol,true);



     }



// 0 2KE>45 8<55< B>;L:> B5 0:F88 :>B>@K5 40NB 482845=4K 1>;55 G5< pPrcMax ?@>F5=B>2 - ?> C<>;G0=8N 10%



   gCountSym=SymbolsTotal(true);   // false - A5 A8<2>;K , true   B>;L:> A8<2>;K 2 MarketWatch







   i=gCountSym;

   ArrayResize(sym_1,i+2);

   ArrayResize(sym_1s,i+2);

   ArrayResize(sym_1b,i+2);

   ArrayResize(rb1,i+2);

   ArrayResize(rs1,i+2);

   ArrayResize(s1prc,i+2);

   ArrayResize(colors,i+2);

   ArrayResize(colorsBS,i+2);

   ArrayResize(colorss1prcSave,i+2);

   ArrayResize(s1prcSave,i+2);

   ArrayResize(sSymbol,i+2,i+2);

   ArrayResize(symDiv,i+2);

   ArrayResize(sym_Contract,i+2);

   ArrayResize(sym_Cena,i+2);

   ArrayResize(symK?;0B0,i+2);



   ArrayResize(sym_>;8G5AB2>:F89,i+2);

   ArrayResize(sym_!C<<082845=4>2,i+2);



//   ArrayResize(sym_VolumeOrder,i+2);



   ArrayResize(sym_POSITION_VOLUME,i+2);

   ArrayResize(sym_Position_Summa,i+2);

   ArrayResize(sym_POSITION_PROFIT,i+2);

   ArrayResize(sym_POSITION_TP,i+2);

   ArrayResize(sym_POSITION_TPProfit,i+2);

   ArrayResize(sym_POSITION_PRICE_OPEN,i+2);



   ArrayResize(sym_Order_Volume,i+2);

   ArrayResize(sym_Order_PRICE_OPEN,i+2);

   ArrayResize(sym_Order_Summa,i+2);

   ArrayResize(sym_Order_>;8G5AB2>:F89,i+2);

   ArrayResize(sym_Order_!C<<082845=4>2,i+2);

   ArrayResize(LastCenaSave,i+2);

   ArrayResize(ThisStock,i+2);





   for(i=0; i<gCountSym; i++)  // =0945< 8=AB@C<5=BK A :>=B@0:B>< pKontract

     {



      LastCenaSave[i] = SymbolInfoDouble(sSymbol[i],SYMBOL_LAST);



      sym_Order_Summa[i]=0;

      //SymbolSelect(SymbolName(i,true),false); // +:;NG8< A8<2>;   MarketWatch

      sSymbol[i]=SymbolName(i,true); // false); // 03>=8< A8<2>; 2 <0AA82







      //if(SymbolInfoDouble(SymbolName(i,true),SYMBOL_TRADE_CONTRACT_SIZE) <= pKontract && SymbolName(i,true) != "" && SymbolInfoDouble(SymbolName(i,true),SYMBOL_SESSION_VOLUME) > 0  && (int)SymbolInfoInteger(SymbolName(i,true),SYMBOL_TRADE_MODE) ==  SYMBOL_TRADE_MODE_FULL)  // && (int)SymbolInfoInteger(SymbolName(i,true),SYMBOL_TRADE_MODE) !=  SYMBOL_TRADE_MODE_LONGONLY )

        //{



         //ArrayResize(sym_1,i+2);

         //ArrayResize(sym_1s,i+2);

         //ArrayResize(sym_1b,i+2);

         //ArrayResize(rb1,i+2);

         //ArrayResize(rs1,i+2);

         //ArrayResize(s1prc,i+2);

         //ArrayResize(colors,i+2);

         //ArrayResize(colorsBS,i+2);

         //ArrayResize(colorss1prcSave,i+2);

         //ArrayResize(s1prcSave,i+2);

         //ArrayResize(sSymbol,i+2,i+2);



         // printf("[%s] %f %f",sSymbol[i], SymbolInfoDouble(sSymbol[i],SYMBOL_TRADE_CONTRACT_SIZE), SymbolInfoDouble(sSymbol[i],SYMBOL_SESSION_VOLUME));



         sSymbol[i]=SymbolName(i,true); // false); // 03>=8< A8<2>; 2 <0AA82

         // int srHL = GetSrHistor(sSymbol[i]);

         // if ( srHL > pSH )

         // {

         SymbolSelect(sSymbol[i],true); // 2:;NG8< A8<2>; 2  MarketWatch

         // }

         lReal++;

         string strSYMBOL_DESCRIPTION=SymbolInfoString(sSymbol[i],SYMBOL_DESCRIPTION);

         if (StringFind(strSYMBOL_DESCRIPTION, "$LNG5@A=K9", 0 ) == -1 )

        {

             ThisStock[i] = 1;

             //printf(" :>=B@ ?5G0BL 0:F8O  [%s] %s %d" ,sSymbol[i] , strSYMBOL_DESCRIPTION , ThisStock[i]);

        }

         else

         {

             ThisStock[i] = 0;

             //printf(" :>=B@ ?5G0BL DLNG5@A [%s] %s %d" ,sSymbol[i] , strSYMBOL_DESCRIPTION , ThisStock[i]);

         }   

         symDiv[i]=" ";

         if ( ThisStock[i] == 1 )

         {

            ssSymbol = sSymbol[i];

            StringToLower(ssSymbol);

            symDiv[i] = GetDividend(ssSymbol, i);

            symK?;0B0[i]= GetK?;0B0(ssSymbol, i);

         }

              LastCenaSave[i] = SymbolInfoDouble(sSymbol[i],SYMBOL_LAST); 

     }



   gCountSym = lReal;



//   if(pFlagGetDividend == true)

//     {

//      ReadDividend(); // 70G8B05< 482845=4K

//     }



   GlobalVariableSet("yzGetDivident",1);

   CreateDataParams();

}

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

//|                                                                  |

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

void CYZTS::CreateDataParams()

  {

   ArrayResize(params,gCountSym+2,gCountSym+2);

   ArrayResize(Variable,gCountSym+2,gCountSym+2);

   YD = pYZ ; 

   XD = pXD ;

   int NumberX=0;

   for(int i=0; i<gCountSym; i++)

     {

      //Variable[i].HandleInd=iCustom(sSymbol[i],PERIOD_CURRENT,"YuraZ_GetSymbolTick",ChartID(),i);



      MarketBookAdd(sSymbol[i]);



      if(pChartOpen==OpenChar)

        {

         @>25@8BLA;85B">B:@KBL'0@B(i);

         //ChartIndicatorAdd(Variable[i].idChart,0,Variable[i].HandleInd);

        }

     }



   for(int i=0; i<gCountSym; i++)

     {

      if(!SymbolInfoInteger(sSymbol[i],SYMBOL_SELECT))

        {

         if(GetLastError()==ERR_MARKET_UNKNOWN_SYMBOL)

            return; //(-1);

         SymbolSelect(sSymbol[i-1],true);

        }

      params[i].Select=1;

      params[i].SymDigits = (int)SymbolInfoInteger(sSymbol[i],SYMBOL_DIGITS);





      if(params[i].Select==1)

        {

         if(pChartOpen==OpenChar)

           {

           }

         /////////

         if(ObjectFind(0,sSymbol[i]+"prcsbDirect")<0)//--- A>74048< :=>?:C OBJ_BITMAP_LABEL, 5A;8 55 5I5 =5B

           {

            bool created=myObjectCreate(0,sSymbol[i]+"prcsbDirect",OBJ_BITMAP_LABEL,0,0,0);//--- ?>?@>1C5< A>740BL >1J5:B OBJ_BITMAP_LABEL

            if(created)

              {

               ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_SELECTABLE,false);

               ChartRedraw(0); //--- >B4048< 3@0D8:C :><0=4C =0 >1=>2;5=85, GB>1K :=>?:0 ?>O28;0AL A@07C 65, =5 4>6840OAL B8:0

              }

            else

              {

               //--- >1J5:B A>740BL =5 C40;>AL, A>>1I8< >1 MB><

               PrintFormat("5 C40;>AL A>740BL >1J5:B OBJ_BITMAP_LABEL. Error code %d",GetLastError());

              }

           }





         if(ObjectFind(0,sSymbol[i]+"prcDirect")<0)//--- A>74048< :=>?:C OBJ_BITMAP_LABEL, 5A;8 55 5I5 =5B

           {

            bool created=myObjectCreate(0,sSymbol[i]+"prcDirect",OBJ_BITMAP_LABEL,0,0,0);//--- ?>?@>1C5< A>740BL >1J5:B OBJ_BITMAP_LABEL

            if(created)

              {

               ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_SELECTABLE,false);

               ChartRedraw(0); //--- >B4048< 3@0D8:C :><0=4C =0 >1=>2;5=85, GB>1K :=>?:0 ?>O28;0AL A@07C 65, =5 4>6840OAL B8:0

              }

            else

              {

               //--- >1J5:B A>740BL =5 C40;>AL, A>>1I8< >1 MB><

               PrintFormat("5 C40;>AL A>740BL >1J5:B OBJ_BITMAP_LABEL. Error code %d",GetLastError());

              }

           }



         ////////



         YD=YD+ pYZStep ;





         SymbolSelect(sSymbol[i],true);

         PositionSelect(sSymbol[i]);







         PositionGetDouble(POSITION_VOLUME, sym_POSITION_VOLUME[i]);

         PositionGetDouble(POSITION_PRICE_OPEN, sym_POSITION_PRICE_OPEN[i]);

         //         PositionGetDouble( POSITION_PRICE_CURRENT  ,);

         PositionGetDouble(POSITION_PROFIT, sym_POSITION_PROFIT[i]);

         PositionGetDouble(POSITION_TP, sym_POSITION_TP[i]);



         sym_Contract[i]=SymbolInfoDouble(sSymbol[i],SYMBOL_TRADE_CONTRACT_SIZE);

         sym_Contract[i]=SymbolInfoDouble(sSymbol[i],SYMBOL_TRADE_CONTRACT_SIZE);



         sym_Position_Summa[i] = (sym_POSITION_VOLUME[i]*sym_Contract[i]) * sym_POSITION_PRICE_OPEN[i];



         sym_POSITION_TPProfit[i] = (sym_POSITION_VOLUME[i]*sym_Contract[i]) * sym_POSITION_TP[i];



         sym_>;8G5AB2>:F89[i] = sym_POSITION_VOLUME[i]*sym_Contract[i];

         sym_!C<<082845=4>2[i] = StringToDouble(symK?;0B0[i])*sym_>;8G5AB2>:F89[i];



         NumberX = 1;

         myObjectCreate(0,sSymbol[i]+"sym",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"sym",OBJPROP_SELECTABLE,false);

         myObjectSetTextNew(0,sSymbol[i]+"sym",sSymbol[i],pFONT_SIZE,"Arial",clrLime);

         myObjectSet(0,sSymbol[i]+"sym",OBJPROP_CORNER,pCORNER);

         myObjectSet(0,sSymbol[i]+"sym",OBJPROP_XDISTANCE,XD);

         myObjectSet(0,sSymbol[i]+"sym",OBJPROP_YDISTANCE,YD);

         

         if ( pFlagGetDividend == true )

         { 

           if(ThisStock[i] == 1 ) 

           {

            myObjectCreate(0,sSymbol[i]+"div",OBJ_LABEL,0,0,0,0,0);

            ObjectSetInteger(0,sSymbol[i]+"div",OBJPROP_SELECTABLE,false);

            myObjectSetTextNew(0,sSymbol[i]+"div",symDiv[i],pFONT_SIZE,"Arial",clrLime);

            myObjectSet(0,sSymbol[i]+"div",OBJPROP_CORNER,pCORNER);

            myObjectSet(0,sSymbol[i]+"div",OBJPROP_XDISTANCE,XD+pPosStepX*NumberX );

            NumberX = NumberX + 1;

            myObjectSet(0,sSymbol[i]+"div",OBJPROP_YDISTANCE,YD);



            myObjectCreate(0,sSymbol[i]+"divv",OBJ_LABEL,0,0,0,0,0);

            ObjectSetInteger(0,sSymbol[i]+"divv",OBJPROP_SELECTABLE,false);

            myObjectSetTextNew(0,sSymbol[i]+"divv",symK?;0B0[i],pFONT_SIZE,"Arial",clrLime);

            myObjectSet(0,sSymbol[i]+"divv",OBJPROP_CORNER,pCORNER);

            myObjectSet(0,sSymbol[i]+"divv",OBJPROP_XDISTANCE,XD+pPosStepX*NumberX );

            NumberX = NumberX + 1;

            myObjectSet(0,sSymbol[i]+"divv",OBJPROP_YDISTANCE,YD);

           }

           else

               NumberX = NumberX + 2;

         }  

         myObjectCreate(0,sSymbol[i]+"Contract",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"Contract",OBJPROP_SELECTABLE,false);

         myObjectSetTextNew(0,sSymbol[i]+"Contract",DoubleToString(sym_Contract[i],0),pFONT_SIZE,"Arial",clrLime);

         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_CORNER,pCORNER);

         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_XDISTANCE,XD+ pPosStepX*NumberX );

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_YDISTANCE,YD);





         myObjectCreate(0,sSymbol[i]+"Cena",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"Cena",OBJPROP_SELECTABLE,false);

         myObjectSetTextNew(0,sSymbol[i]+"Cena",DoubleToString(SymbolInfoDouble(sSymbol[i],SYMBOL_LAST), params[i].SymDigits),pFONT_SIZE,"Arial",clrYellow);

         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_CORNER,pCORNER);

         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_YDISTANCE,YD);



         ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX)-15 );

         // NumberX = NumberX + 1;

         ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"prcDirect",OBJPROP_CORNER,pCORNER);



         myObjectCreate(0,sSymbol[i]+"prc",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"prc",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_CORNER,pCORNER);

         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_YDISTANCE,YD);





         myObjectCreate(0,sSymbol[i]+"BV",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"BV",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_CORNER,pCORNER);





         myObjectCreate(0,sSymbol[i]+"SV",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"SV",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_CORNER,pCORNER);





         myObjectCreate(0,sSymbol[i]+"sb",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"sb",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_CORNER,pCORNER);





         //{{{ 2025.01.17

         ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX)-15);

         // NumberX = NumberX + 1;

         ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"prcsbDirect",OBJPROP_CORNER,pCORNER);



         myObjectCreate(0,sSymbol[i]+"prcsb",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"prcsb",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_CORNER,pCORNER);

         //}}}



         myObjectCreate(0,sSymbol[i]+"BUY",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"BUY",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"BUY",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"BUY",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"BUY",OBJPROP_CORNER,pCORNER);



         myObjectCreate(0,sSymbol[i]+"SELL",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"SELL",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"SELL",OBJPROP_XDISTANCE,XD+(pPosStepX*NumberX));

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"SELL",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"SELL",OBJPROP_CORNER,pCORNER);



         myObjectCreate(0,sSymbol[i]+"prcSellBay",OBJ_LABEL,0,0,0,0,0);

         ObjectSetInteger(0,sSymbol[i]+"prcSellBay",OBJPROP_SELECTABLE,false);

         myObjectSet(0,sSymbol[i]+"prcSellBay",OBJPROP_XDISTANCE,XD+pPosStepX*NumberX);

         NumberX = NumberX + 1;

         myObjectSet(0,sSymbol[i]+"prcSellBay",OBJPROP_YDISTANCE,YD);

         myObjectSet(0,sSymbol[i]+"prcSellBay",OBJPROP_CORNER,pCORNER);







         if(pFlagOper == true)

           {

            if(sym_Position_Summa[i] != 0)

              {

               myObjectCreate(0,sSymbol[i]+"PosSumma",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"PosSumma",OBJPROP_SELECTABLE,false);

               // printf("[%s] %s",sSymbol[i],symDiv[i]);

               myObjectSetTextNew(0,sSymbol[i]+"PosSumma",DoubleToString(sym_Position_Summa[i],2),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"PosSumma",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"PosSumma",OBJPROP_XDISTANCE,XD+pPosStepX*14);

               NumberX = NumberX + 1;

               myObjectSet(0,sSymbol[i]+"PosSumma",OBJPROP_YDISTANCE,YD);



               myObjectCreate(0,sSymbol[i]+"PosProfit",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"PosProfit",OBJPROP_SELECTABLE,false);

               // printf("[%s] %s",sSymbol[i],symDiv[i]);

               if(sym_POSITION_PROFIT[i] >= 0)

                  myObjectSetTextNew(0,sSymbol[i]+"PosProfit",DoubleToString(sym_POSITION_PROFIT[i],2),pFONT_SIZE,"Arial",clrLimeGreen);

               if(sym_POSITION_PROFIT[i] < 0)

                  myObjectSetTextNew(0,sSymbol[i]+"PosProfit",DoubleToString(sym_POSITION_PROFIT[i],2),pFONT_SIZE,"Arial",clrRed);

               myObjectSet(0,sSymbol[i]+"PosProfit",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"PosProfit",OBJPROP_XDISTANCE,XD+pPosStepX*15);

               NumberX = NumberX + 1;

               myObjectSet(0,sSymbol[i]+"PosProfit",OBJPROP_YDISTANCE,YD);



               sym_Summa@>D8B = sym_Summa@>D8B + sym_POSITION_PROFIT[i];

               // %  >AB0 8;8 ?045=8O



               myObjectCreate(0,sSymbol[i]+"sym_Prc",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"sym_Prc",OBJPROP_SELECTABLE,false);

               double Prc = sym_POSITION_PROFIT[i] / sym_Position_Summa[i] * 100;

               myObjectSetTextNew(0,sSymbol[i]+"sym_Prc",DoubleToString(Prc, 2),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"sym_Prc",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"sym_Prc",OBJPROP_XDISTANCE,XD+pPosStepX*16);

               myObjectSet(0,sSymbol[i]+"sym_Prc",OBJPROP_YDISTANCE,YD);



               myObjectCreate(0,sSymbol[i]+"sym_TPProfit",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"sym_TPProfit",OBJPROP_SELECTABLE,false);



               myObjectSetTextNew(0,sSymbol[i]+"sym_TPProfit",DoubleToString(sym_POSITION_TPProfit[i], 2),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"sym_TPProfit",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"sym_TPProfit",OBJPROP_XDISTANCE,XD+pPosStepX*17);

               myObjectSet(0,sSymbol[i]+"sym_TPProfit",OBJPROP_YDISTANCE,YD);









               myObjectCreate(0,sSymbol[i]+"sym_>;8G5AB2>:F89",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"sym_>;8G5AB2>:F89",OBJPROP_SELECTABLE,false);

               // printf("[%s] %s",sSymbol[i],symDiv[i]);

               myObjectSetTextNew(0,sSymbol[i]+"sym_>;8G5AB2>:F89",DoubleToString(sym_>;8G5AB2>:F89[i],0),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"sym_>;8G5AB2>:F89",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"sym_>;8G5AB2>:F89",OBJPROP_XDISTANCE,XD+pPosStepX*18);

               myObjectSet(0,sSymbol[i]+"sym_>;8G5AB2>:F89",OBJPROP_YDISTANCE,YD);





               myObjectCreate(0,sSymbol[i]+"sym_!C<<082845=4>2",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"sym_!C<<082845=4>2",OBJPROP_SELECTABLE,false);

               // printf("[%s] %s",sSymbol[i],symDiv[i]);

               myObjectSetTextNew(0,sSymbol[i]+"sym_!C<<082845=4>2",DoubleToString(sym_!C<<082845=4>2[i],2),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"sym_!C<<082845=4>2",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"sym_!C<<082845=4>2",OBJPROP_XDISTANCE,XD+pPosStepX*19);

               myObjectSet(0,sSymbol[i]+"sym_!C<<082845=4>2",OBJPROP_YDISTANCE,YD);



               sym_!C<<082845=4>2A53>  = sym_!C<<082845=4>2A53> +sym_!C<<082845=4>2[i];

               sym_Position_SummaAll = sym_Position_SummaAll +sym_Position_Summa[i];

              }



            OrderGetInfoSymbol(sSymbol[i], i);  // >;CG8BL 40==K ?> >B;>6:0<



            if(sym_Order_Summa[i] > 0)

              {



               myObjectCreate(0,sSymbol[i]+"OrderSumma",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"OrderSumma",OBJPROP_SELECTABLE,false);

               myObjectSetTextNew(0,sSymbol[i]+"OrderSumma",DoubleToString(sym_Order_Summa[i],2),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"OrderSumma",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"OrderSumma",OBJPROP_XDISTANCE,XD+pPosStepX*17);

               myObjectSet(0,sSymbol[i]+"OrderSumma",OBJPROP_YDISTANCE,YD);



               myObjectCreate(0,sSymbol[i]+"sym_O>;8G5AB2>:F89",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"sym_O>;8G5AB2>:F89",OBJPROP_SELECTABLE,false);

               myObjectSetTextNew(0,sSymbol[i]+"sym_O>;8G5AB2>:F89",DoubleToString(sym_Order_>;8G5AB2>:F89[i],0),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"sym_O>;8G5AB2>:F89",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"sym_O>;8G5AB2>:F89",OBJPROP_XDISTANCE,XD+pPosStepX*18);

               myObjectSet(0,sSymbol[i]+"sym_O>;8G5AB2>:F89",OBJPROP_YDISTANCE,YD);





               myObjectCreate(0,sSymbol[i]+"sym_O!C<<082845=4>2",OBJ_LABEL,0,0,0,0,0);

               ObjectSetInteger(0,sSymbol[i]+"sym_O!C<<082845=4>2",OBJPROP_SELECTABLE,false);

               myObjectSetTextNew(0,sSymbol[i]+"sym_O!C<<082845=4>2",DoubleToString(sym_Order_!C<<082845=4>2[i],2),pFONT_SIZE,"Arial",clrYellow);

               myObjectSet(0,sSymbol[i]+"sym_O!C<<082845=4>2",OBJPROP_CORNER,pCORNER);

               myObjectSet(0,sSymbol[i]+"sym_O!C<<082845=4>2",OBJPROP_XDISTANCE,XD+pPosStepX*19);

               myObjectSet(0,sSymbol[i]+"sym_O!C<<082845=4>2",OBJPROP_YDISTANCE,YD);



              }







            myObjectCreate(0,"PosSummaAll",OBJ_LABEL,0,0,0,0,0);

            ObjectSetInteger(0,"PosSummaAll",OBJPROP_SELECTABLE,false);

            myObjectSetTextNew(0,"PosSummaAll",DoubleToString(sym_Position_SummaAll,2),pFONT_SIZE,"Arial",clrYellow);

            myObjectSet(0,"PosSummaAll",OBJPROP_CORNER,pCORNER);

            myObjectSet(0,"PosSummaAll",OBJPROP_XDISTANCE,XD+pPosStepX*14);

            myObjectSet(0,"PosSummaAll",OBJPROP_YDISTANCE,YD+10+10);



            myObjectCreate(0,"PosSumma",OBJ_LABEL,0,0,0,0,0);

            ObjectSetInteger(0,"PosSumma",OBJPROP_SELECTABLE,false);

            myObjectSetTextNew(0,"PosSumma",DoubleToString(sym_Summa@>D8B,2),pFONT_SIZE,"Arial",clrYellow);

            myObjectSet(0,"PosSumma",OBJPROP_CORNER,pCORNER);

            myObjectSet(0,"PosSumma",OBJPROP_XDISTANCE,XD+pPosStepX*15);

            myObjectSet(0,"PosSumma",OBJPROP_YDISTANCE,YD+10+10);



            myObjectCreate(0,"PosTPProfit",OBJ_LABEL,0,0,0,0,0);

            ObjectSetInteger(0,"PosTPProfit",OBJPROP_SELECTABLE,false);

            myObjectSetTextNew(0,"PosTPProfit",DoubleToString(sym_Summa@>D8B,2),pFONT_SIZE,"Arial",clrYellow);

            myObjectSet(0,"PosTPProfit",OBJPROP_CORNER,pCORNER);

            myObjectSet(0,"PosTPProfit",OBJPROP_XDISTANCE,XD+pPosStepX*17);

            myObjectSet(0,"PosTPProfit",OBJPROP_YDISTANCE,YD+10+10);



            myObjectCreate(0,"82SummaAll",OBJ_LABEL,0,0,0,0,0);

            ObjectSetInteger(0,"82SummaAll",OBJPROP_SELECTABLE,false);

            myObjectSetTextNew(0,"82SummaAll",DoubleToString(sym_!C<<082845=4>2A53>,2),pFONT_SIZE,"Arial",clrYellow);

            myObjectSet(0,"82SummaAll",OBJPROP_CORNER,pCORNER);

            myObjectSet(0,"82SummaAll",OBJPROP_XDISTANCE,XD+pPosStepX*19);

            myObjectSet(0,"82SummaAll",OBJPROP_YDISTANCE,YD+10+10);

           }

        }

     }

  }

  

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

//|                                                                  |

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

void CYZTS::startDisplay()

  {

   double close_array[4];



   int YD_BASE_DEC=pYD_BASE_DEC;

   int YD_BASE_INC=pYD_BASE_INC;

   int XD_BASE_DEC=pXD_BASE_DEC;

   int XD_BASE_INC=pXD_BASE_INC; 



   sym_Summa@>D8B=0;

   TPProfit=0;

   sym_TPProfit=0;





      

   for(int i=0; i<gCountSym; i++)

     {

      colorss1prcSave[i]=clrDarkViolet;

      colorsBS[i]=clrDarkViolet;

      ENUM_TIMEFRAMES timeframe=PERIOD_D1;

      int start_pos=1;

      int count=2;

      int  j=CopyClose(

                sSymbol[i],        // 8<O A8<2>;0

                timeframe,         // ?5@8>4

                start_pos,         // >B:C40 =0G=5<

                count,             // A:>;L:> :>?8@C5<

                close_array        // <0AA82 4;O :>?8@>20=8O F5= 70:@KB8O

             );

      //



      ulong to=TimeCurrent()*1000;

      ulong from=  to-PeriodSeconds(PERIOD_D1)*1000;





      MqlDateTime today;

      datetime current_time=TimeCurrent();//-86400;

      TimeToStruct(current_time,today);

      today.hour=0;

      today.min=0;

      today.sec=0;

      datetime startday=StructToTime(today);

      datetime endday=TimeCurrent(); // startday+24*60*60;



      to=    endday*1000;

      from=  startday*1000;



      //PrintFormat("startday=%s",TimeToString(startday));

      // Comment( TimeToString(startday) );

      int CountTicks = CopyTicksRange(sSymbol[i],ticks_array,COPY_TICKS_ALL,from,to);

      double dBUY=0;

      double dSELL=0;

      if(CountTicks > 0)

        {

         //   int ticks=ArraySize(ticks_array);

         //

         //   datetime firstticktime=ticks_array[ticks-1].time;

         //   PrintFormat("Last tick time = %s.%03I64u",

         //               TimeToString(firstticktime,TIME_DATE|TIME_MINUTES|TIME_SECONDS),ticks_array[ticks-1].time_msc%1000);

         //   datetime lastticktime=ticks_array[0].time;

         //   PrintFormat("First tick time = %s.%03I64u",

         //               TimeToString(lastticktime,TIME_DATE|TIME_MINUTES|TIME_SECONDS),ticks_array[0].time_msc%1000);

         for(int iTicks = 0; iTicks < CountTicks; iTicks++)

           {

            if((ticks_array[iTicks].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY)

               dBUY  = ticks_array[iTicks].volume_real + dBUY;

            if((ticks_array[iTicks].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL)

               dSELL = ticks_array[iTicks].volume_real + dSELL;

            //PrintFormat("%d. %s",iTicks,GetTickDescription(ticks_array[iTicks]));

           }

        }



      PositionSelect(sSymbol[i]);



      PositionGetDouble(POSITION_PROFIT, sym_POSITION_PROFIT[i]);

      PositionGetDouble(POSITION_TP, sym_POSITION_TP[i]);



      if(close_array[1] !=0)

         sym_1[i]  =(SymbolInfoDouble(sSymbol[i],SYMBOL_LAST)-close_array[1])*100/close_array[1];



      sym_1s[i] =SymbolInfoDouble(sSymbol[i],SYMBOL_SESSION_SELL_ORDERS_VOLUME);

      sym_1b[i] =SymbolInfoDouble(sSymbol[i],SYMBOL_SESSION_BUY_ORDERS_VOLUME);





      sym_POSITION_TPProfit[i] = (sym_POSITION_VOLUME[i]*sym_Contract[i]) * sym_POSITION_TP[i];

      sym_TPProfit = sym_TPProfit+ sym_POSITION_TPProfit[i];





      double pPrcSellBuy=0;



      clrColor = clrYellow;



      if(dBUY >= dSELL)

        {

         clrColorPrc = clrLimeGreen;

         if(dBUY !=0)

            pPrcSellBuy = ((dBUY - dSELL) * 100) / dBUY;

        }

      else

        {

         clrColorPrc = clrRed;

         if(dSELL !=0)

            pPrcSellBuy = ((dSELL - dBUY) * 100)/ dSELL;

         pPrcSellBuy=pPrcSellBuy-pPrcSellBuy-pPrcSellBuy;

        }



      myObjectSetTextNew(0,sSymbol[i]+"prcSellBay",DoubleToString(pPrcSellBuy,2),pFONT_SIZE,"Arial",clrColorPrc);

      myObjectSetTextNew(0,sSymbol[i]+"BUY",DoubleToString(dBUY,0),pFONT_SIZE,"Arial",clrColor);

      myObjectSetTextNew(0,sSymbol[i]+"SELL",DoubleToString(dSELL,0),pFONT_SIZE,"Arial",clrColor);







      if(sym_POSITION_PROFIT[i] > 0 && sym_Position_Summa[i] != 0)

        {

         myObjectSetTextNew(0,sSymbol[i]+"PosProfit",DoubleToString(sym_POSITION_PROFIT[i],2),pFONT_SIZE,"Arial",clrLimeGreen);

         myObjectSetTextNew(0,sSymbol[i]+"sym_Prc",DoubleToString(sym_POSITION_PROFIT[i] / sym_Position_Summa[i] * 100,2),pFONT_SIZE,"Arial",clrLimeGreen);



        }

      if(sym_POSITION_PROFIT[i] < 0 && sym_Position_Summa[i] != 0)

        {

         myObjectSetTextNew(0,sSymbol[i]+"PosProfit",DoubleToString(sym_POSITION_PROFIT[i],2),pFONT_SIZE,"Arial",clrRed);

         myObjectSetTextNew(0,sSymbol[i]+"sym_Prc",DoubleToString(sym_POSITION_PROFIT[i] / sym_Position_Summa[i] * 100,2),pFONT_SIZE,"Arial",clrRed);

        }

      sym_Summa@>D8B = sym_Summa@>D8B + sym_POSITION_PROFIT[i];



      OrderGetInfoSymbol(sSymbol[i], i);  // >;CG8BL 40==K ?> >B;>6:0<



      rs1[i]=0;

      rb1[i]=0;



      if(sym_1[i]>0)

         colors[i]=color_up;

      else

         colors[i]=color_down;



      if(sym_1b[i] !=0 && sym_1s[i] != 0)

         s1prc[i]=NormalizeDouble(100-(sym_1b[i]>sym_1s[i]?(sym_1s[i]*100)/sym_1b[i]:(sym_1b[i]*100)/sym_1s[i]),0);

      if(s1prc[i]>s1prcSave[i])

         colorss1prcSave[i]=color_up;

      if(s1prc[i]<s1prcSave[i])

         colorss1prcSave[i]=color_down;

      if(sym_1s[i]>sym_1b[i])

        {

         rs1[i]=sym_1s[i]-sym_1b[i];

         colorsBS[i]=color_down;

        }

      if(sym_1s[i]<sym_1b[i])

        {

         rb1[i]=sym_1b[i]-sym_1s[i];

         colorsBS[i]=color_up;

        }

      myObjectSet(0,sSymbol[i]+"sym",OBJPROP_COLOR,colors[i]);



      myObjectSetTextNew(0,sSymbol[i]+"prc",DoubleToString(sym_1[i],2),pFONT_SIZE,"Arial",clrLime);

      myObjectSet(0,sSymbol[i]+"prc",OBJPROP_COLOR,sym_1[i]>0?color_up:color_down);



      myObjectSetTextNew(0,sSymbol[i]+"BV",DoubleToString(sym_1b[i],0),pFONT_SIZE,"Arial",clrLime);

      myObjectSet(0,sSymbol[i]+"BV",OBJPROP_COLOR,color_up);



      myObjectSetTextNew(0,sSymbol[i]+"SV",DoubleToString(sym_1s[i],0),pFONT_SIZE,"Arial",clrLime);

      myObjectSet(0,sSymbol[i]+"SV",OBJPROP_COLOR,color_down);



      myObjectSetTextNew(0,sSymbol[i]+"sb",DoubleToString(rb1[i]>rs1[i]?rb1[i]:rs1[i],0),pFONT_SIZE,"Arial",clrLime);

      myObjectSet(0,sSymbol[i]+"sb",OBJPROP_COLOR,rb1[i]>rs1[i]?color_up:color_down);



      myObjectSetTextNew(0,sSymbol[i]+"prcsb",DoubleToString(s1prc[i],0),pFONT_SIZE,"Arial",clrLime);

      myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_COLOR,rb1[i]>rs1[i]? color_up:color_down);



      if(rb1[i]<rs1[i])

        {

         YD_BASE_DEC = YD_BASE_DEC + pYZStep;

         YD_BASE_INC = YD_BASE_INC + pYZStep;



      //   myObjectSet(0,sSymbol[i]+"sym",OBJPROP_XDISTANCE,XD_BASE_DEC);

      //   myObjectSet(0,sSymbol[i]+"sym",OBJPROP_YDISTANCE,YD_BASE_DEC);



        // myObjectSet(0,sSymbol[i]+"div",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg);

        // myObjectSet(0,sSymbol[i]+"div",OBJPROP_YDISTANCE,YD_BASE_DEC);



//         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+50+43);

//         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_YDISTANCE,YD_BASE_DEC);

//

//         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+50+40+43);

//         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_YDISTANCE,YD_BASE_DEC);

//

//         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_YDISTANCE,YD_BASE_DEC);

//

//         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+110+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_YDISTANCE,YD_BASE_DEC);

//

//         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+70+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_YDISTANCE,YD_BASE_DEC);

//

//         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+150+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_YDISTANCE,YD_BASE_DEC);



//         ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+190+50+50+50+43);

//         ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_YDISTANCE,YD_BASE_DEC);

         BitmapLabelSetImage(0,sSymbol[i]+"prcsbDirect",0,"\\Files\\SpinDec.bmp");



//         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+205+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_YDISTANCE,YD_BASE_DEC);



        }

      if(rb1[i]>=rs1[i])

        {

         YD_BASE_DEC = YD_BASE_DEC + pYZStep;

         YD_BASE_INC = YD_BASE_INC + pYZStep;



      //   myObjectSet(0,sSymbol[i]+"sym",OBJPROP_XDISTANCE,XD_BASE_INC);

      //   myObjectSet(0,sSymbol[i]+"sym",OBJPROP_YDISTANCE,YD_BASE_INC);



         //myObjectSet(0,sSymbol[i]+"div",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg);

         //myObjectSet(0,sSymbol[i]+"div",OBJPROP_YDISTANCE,YD_BASE_INC);



//         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+50+43);

//         myObjectSet(0,sSymbol[i]+"Contract",OBJPROP_YDISTANCE,YD_BASE_INC);

//

//         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+50+40+43);

//         myObjectSet(0,sSymbol[i]+"Cena",OBJPROP_YDISTANCE,YD_BASE_INC);

//

//

//         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"prc",OBJPROP_YDISTANCE,YD_BASE_INC);

//

//         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+110+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"SV",OBJPROP_YDISTANCE,YD_BASE_INC);

//

//         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+70+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"BV",OBJPROP_YDISTANCE,YD_BASE_INC);

//

//         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+150+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"sb",OBJPROP_YDISTANCE,YD_BASE_INC);



//         ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+190+50+50+50+43);

//         ObjectSetInteger(0,sSymbol[i]+"prcsbDirect",OBJPROP_YDISTANCE,YD_BASE_INC);

         BitmapLabelSetImage(0,sSymbol[i]+"prcsbDirect",0,"\\Files\\SpinInc.bmp");



//         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+205+50+50+50+43);

//         myObjectSet(0,sSymbol[i]+"prcsb",OBJPROP_YDISTANCE,YD_BASE_INC);





        }



      if(SymbolInfoDouble(sSymbol[i],SYMBOL_LAST) > LastCenaSave[i])

        {

         myObjectSetTextNew(0,sSymbol[i]+"Cena",DoubleToString(SymbolInfoDouble(sSymbol[i],SYMBOL_LAST), params[i].SymDigits),pFONT_SIZE,"Arial",clrGreen);

         LastCenaSave[i] = SymbolInfoDouble(sSymbol[i],SYMBOL_LAST);

        }

      if(SymbolInfoDouble(sSymbol[i],SYMBOL_LAST) < LastCenaSave[i])

        {

         myObjectSetTextNew(0,sSymbol[i]+"Cena",DoubleToString(SymbolInfoDouble(sSymbol[i],SYMBOL_LAST), params[i].SymDigits),pFONT_SIZE,"Arial",clrRed);

         LastCenaSave[i] = SymbolInfoDouble(sSymbol[i],SYMBOL_LAST);

        }



      if(sym_1[i] < 0)

        {

//         ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_XDISTANCE,XD_BASE_DEC+pPosBeg+35+50+50+43);

//         ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_YDISTANCE,YD_BASE_DEC);

         BitmapLabelSetImage(0,sSymbol[i]+"prcDirect",0,"\\Files\\SpinDec.bmp");

        }

      if(sym_1[i] > 0)

        {

//         ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_XDISTANCE,XD_BASE_INC+pPosBeg+35+50+50+43);

//         ObjectSetInteger(0,sSymbol[i]+"prcDirect",OBJPROP_YDISTANCE,YD_BASE_INC);

         BitmapLabelSetImage(0,sSymbol[i]+"prcDirect",0,"\\Files\\SpinInc.bmp");

        }



      s1prcSave[i]=s1prc[i];

      ChartRedraw(0);                                        // ?5@5@8AC5< >:=>

     }

   myObjectSetTextNew(0,"PosSumma",DoubleToString(sym_Summa@>D8B,2),pFONT_SIZE,"Arial",clrYellow);

   myObjectSetTextNew(0,"PosTPProfit",DoubleToString(sym_TPProfit,2),pFONT_SIZE,"Arial",clrYellow);

   return;

  }

  

  

  

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

//|                                                                  |

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

string CYZTS::GetDividend(string ssSymbol, int iSym)

  {

   string strReadFromFile="";

   int filehandle=FileOpen("yz_Div_"+ssSymbol+".dat",FILE_READ|FILE_CSV,"|");

   if(filehandle!=INVALID_HANDLE)

     {

      //--- A>E@0=O5< A>45@68<>5 <0AA820 result[] 2 D09;

      int str_size=FileReadInteger(filehandle,INT_VALUE);

      string str = FileReadString(filehandle,str_size);

      FileClose(filehandle); //--- 70:@K205< D09;

      int iPosBeg,iPosEnd ;

      iPosBeg = StringFind(str,"<",0);

      iPosEnd = StringFind(str,">",0);

      strReadFromFile=StringSubstr(str, iPosBeg+1,iPosEnd-iPosBeg-1);

     // ThisStock[iSym] = 1;

     // printf("GetDividend [%s] %s %s",sSymbol[iSym], str , strReadFromFile );

     }

   else

     {

      //ThisStock[iSym] = 0;

      strReadFromFile="=5B";

     }

   return strReadFromFile;

  }

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

//|                                                                  |

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

string CYZTS::GetK?;0B0(string ssSymbol, int iSym)

  {

   string strReadFromFile="";

   int filehandle=FileOpen("yz_Div_"+ssSymbol+".dat",FILE_READ|FILE_CSV,"|");

   if(filehandle!=INVALID_HANDLE)

     {

      int str_size=FileReadInteger(filehandle,INT_VALUE);

      string str = FileReadString(filehandle,str_size);

      FileClose(filehandle); //--- 70:@K205< D09;

      int iPosBeg,iPosEnd ;

      strReadFromFile = str; 

      iPosBeg = StringFind(strReadFromFile,"<",1);

      iPosEnd = StringFind(strReadFromFile,">",iPosBeg);

      strReadFromFile=StringSubstr(strReadFromFile, iPosBeg+1,iPosEnd-iPosBeg-1);

      //ThisStock[iSym] = 1;

      // printf("GetK?;0B0  [ %s] %s , %s %d",str , strReadFromFile , ssSymbol  ,  iSym);

     }

   else

     {

      //ThisStock[iSym] = 0;

      strReadFromFile="=5B";

     }

   return strReadFromFile;

  }







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

//|                                                                  |

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

void CYZTS::ReadDividend(void)

  {



   for(int i=0; i<gCountSym; i++)

     {

      string pSymbol =   SymbolName(i,true) ;  // false); // 03>=8< A8<2>; 2 <0AA82

      // GetDividendFrom_www_dohod_ru(pSymbol);

      

      StringToLower(pSymbol);

      GetDividendFrom_www_dohod_ru_File( pSymbol , i);

     }

  }



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

//|                                                                  |

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

void CYZTS::GetDividendFrom_www_dohod_ru_File(string pSymbol, int iSym)

  {



   int filehandle=FileOpen("yz_Div_"+pSymbol+".dat",FILE_READ|FILE_SHARE_READ|FILE_CSV,"|");



   //string s:F8O = "";

   //if (ThisStock[iSym] == 1)

   //    s:F8O = ":F8O "+pSymbol;

   //if (ThisStock[iSym] == 0)

   //    s:F8O = " :F8O "+pSymbol;



   if(filehandle!=INVALID_HANDLE)

     {

      // '8B05<

      string str = FileReadString(filehandle, -1);

      symDiv[iSym] = GetDividend(pSymbol, iSym);

      symK?;0B0[iSym ]= GetK?;0B0(pSymbol, iSym);

      FileClose(filehandle);

      //printf("ABL D09; 482845=4>2  %s  %s %d %d",  pSymbol  ,  s:F8O  , iSym , ThisStock[iSym] );

     }

   else

     {

         //printf("5B D09;0 482845=4>2  %s  %s %d %d",  pSymbol  ,  s:F8O  , iSym , ThisStock[iSym] );

     }

  }



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

//|                                                                  |

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

void CYZTS::GetDividendFrom_www_dohod_ru(string pSymbol)

  {

   string cookie=NULL,headers;

   char   post[],result[];

   int iPos2;

   int iPos1;

   string strK?;?B00:F8N;

   string url="https://www.dohod.ru/ik/analytics/dividend/" ; // https://www.dohod.ru/ik/analytics/dividend

   url=url+pSymbol;

//--- 4;O @01>BK A A5@25@>< =5>1E>48<> 4>1028BL URL "https://www.dohod.ru"

//--- 2 A?8A>: @07@5H5==KE URL (;02=>5 <5=N->!5@28A->0AB@>9:8, 2:;04:0 "!>25B=8:8"):

//--- >1=C;O5< :>4 ?>A;54=59 >H81:8

   ResetLastError();

//--- 703@C7:0 html-AB@0=8FK A Yahoo Finance

   int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers);

   if(res==-1)

     {

      Print("H81:0 2 WebRequest. >4 >H81:8  =",GetLastError());

      //--- 2>7<>6=>, URL >BACBAB2C5B 2 A?8A:5, 2K2>48< A>>1I5=85 > =5>1E>48<>AB8 53> 4>102;5=8O

      MessageBox("5>1E>48<> 4>1028BL 04@5A '"+url+"' 2 A?8A>: @07@5H5==KE URL 2> 2:;04:5 '!>25B=8:8'","H81:0",MB_ICONINFORMATION);

     }

   else

     {

      if(res==200)

        {

         //  0A?0@A8< @57C;LB0B

         // =09B8  482845=4K



         //        <table id="dividends-brief">

         //            <tr class="frow">

         //                <td class="greendark">11.54%</td>                <td class="dlmtr"></td>

         //                <td class="gray">2.14%</td>                <td class="dlmtr"></td>

         //                <td class="greenlight">0.79</td>            </tr>

         //            <tr class="srow">

         //                <td>B5:CI0O 4>E>4=>ABL</td><td class="dlmtr"></td>

         //                <td>4>;O >B ?@81K;8</td><td class="dlmtr"></td>

         //                                <td><a id="dsi-link" title="5B>48:0 @0AG5B0 8=45:A0 AB018;L=>AB8 482845=4=KE 2K?;0B (DSI)" href="/ik/analytics/dividend/pdf/dsi.pdf">8=45:A DSI</a></td>

         //            </tr>

         //        </table>

         string strPars = CharArrayToString(result,0,-1,CP_UTF8);

         string Div;



         iPos1 = StringFind(strPars,"<table id=\"dividends-brief\">",0); // 0945< =0G0;> B01;8FK 482845=4>2



         if(iPos1 !=0)

           {

            //string strPars;



            iPos1 = StringFind(strPars,"<p>!>2>:C?=K5 482845=4K 2 A;54CNI85 12m: <strong><span class=",0);

            //            //printf(" %d %d ",iPos1,iPos2   );

            iPos1 = iPos1+StringLen("<p>!>2>:C?=K5 482845=4K 2 A;54CNI85 12m: <strong><span class=");

            //            //printf(" %d %d ",iPos1,iPos2   );

            iPos1 = StringFind(strPars,">",iPos1)+1;

            //            //printf(" %d %d ",iPos1,iPos2   );

            iPos2 = StringFind(strPars,"</span>",iPos1);

            //            //printf(" %d %d ",iPos1,iPos2   );

            //

            strK?;?B00:F8N = StringSubstr(strPars, iPos1, iPos2-iPos1);  //iPos2-iPos1  );

            printf("%s %d %d  %d [%s] ",pSymbol, iPos2-iPos1,iPos1,iPos2, strK?;?B00:F8N);



            iPos1 = StringFind(strPars,"<table id=\"dividends-brief\">",0); // 0945< =0G0;> B01;8FK 482845=4>2

            strPars = StringSubstr(strPars, iPos1, 500);

            iPos1 = StringFind(strPars,"<tr class=\"frow\">",0);  // =0945< <tr class="frow">

            strPars = StringSubstr(strPars, iPos1+1, 500);

            iPos1 = StringFind(strPars,"<td class=",0)+1;  //  <td class=  BCB <>65B 1KBL @07=K9 F25B

            strPars = StringSubstr(strPars, iPos1, 500);

            iPos1 = StringFind(strPars,">",0); // 0E48< >3@0=8G8B5;L F25B0

            iPos2 = StringFind(strPars,"</td>",0); // =0945< 7025@H5=85  </td>   ?@8<5@ ---}}}}    >11.54%</td>

            Div = StringSubstr(strPars,iPos1+1,iPos2 - 1 - iPos1) ; // 2K@5705< 482845=4K

            printf("[%s] [%s] [%s]",pSymbol, Div, strK?;?B00:F8N);





            int filehandle=FileOpen("yz_Div_"+pSymbol+".dat",FILE_WRITE|FILE_SHARE_WRITE|FILE_CSV,"|");

            if(filehandle!=INVALID_HANDLE)

              {

               //--- A>E@0=O5< A>45@68<>5 <0AA820 result[] 2 D09;

               FileWrite(filehandle,"<"+Div+"><"+strK?;?B00:F8N+">");

               //--- 70:@K205< D09;

               FileClose(filehandle);

              }

           }

         //--- CA?5H=0O 703@C7:0

         //  PrintFormat("$09; CA?5H=> 703@C65=, @07<5@ %d 109B.",ArraySize(result));

         //PrintFormat("03>;>2:8 A5@25@0: %s",headers);

         //--- A>E@0=O5< 40==K5 2 D09;

         int filehandle=FileOpen("yz_Div_"+pSymbol+".htm",FILE_WRITE|FILE_BIN);

         if(filehandle!=INVALID_HANDLE)

           {

            //--- A>E@0=O5< A>45@68<>5 <0AA820 result[] 2 D09;

            FileWriteArray(filehandle,result,0,ArraySize(result));

            //--- 70:@K205< D09;

            FileClose(filehandle);

           }

         else

           {

            Print("H81:0 2 FileOpen. >4 >H81:8 =",GetLastError());

           }

        }

      else

        {

         //PrintFormat("H81:0 703@C7:8 '%s', :>4 %d",url,res);

        }

     }

  }



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

//|                                                                  |

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

void CYZTS::@>25@8BLA;85B">B:@KBL'0@B(int iPos)

  {

   bool C6=>B@KBL=true;

   long currChart,prevChart=ChartFirst();

   int i=0,limit=100;

   while(i<limit)// C =0A =025@=O:0 =5 1>;LH5 100 >B:@KBKE 3@0D8:>2

     {

      currChart=ChartNext(prevChart); // =0 >A=>20=88 ?@54K4CI53> ?>;CG8< =>2K9 3@0D8:

      if(currChart<0)

         break;          // 4>AB83;8 :>=F0 A?8A:0 3@0D8:>2

      if(ChartSymbol(currChart) == sSymbol[iPos])

        {

         C6=>B@KBL=false; // @0D8: C65 >B:@KB

        }

      prevChart=currChart;// 70?><=8< 845=B8D8:0B>@ B5:CI53> 3@0D8:0 4;O ChartNext()

      i++;// =5 701C45< C25;8G8BL AG5BG8:

     }

   if(C6=>B@KBL == true)

     {

      Variable[i].idChart=ChartOpen(sSymbol[i],PERIOD_CURRENT);

      ChartSetInteger(Variable[i].idChart,CHART_BRING_TO_TOP,true);

      Sleep(1000);

     }

  }

  

  

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

//|                                                                  |

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

CYZTS::~CYZTS()

  {

   MyDestroy();

  }



void   CYZTS::MyDestroy(void)

{

   DeleteIndicators();

   for(int i=0; i<gCountSym; i++) // '8AB8< A2>8 >1J5:BK

     {

      ObjectDelete(0,sSymbol[i]+"symSR");

      ObjectDelete(0,sSymbol[i]+"sym");

      ObjectDelete(0,sSymbol[i]+"div");

      ObjectDelete(0,sSymbol[i]+"divv");

      ObjectDelete(0,sSymbol[i]+"Contract");

      ObjectDelete(0,sSymbol[i]+"Cena");

      ObjectDelete(0,sSymbol[i]+"prcDirect");

      ObjectDelete(0,sSymbol[i]+"prc");

      ObjectDelete(0,sSymbol[i]+"SV");

      ObjectDelete(0,sSymbol[i]+"BV");

      ObjectDelete(0,sSymbol[i]+"sb");

      ObjectDelete(0,sSymbol[i]+"prcsb");

      ObjectDelete(0,sSymbol[i]+"prcsbDirect");





      ObjectDelete(0,sSymbol[i]+"SV1");

      ObjectDelete(0,sSymbol[i]+"BV1");

      ObjectDelete(0,sSymbol[i]+"sb1");

      ObjectDelete(0,sSymbol[i]+"prcsb1");



      ObjectDelete(0, sSymbol[i]+"PosSumma");

      ObjectDelete(0, sSymbol[i]+"PosProfit");

      ObjectDelete(0, sSymbol[i]+"sym_Prc");



      ObjectDelete(0, sSymbol[i]+"sym_>;8G5AB2>:F89");



      ObjectDelete(0, sSymbol[i]+"sym_!C<<082845=4>2");



      ObjectDelete(0, sSymbol[i]+"sym_O!C<<082845=4>2");



      ObjectDelete(0, sSymbol[i]+"sym_TPProfit");





      ObjectDelete(0, sSymbol[i]+"SELL");

      ObjectDelete(0, sSymbol[i]+"BUY");

      ObjectDelete(0, sSymbol[i]+"prcSellBay");





     }

   ObjectDelete(0, "PosSummaAll");

   ObjectDelete(0, "PosSumma");

   ObjectDelete(0, "82SummaAll");

   ObjectDelete(0, "PosTPProfit");





   ChartRedraw();

}





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

//|                                                                  |

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

void   CYZTS::DeleteIndicators(void)

  {



   for(int iSym=1; iSym<=gCountSym; iSym++)

     {

      MarketBookRelease(sSymbol[iSym]);



      if(params[iSym].Select!=0)

        {

         //            ChartIndicatorDelete(0,0,"YuraZ_GetSymbolTick");

        }

     }

  }











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

//|                                                                  |

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

void CYZTS::ProcessTick(string sSym)

  {

   ProcessTickSymbol(sSym);

//   dlg.FromParamsToView();

  }

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

//|                                                                  |

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

void CYZTS::ProcessTickSymbol(string sSym)

  {

//startDisplay();

  }



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

//|                                                                  |

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

void CYZTS::OrderGetInfoSymbol(string ssSymbol, int iSym)

  {



   sym_Order_Volume[iSym] = 0;

   sym_Order_PRICE_OPEN[iSym] =  0;

   sym_Order_Summa[iSym] = 0;

   sym_Order_>;8G5AB2>:F89[iSym] = 0;

   sym_Order_!C<<082845=4>2[iSym] = 0;







   int total=OrdersTotal();

   if(total!=0)

     {

      for(int i=total-1; i>=0; i--)

        {

         m_order.SelectByIndex(i);

         if(m_order.Symbol()!= ssSymbol)

            continue;



         if(m_order.OrderType()==ORDER_TYPE_BUY_LIMIT || m_order.OrderType()==ORDER_TYPE_BUY_STOP)

           {



            sym_Order_Volume[iSym]=sym_Order_Volume[iSym] + m_order.VolumeInitial();

            sym_Order_PRICE_OPEN[iSym] =  m_order.PriceOpen();



            sym_Order_Summa[iSym] = (sym_Order_Volume[iSym]*sym_Contract[iSym]) * sym_Order_PRICE_OPEN[iSym];

            sym_Order_>;8G5AB2>:F89[iSym] = sym_Order_Volume[iSym]*sym_Contract[iSym];

            sym_Order_!C<<082845=4>2[iSym] = StringToDouble(symK?;0B0[iSym])*sym_Order_>;8G5AB2>:F89[iSym];

           }

         else

           {



           }

         //--- return without operations

         return ;

        }

     }

  }



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

//| 2>72@0I05B AB@>:>2>5 >?8A0=85 B8:0                               |

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

string CYZTS::GetTickDescription(MqlTick &tick)

  {



   string desc=StringFormat("%s.%03d ",

                            TimeToString(tick.time),tick.time_msc%1000);

//--- ?@>25@8< D;038

   bool buy_tick=((tick.flags&TICK_FLAG_BUY)==TICK_FLAG_BUY);

   bool sell_tick=((tick.flags&TICK_FLAG_SELL)==TICK_FLAG_SELL);

   bool ask_tick=((tick.flags&TICK_FLAG_ASK)==TICK_FLAG_ASK);

   bool bid_tick=((tick.flags&TICK_FLAG_BID)==TICK_FLAG_BID);

   bool last_tick=((tick.flags&TICK_FLAG_LAST)==TICK_FLAG_LAST);

   bool volume_tick=((tick.flags&TICK_FLAG_VOLUME)==TICK_FLAG_VOLUME);

//--- ?@>25@8< A=0G0;0 B8: =0 B>@3>2K5 D;038

   if(buy_tick || sell_tick)

     {

      //--- AD>@<8@C5< 2K2>4 4;O B>@3>2>3> B8:0

      desc=desc+(buy_tick?StringFormat("Buy Tick: Last=%G Volume=%d ",tick.last,tick.volume):"");

      desc=desc+(sell_tick?StringFormat("Sell Tick: Last=%G Volume=%d ",tick.last,tick.volume):"");

      desc=desc+(ask_tick?StringFormat("Ask=%G ",tick.ask):"");

      desc=desc+(bid_tick?StringFormat("Bid=%G ",tick.ask):"");

      desc=desc+"(Trade tick)";

     }

   else

     {

      //--- 4;O 8=D> B8:0 AD>@<8@C5< 2K2>4 =5<=>3> 8=0G5

      desc=desc+(ask_tick?StringFormat("Ask=%G ",tick.ask):"");

      desc=desc+(bid_tick?StringFormat("Bid=%G ",tick.ask):"");

      desc=desc+(last_tick?StringFormat("Last=%G ",tick.last):"");

      desc=desc+(volume_tick?StringFormat("Volume=%d ",tick.volume):"");

      desc=desc+"(Info tick)";

     }

//--- 25@=5< >?8A0=85 B8:0

   return desc;

  }











CYZTS *ts=NULL;



string FileSpinDec ="SpinDec.bmp";

string FileSpinInc ="SpinInc.bmp";

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

//|                                                                  |

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

int OnInit()

  {





   if(!FileIsExist(FileSpinDec))// >;=K9 ?CBL :C40 1C45B A>740= D09; \B5@<8=0;\MQL5\Files\000\8<O_D09;0

     {

      int handle = FileOpen(FileSpinDec, FILE_WRITE|FILE_BIN);// @8 A>740=88 D09;0 ?>G5<C-B> 4>;65= 1KBL B0:>9 ?CBL.

      if(handle == INVALID_HANDLE)

         Print("ERROR: =5 C40;>AL A>740BL D09;! >4 >H81:8 = ",GetLastError());

      else

         Print("$09; %s CA?5H=> A>740=  ",FileSpinDec);



      FileWriteArray(handle, mapSpinDec);

      FileClose(handle);

     }

   //else

   //   printf("$09; %s ACI5AB2C5B  ",FileSpinDec);



   if(!FileIsExist(FileSpinInc))// >;=K9 ?CBL :C40 1C45B A>740= D09; \B5@<8=0;\MQL5\Files\000\8<O_D09;0

     {

      int handle = FileOpen(FileSpinInc, FILE_WRITE|FILE_BIN);// @8 A>740=88 D09;0 ?>G5<C-B> 4>;65= 1KBL B0:>9 ?CBL.

      if(handle == INVALID_HANDLE)

         Print(": =5 C40;>AL A>740BL D09;! >4 >H81:8 = ",GetLastError());

      else

         Print("$09; %s CA?5H=> A>740=  ",FileSpinInc);

      FileWriteArray(handle, mapSpinInc);

      FileClose(handle);

     }

   //else

   //   printf("$09; %s ACI5AB2C5B  ",FileSpinInc);





// EventSetMillisecondTimer(1);

//EventSetTimer(10);

   CreateYZTS();



   ulong tick_counter=::GetTickCount();

//---

//program.OnInitEvent();

//--- #AB0=>28< B>@3>2CN ?0=5;L

//if(!program.CreateGUI())

//  {

//   ::Print(__FUNCTION__," > 5 C40;>AL A>740BL 3@0D8G5A:89 8=B5@D59A!");

//   return(INIT_FAILED);

//  }

//---

// ::Print(__FUNCTION__," > objects total: ",::ObjectsTotal(0),"; total ms: ",::GetTickCount()-tick_counter);

//--- =8F80;870F8O ?@>H;0 CA?5H=>



   return(INIT_SUCCEEDED);

  }

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

//|                                                                  |

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

void OnTimer()

  {

// if(ts!=NULL)

//    ts.OnEventTimer();

//program.OnTimerEvent();

  }

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

//|                                                                  |

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

void OnDeinit(const int reason)

  {

   if(ts!=NULL)

     {

      delete ts;

     }

//program.OnDeinitEvent(reason);

  }

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

//| Custom indicator iteration function                              |

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

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

  {

//---

   if(ts!=NULL)

     {

      ts.ProcessTick(_Symbol);

     }



//startDisplay();

//--- return value of prev_calculated for next call

   return(rates_total);

  }

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

//| Timer function                                                   |

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

//void OnTimer()

//  {

////---

//   startDisplay();

//  }

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

//| ChartEvent function                                              |

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

void OnChartEvent(const int id,

                  const long &lparam,

                  const double &dparam,

                  const string &sparam)

  {

//---

// program.ChartEvent(id,lparam,dparam,sparam);

   ts.myOnChartEvent(id,lparam,dparam,sparam);

  }



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

//|                                                                  |

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

void OnBookEvent(const string &symbol)

  {

   ts.myOnBookEvent(symbol);

   

   if ( ts.gCountSym != SymbolsTotal(true) )  // false - A5 A8<2>;K , true   B>;L:> A8<2>;K 2 MarketWatch

   {

      GlobalVariableSet("yzGetDivident",ts.gCountSym);

      // gCountSym = SymbolsTotal(true);

      CreateYZTS();

      

      //MyDestroy();

      //SetInit();

      //return;

   }   

   

   

  }



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

//|                                                                  |

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

void CreateYZTS()

  {

   if(ts!=NULL)

      delete ts;

   ts=new CYZTS();

  }



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

//|                                                                  |

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

bool  myObjectCreate(

   long          chart_id,       // 845=B8D8:0B>@ 3@0D8:0

   string        object_name,    // 8<O >1J5:B0

   ENUM_OBJECT   object_type,    // B8? >1J5:B0

   int           sub_window,     // 8=45:A >:=0

   datetime      time1,          // 2@5<O ?5@2>9 B>G:8 ?@82O7:8

   double        price1,         // F5=0 ?5@2>9 B>G:8 ?@82O7:8

   datetime      time2  = 0,     // 2@5<O N-B>G:8 ?@82O7:8

   double        price2 = 0,     // F5=0 N-B>G:8 ?@82O7:8

   datetime      time3  = 0,     // 2@5<O N-B>G:8 ?@82O7:8

   double        price3=0     // F5=0 N-B>G:8 ?@82O7:8



)

  {

   bool CodeReturn=ObjectCreate(

                      chart_id,            // 845=B8D8:0B>@ 3@0D8:0

                      object_name,         // 8<O >1J5:B0

                      object_type,         // B8? >1J5:B0

                      sub_window,          // 8=45:A >:=0

                      time1,               // 2@5<O ?5@2>9 B>G:8 ?@82O7:8

                      price1,              // F5=0 ?5@2>9 B>G:8 ?@82O7:8

                      time2,               // 2@5<O N-B>G:8 ?@82O7:8

                      price2,              // F5=0 N-B>G:8 ?@82O7:8

                      time3,               // 2@5<O N-B>G:8 ?@82O7:8

                      price3               // F5=0 N-B>G:8 ?@82O7:8

                   )

                   ;



   ObjectSetInteger(chart_id,object_name,OBJPROP_HIDDEN,true);

   ObjectSetInteger(chart_id,object_name,OBJPROP_SELECTED,false);

//   ObjectSetInteger(chart_id,object_name,OBJPROP_READONLY,true);

   ObjectSetInteger(chart_id,object_name,OBJPROP_SELECTABLE,true); // 0?@5B8< 2K45;OBL >1J5B =0 3@0D8:5 4O; :@0A>BK



   return (CodeReturn);

  }

//

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

////|                                                                  |

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

//bool  myObjectCreate(

//                     long          chart_id    ,   // 845=B8D8:0B>@ 3@0D8:0

//                     string        object_name ,   // 8<O >1J5:B0

//                     ENUM_OBJECT   object_type ,   // B8? >1J5:B0

//                     int           sub_window  ,   // 8=45:A >:=0

//                     datetime      time1       ,   // 2@5<O ?5@2>9 B>G:8 ?@82O7:8

//                     double        price1      ,   // F5=0 ?5@2>9 B>G:8 ?@82O7:8

//                     datetime      time2  = 0  ,   // 2@5<O N-B>G:8 ?@82O7:8

//                     double        price2 = 0  ,   // F5=0 N-B>G:8 ?@82O7:8

//                     datetime      time3  = 0  ,   // 2@5<O N-B>G:8 ?@82O7:8

//                     double        price3=0     // F5=0 N-B>G:8 ?@82O7:8

//

//                     )

//  {

//   bool CodeReturn=ObjectCreate(

//                                chart_id        ,    // 845=B8D8:0B>@ 3@0D8:0

//                                object_name     ,    // 8<O >1J5:B0

//                                object_type     ,    // B8? >1J5:B0

//                                sub_window      ,    // 8=45:A >:=0

//                                time1           ,    // 2@5<O ?5@2>9 B>G:8 ?@82O7:8

//                                price1          ,    // F5=0 ?5@2>9 B>G:8 ?@82O7:8

//                                time2           ,    // 2@5<O N-B>G:8 ?@82O7:8

//                                price2          ,    // F5=0 N-B>G:8 ?@82O7:8

//                                time3           ,    // 2@5<O N-B>G:8 ?@82O7:8

//                                price3               // F5=0 N-B>G:8 ?@82O7:8

//                                )

//   ;

//

//   ObjectSetInteger(chart_id,object_name,OBJPROP_HIDDEN,true);

//   ObjectSetInteger(chart_id,object_name,OBJPROP_SELECTED,false);

////   ObjectSetInteger(chart_id,object_name,OBJPROP_READONLY,true);

//   ObjectSetInteger(chart_id,object_name,OBJPROP_SELECTABLE,false); // 0?@5B8< 2K45;OBL >1J5B =0 3@0D8:5 4O; :@0A>BK

//

//   return ( CodeReturn );

//  }

//



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

//|                                                                  |

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

bool myObjectSetText(

   long          chart_id,// 845=B8D8:0B>@ 3@0D8:0

   string  object_name,            // 8<O >1J5:B0

   string  text,                   // B5:AB >?8A0=8O

   int     font_size=0,            // @07<5@ H@8DB0

   string  font_name=NULL,         // =08<5=>20=85 H@8DB0

   color   text_color=clrNONE      // F25B B5:AB0

)

/**

bool  ObjectSetString(

   long     chart_id,       // 845=B8D8:0B>@ 3@0D8:0

   string   object_name,    // 8<O

   int      prop_id,        // A2>9AB2>

   int      prop_modifier,  // <>48D8:0B>@

   string   prop_value      // 7=0G5=85

   );

*/

  {

// if(ObjectGetInteger(0,ButtonLevelChartID,OBJPROP_STATE)==false)

//   {

//     text="";

//    }

   bool CodeReturn=ObjectSetString(chart_id,object_name,OBJPROP_TEXT,text); //  , font_name , text_color );

   ObjectSetString(chart_id,object_name,OBJPROP_FONT,font_name);

//   ObjectSetInteger( chart_id, object_name ,OBJPROP_COLOR , text_color  );

   return (CodeReturn);

  }

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

//|                                                                  |

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

bool myObjectSetTextNew(

   long          chart_id,// 845=B8D8:0B>@ 3@0D8:0

   string  object_name,            // 8<O >1J5:B0

   string  text,                   // B5:AB >?8A0=8O

   int     font_size=0,            // @07<5@ H@8DB0

   string  font_name=NULL,         // =08<5=>20=85 H@8DB0

   color   text_color=clrNONE      // F25B B5:AB0

)

/**

bool  ObjectSetString(

   long     chart_id,       // 845=B8D8:0B>@ 3@0D8:0

   string   object_name,    // 8<O

   int      prop_id,        // A2>9AB2>

   int      prop_modifier,  // <>48D8:0B>@

   string   prop_value      // 7=0G5=85

   );

*/

  {

//   if(ObjectGetInteger(0,ButtonLevelChartID,OBJPROP_STATE)==false)

//     {

//      text="";

//     }

   bool CodeReturn=ObjectSetString(chart_id,object_name,OBJPROP_TEXT,text); //  , font_name , text_color );

   ObjectSetString(chart_id,object_name,OBJPROP_FONT,font_name);

   ObjectSetInteger(chart_id,object_name,OBJPROP_COLOR,text_color);

   ObjectSetInteger(chart_id,object_name,OBJPROP_FONTSIZE,font_size);



   return (CodeReturn);

  }

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

//|                                                                  |

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

bool  myObjectSet(

   long          chart_id,// 845=B8D8:0B>@ 3@0D8:0

   string                           object_name,// 8<O >1J5:B0

   ENUM_OBJECT_PROPERTY_INTEGER     prop_id,     // !2>9AB2>

   int     i                                     // =0G5=85

)

  {

   return (ObjectSetInteger(chart_id,object_name,prop_id,i));



  }

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

bool BitmapSetImage(const long   chart_ID=0,    // ID 3@0D8:0

                    const string name="Bitmap", // 8<O @8AC=:0

                    const string file="")       // ?CBL : D09;C

  {

//--- A1@>A8< 7=0G5=85 >H81:8

   ResetLastError();

//--- CAB0=>28< ?CBL : D09;C A :0@B8=:>9

   if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,file))

     {

      Print(__FUNCTION__,

            ": =5 C40;>AL 703@C78BL :0@B8=:C! >4 >H81:8 = ",GetLastError());

      return(false);

     }

//--- CA?5H=>5 2K?>;=5=85

   return(true);

  }

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

//| #AB0=02;8205B =>2CN :0@B8=:C 4;O >1J5:B0 "@0D8G5A:0O <5B:0"     |

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

bool BitmapLabelSetImage(const long   chart_ID=0,      // ID 3@0D8:0

                         const string name="BmpLabel", // 8<O <5B:8

                         const int    on_off=0,        // <>48D8:0B>@ (On 8;8 Off)

                         const string file="")         // ?CBL : D09;C

  {

//--- A1@>A8< 7=0G5=85 >H81:8

   ResetLastError();

//--- CAB0=>28< ?CBL : D09;C A :0@B8=:>9

   if(!ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,on_off,file))

     {

      Print(__FUNCTION__,

            ": =5 C40;>AL 703@C78BL :0@B8=:C! >4 >H81:8 = ",GetLastError());

      return(false);

     }

//--- CA?5H=>5 2K?>;=5=85

   return(true);

  }

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



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

//| !>7405B 3>@87>=B0;L=CN ;8=8N                                     |

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

bool HLineCreate(const long            chart_ID=0,        // ID 3@0D8:0

                 const string          name="HLine",      // 8<O ;8=88

                 const int             sub_window=0,      // =><5@ ?>4>:=0

                 double                price=0,           // F5=0 ;8=88

                 const color           clr=clrRed,        // F25B ;8=88

                 const ENUM_LINE_STYLE style=STYLE_SOLID, // AB8;L ;8=88

                 const int             width=1,           // B>;I8=0 ;8=88

                 const bool            back=false,        // =0 704=5< ?;0=5

                 const bool            selection=true,    // 2K45;8BL 4;O ?5@5<5I5=89

                 const bool            hidden=true,       // A:@KB 2 A?8A:5 >1J5:B>2

                 const long            z_order=0)         // ?@8>@8B5B =0 =060B85 <KHLN

  {

//--- 5A;8 F5=0 =5 7040=0, B> CAB0=>28< 55 =0 C@>2=5 B5:CI59 F5=K Bid

//   if(!price)

//      price=SymbolInfoDouble(Symbol(),SYMBOL_BID);

//--- A1@>A8< 7=0G5=85 >H81:8

   ResetLastError();

//--- A>74048< 3>@87>=B0;L=CN ;8=8N

   if(!ObjectCreate(chart_ID,name,OBJ_HLINE,sub_window,0,price))

     {

      Print(__FUNCTION__,

            ": =5 C40;>AL A>740BL 3>@87>=B0;L=CN ;8=8N! >4 >H81:8 = ",GetLastError());

      return(false);

     }

//--- CAB0=>28< F25B ;8=88

   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);

//--- CAB0=>28< AB8;L >B>1@065=8O ;8=88

   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);

//--- CAB0=>28< B>;I8=C ;8=88

   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);

//--- >B>1@078< =0 ?5@54=5< (false) 8;8 704=5< (true) ?;0=5

   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);

//--- 2:;NG8< (true) 8;8 >B:;NG8< (false) @568< ?5@5<5I5=8O ;8=88 <KHLN

//--- ?@8 A>740=88 3@0D8G5A:>3> >1J5:B0 DC=:F859 ObjectCreate, ?> C<>;G0=8N >1J5:B

//--- =5;L7O 2K45;8BL 8 ?5@5<5I0BL. =CB@8 65 MB>3> <5B>40 ?0@0<5B@ selection

//--- ?> C<>;G0=8N @025= true, GB> ?>72>;O5B 2K45;OBL 8 ?5@5<5I0BL MB>B >1J5:B

   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);

   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);

//--- A:@>5< (true) 8;8 >B>1@078< (false) 8<O 3@0D8G5A:>3> >1J5:B0 2 A?8A:5 >1J5:B>2

   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);

//--- CAB0=>28< ?@8>@8B5B =0 ?>;CG5=85 A>1KB8O =060B8O <KH8 =0 3@0D8:5

   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);

//--- CA?5H=>5 2K?>;=5=85

   return(true);

  }

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



Comments