جلسه دوازدهم دوره پیشرفته آموزش اکسپرت

کار با فایل در جلسه دوازدهم دوره پیشرفته

در جلسه دوازدهم دوره پیشرفته آموزش اکسپرت از سری آموزش اکسپرت کار با فایل رو یاد می گیریم. محبوب ترین فایل های مورد استفاده در mql که کاربرد دارد از جمله text، csv، html می باشد. text برای word و یا wordpad استفاده می شود.

فایل csv برای اکسل انجام می شود. برای اینکه برنامه هاشونو به اکسل متصل کنند یا از اکسل بخونند باید فایلای پسوند csv کار کنند. همچنین پسوند htm برای استفاده از مروگرها استفاده می شود.


//+------------------------------------------------------------------+
//| خط عمودی (Vertical Line)                                         |
//+------------------------------------------------------------------+
bool Vertical_Line(const long          chart_ID=0,// ای دی چارت
                   const string          name="VLine",      // اسم خط
                   const int             sub_window=0,      // شماره پنجره
                   datetime              time=0,            // زمان قرار گیری خط 
                   const color           clr=clrRed,        // رنگ خط
                   const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                   const int             width=1,           // اندازه خط
                   const bool            back=false,        // قرار کرفتن در پشت
                   const bool            selection=true,    // قابلیت حرکت
                   const bool            hidden=true,       // مخفی شدن از لیست 
                   const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_VLINE,sub_window,time,0))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| خط افقی (Horizontal Line)                                        |
//+------------------------------------------------------------------+

bool Horizontal_Line(const long        chart_ID=0,// ای دی چارت
                     const string          name="HLine",      // اسم خط
                     const int             sub_window=0,      // شماره پنجره
                     double                price=0,           // قیمت قرار گیری خط
                     const color           clr=clrRed,        // رنگ خط
                     const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                     const int             width=1,           // اندازه خط
                     const bool            back=false,        // قرار گرفتن در پشت
                     const bool            selection=true,    // قابلیت حرکت
                     const bool            hidden=true,       // مخفی شدن از لیست
                     const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_HLINE,sub_window,0,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| خط ترند (Trend Line)                                             |
//+------------------------------------------------------------------+ 

bool Trend_Line(const long            chart_ID=0,// ای دی چارت
                const string          name="TrendLine",  // اسم خط
                const int             sub_window=0,      // شماره پنجره
                datetime              time1=0,           // اولین نقطه زمان
                double                price1=0,          // اولین نفطه قیمت
                datetime              time2=0,           // دومین نقطه زمان
                double                price2=0,          // دومین نقطه قیمت
                const color           clr=clrRed,        // رنگ خط
                const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                const int             width=1,           // اندازه خط
                const bool            back=false,        // قرار گرفتن در پشت
                const bool            selection=true,    // قابلیت حرکت
                const bool            ray_right=false,   // ادامه دار بودن خط
                const bool            hidden=true,       // مخفی شدن از لیست
                const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| خط ترند با زاویه(Trend Line By Angle)                            |
//+------------------------------------------------------------------+

bool Trend_Line_By_Angle(const long           chart_ID=0,// ای دی چارت
                         const string          name="TrendLine",  // اسم خط
                         const int             sub_window=0,      // شماره پنجره
                         datetime              time=0,            // اولین نقطه زمان
                         double                price=0,           // اولین نفطه قیمت
                         const double          angle=45.0,        // مقدار زاویه
                         const color           clr=clrRed,        // رنگ خط
                         const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                         const int             width=1,           // اندازه خط
                         const bool            back=false,        // قرار گرفتن در پشت
                         const bool            selection=true,    // قابلیت حرکت
                         const bool            ray_right=true,    // ادامه دار بودن خط
                         const bool            hidden=true,       // مخفی شدن از لیست
                         const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   datetime time2=0;
   double   price2=0;
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_TRENDBYANGLE,sub_window,time,price,time2,price2))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| خط چرخه(Cycle Lines)                                             |
//+------------------------------------------------------------------+
bool Cycle_Lines(const long             chart_ID=0,// ای دی چارت
                 const string          name="Cycles",     // اسم خط
                 const int             sub_window=0,      // شماره پنجره
                 datetime              time1=0,           // اولین نقطه زمان
                 double                price1=0,          // اولین نفطه قیمت
                 datetime              time2=0,           // دومین نقطه زمان
                 double                price2=0,          // دومین نقطه قیمت
                 const color           clr=clrRed,        // رنگ خطها
                 const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خطها
                 const int             width=1,           // اندازه خطها
                 const bool            back=false,        // قرار گرفتن در پشت
                 const bool            selection=true,    // قابلیت حرکت
                 const bool            hidden=true,       // مخفی شدن از لیست
                 const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_CYCLES,sub_window,time1,price1,time2,price2))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| کانال(Equidistant Channel)                                       |
//+------------------------------------------------------------------+  
bool Equidistant_Channel(const long      chart_ID=0,// ای دی چارت
                         const string          name="Channel",    // اسم کانال
                         const int             sub_window=0,      // شماره پنجره 
                         datetime              time1=0,           // اولین نقطه زمان
                         double                price1=0,          // اولین نفطه قیمت
                         datetime              time2=0,           // دومین نقطه زمان
                         double                price2=0,          // دومین نقطه قیمت
                         datetime              time3=0,           // سومین نقطه زمان
                         double                price3=0,          // سومین نقطه قیمت
                         const color           clr=clrRed,        // رنگ کانال
                         const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل کنال
                         const int             width=1,           // اندازه خط کانال
                         const bool            fill=false,        // پر کردن کانال با رنگ
                         const bool            back=false,        // قرار گرفتن در پشت
                         const bool            selection=true,    // قابلیت حرکت
                         const bool            ray_right=false,   // ادامه دار بودن کانال
                         const bool            hidden=true,       // مخفی شدن از لیست
                         const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_CHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| کانال استاندارد(Standard Deviation Channel)                      |
//+------------------------------------------------------------------+ 

bool Standard_Deviation_Channel(const long     chart_ID=0,// ای دی چارت
                                const string          name="Channel",    // اسم کانال
                                const int             sub_window=0,      // شماره پنجره
                                datetime              time1=0,           // اول نقطه کانال زمان
                                datetime              time2=0,           // دومین نقطه کانال زمان
                                const double          deviation=1.0,     // فاصله خطوط 
                                const color           clr=clrRed,        // رنگ کانال
                                const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خطوط کانال
                                const int             width=1,           // اندازه خط کانال
                                const bool            fill=false,        // پر کردن کانال با رنگ
                                const bool            back=false,        // قرار گرفتن در پشت
                                const bool            selection=true,    // قابلیت حرکت
                                const bool            ray_right=false,   // ادامه دار بودن کانال
                                const bool            hidden=true,       // مخفی شدن از لیست
                                const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_DEVIATION,deviation);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_STDDEVCHANNEL,sub_window,time1,0,time2,0))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_DEVIATION,deviation);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| کانال رگرسیون(Linear Regression Channel)                         |
//+------------------------------------------------------------------+

bool Linear_Regression_Channel(const long   chart_ID=0,// ای دی چارت
                               const string          name="Regression", // اسم کانال
                               const int             sub_window=0,      // شماره پنجره
                               datetime              time1=0,           // اول نقطه کانال زمان
                               datetime              time2=0,           // دومین نقطه کانال زمان
                               const color           clr=clrRed,        // رنگ کانال
                               const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خطوط کانال
                               const int             width=1,           // اندازه خط کانال
                               const bool            fill=false,        // پر کردن کانال با رنگ
                               const bool            back=false,        // قرار گرفتن در پشت
                               const bool            selection=true,    // قابلیت حرکت
                               const bool            ray_right=false,   // ادامه دار بودن کانال
                               const bool            hidden=true,       // مخفی شدن از لیست
                               const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_REGRESSION,sub_window,time1,0,time2,0))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| چنگال اندرو(Andrews’ Pitchfork)                                   |
//+------------------------------------------------------------------+

bool Andrews_Pitchfork(const long          chart_ID=0,// ای دی چارت
                       const string          name="Pitchfork",  // اسم چنگال
                       const int             sub_window=0,      // شماره پنجره 
                       datetime              time1=0,           // اولین نقطه زمان
                       double                price1=0,          // اولین نقطه قمیت
                       datetime              time2=0,           // دومین نقطه زمان
                       double                price2=0,          // دومین نقطه قیمت
                       datetime              time3=0,           // سومین نقطه زمان
                       double                price3=0,          // سومین نقطه قیمت
                       const color           clr=clrRed,        // رنگ
                       const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                       const int             width=1,           // اندازه خط
                       const bool            back=false,        // قرار گرفتن در پشت
                       const bool            selection=true,    // قابلیت حرکت
                       const bool            ray_right=false,   // ادامه دار بودن 
                       const bool            hidden=true,       // مخفی شدن از لیست
                       const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_PITCHFORK,sub_window,time1,price1,time2,price2,time3,price3))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| خط گن(Gann Line)                                                 |
//+------------------------------------------------------------------+
bool Gann_Line(const long                 chart_ID=0,// ای دی چارت
               const string          name="GannLine",   // اسم خط
               const int             sub_window=0,      // شماره پنجره 
               datetime              time1=0,           // اولین نقطه زمان
               double                price1=0,          // اولین نقطه قمیت
               datetime              time2=0,           // دومین نقطه زمان
               const double          angle=1.0,         // زاویه
               const double          scale=1.0,         // مقیاس
               const color           clr=clrRed,        // رنگ خط
               const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
               const int             width=1,           // اندازه خط
               const bool            back=false,        // قرار گرفتن در پشت
               const bool            selection=true,    // قابلیت حرکت
               const bool            ray_right=true,    // ادامه دار بودن
               const bool            hidden=true,       // مخفی شدن از لیست
               const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
      ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_GANNLINE,sub_window,time1,price1,time2,0))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
         ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| گن فان(Gann Fan)                                                 |
//+------------------------------------------------------------------+
bool Gann_Fan(const long                chart_ID=0,// ای دی چارت
              const string          name="GannFan",    // اسم گن
              const int             sub_window=0,      // شماره پنجره 
              datetime              time1=0,           // اولین نقطه زمان
              double                price1=0,          // اولین نقطه قمیت
              datetime              time2=0,           // دومین نقطه زمان
              const double          scale=1.0,         // مقیاس
              const bool            direction=true,    //جهت روند(درست= سعودی ، نادرست = نزولی)
              const color           clr=clrRed,        // رنگ
              const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل
              const int             width=1,           // اندازه خطها
              const bool            back=false,        // قرار گرفتن در پشت
              const bool            selection=true,    // قابلیت حرکت
              const bool            hidden=true,       // مخفی شدن از لیست
              const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
      ObjectSetInteger(chart_ID,name,OBJPROP_DIRECTION,direction);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_GANNFAN,sub_window,time1,price1,time2,0))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
         ObjectSetInteger(chart_ID,name,OBJPROP_DIRECTION,direction);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| شبکه گن(Gann Grid)                                               |
//+------------------------------------------------------------------+  
bool Gann_Grid(const long                 chart_ID=0,// ای دی چارت
               const string          name="GannGrid",   // اسم گن
               const int             sub_window=0,      // شماره پنجره 
               datetime              time1=0,           // اولین نقطه زمان
               double                price1=0,          // اولین نقطه قمیت
               datetime              time2=0,           // دومین نقطه زمان
               const double          scale=1.0,         // مقیاس
               const bool            direction=true,    // جهت روند(درست= سعودی ، نادرست = نزولی)
               const color           clr=clrRed,        // رنگ
               const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل
               const int             width=1,           // اندازه خطها
               const bool            back=false,        // قرار گرفتن در پشت
               const bool            selection=true,    // قابلیت حرکت
               const bool            hidden=true,       // مخفی شدن از لیست
               const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
      ObjectSetInteger(chart_ID,name,OBJPROP_DIRECTION,direction);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_GANNGRID,sub_window,time1,price1,time2,0))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
         ObjectSetInteger(chart_ID,name,OBJPROP_DIRECTION,direction);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| فیبوناچی Retracement(Fibonacci Retracement)                      |
//+------------------------------------------------------------------+  
bool Fibonacci_Retracement(const long       chart_ID=0,// ای دی چارت
                           const string          name="FiboLevels", // اسم
                           const int             sub_window=0,      // شماره پنجره  
                           datetime              time1=0,           // اولین نقطه زمان
                           double                price1=0,          // اولین نقطه قمیت
                           datetime              time2=0,           // دومین نقطه زمان
                           double                price2=0,          // دومین نقطه قیمت
                           const color           clr=clrRed,        // رنگ
                           const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل
                           const int             width=1,           // اندازه خطها
                           const bool            back=false,        // قرار گرفتن در پشت
                           const bool            selection=true,    // قابلیت حرکت
                           const bool            ray_right=false,   // ادامه دار بودن
                           const bool            hidden=true,       // مخفی شدن از لیست
                           const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_FIBO,sub_window,time1,price1,time2,price2))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| فیبوناچی زمانی  (Fibonacci Time Zones)                           |
//+------------------------------------------------------------------+ 

bool Fibonacci_Time_Zones(const long       chart_ID=0,// ای دی چارت
                          const string          name="FiboTimes",  // اسم
                          const int             sub_window=0,      // شماره پنجره   
                          datetime              time1=0,           // اولین نقطه زمان
                          double                price1=0,          // اولین نقطه قمیت
                          datetime              time2=0,           // دومین نقطه زمان
                          double                price2=0,          // دومین نقطه قیمت
                          const color           clr=clrRed,        // رنگ
                          const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                          const int             width=1,           // اندازه خطها
                          const bool            back=false,        // قرار گرفتن در پشت
                          const bool            selection=true,    // قابلیت حرکت
                          const bool            hidden=true,       // مخفی شدن از لیست
                          const long            z_order=0)         // اولویت برای کلیک ماوس
  {

   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_FIBOTIMES,sub_window,time1,price1,time2,price2))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| فیبوناچی فن  (Fibonacci Fan)                                     |
//+------------------------------------------------------------------+ 
bool Fibonacci_Fan(const long            chart_ID=0,        // ای دی چارت
                   const string          name="FiboFan",    // اسم
                   const int             sub_window=0,      // شماره پنجره 
                   datetime              time1=0,           // اولین نقطه زمان
                   double                price1=0,          // اولین نقطه قمیت
                   datetime              time2=0,           // دومین نقطه زمان
                   double                price2=0,          // دومین نقطه قیمت
                   const color           clr=clrRed,        // رنگ
                   const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خط
                   const int             width=1,           // اندازه خطها
                   const bool            back=false,        // قرار گرفتن در پشت
                   const bool            selection=true,    // قابلیت حرکت
                   const bool            hidden=true,       // مخفی شدن از لیست
                   const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_FIBOFAN,sub_window,time1,price1,time2,price2))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|فیبوناچی آرنج (Fibonacci Arcs)                                    |
//+------------------------------------------------------------------+ 

bool Fibonacci_Arcs(const long           chart_ID=0,// ای دی چارت
                    const string          name="FiboArc",     // اسم
                    const int             sub_window=0,       // شماره پنجره 
                    datetime              time1=0,            // اولین نقطه زمان
                    double                price1=0,           // اولین نقطه قمیت
                    datetime              time2=0,            // دومین نقطه زمان
                    double                price2=0,           // دومین نقطه قیمت
                    const double          scale=1.0,          // مقیاس
                    const bool            full_ellipse=false, // شکل قوس (درست = کامل ، نادرست = نیم)
                    const color           clr=clrRed,         // رنگ
                    const ENUM_LINE_STYLE style=STYLE_SOLID,  // استایل خط
                    const int             width=1,            // اندازه خطها
                    const bool            back=false,         // قرار گرفتن در پشت
                    const bool            selection=true,     // قابلیت حرکت
                    const bool            hidden=true,        // مخفی شدن از لیست
                    const long            z_order=0)          // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
      ObjectSetInteger(chart_ID,name,OBJPROP_ELLIPSE,full_ellipse);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_FIBOARC,sub_window,time1,price1,time2,price2))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,scale);
         ObjectSetInteger(chart_ID,name,OBJPROP_ELLIPSE,full_ellipse);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|کانال فیبوناچی(Fibonacci Channe)                                  |
//+------------------------------------------------------------------+ 

bool Fibonacci_Channe(const long             chart_ID=0,// ای دی چارت
                      const string          name="FiboChannel", // اسم
                      const int             sub_window=0,       // شماره پنجره 
                      datetime              time1=0,            // اولین نقطه زمان
                      double                price1=0,           // اولین نقطه قمیت
                      datetime              time2=0,            // دومین نقطه زمان
                      double                price2=0,           // دومین نقطه قیمت
                      datetime              time3=0,            // سومین  نقطه زمان
                      double                price3=0,           // سومین نقطه قیمت
                      const color           clr=clrRed,         // رنگ
                      const ENUM_LINE_STYLE style=STYLE_SOLID,  // استایل خطها
                      const int             width=1,            // اندازه خطها
                      const bool            back=false,         // قرار گرفتن در پشت
                      const bool            selection=true,     // قابلیت حرکت
                      const bool            ray=false,          // ادامه خط
                      const bool            hidden=true,        // مخفی شدن از لیست
                      const long            z_order=0)          // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY,ray);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_FIBOCHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY,ray);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|فیبوناچی گسترشی(Fibonacci Expansion)                              |
//+------------------------------------------------------------------+   
bool OBJ_FIBOFibo_Expansion(const long                chart_ID=0,// ای دی چارت
                    const string          name="FiboExpansion", // اسم
                    const int             sub_window=0,         // شماره پنجره 
                    datetime              time1=0,              // اولین نقطه زمان
                    double                price1=0,             // اولین نقطه قمیت
                    datetime              time2=0,              // دومین نقطه زمان
                    double                price2=0,             // دومین نقطه قیمت
                    datetime              time3=0,              // سومین نقطه زمان
                    double                price3=0,             // سومین نقطه قیمت
                    const color           clr=clrRed,           // رنگ
                    const ENUM_LINE_STYLE style=STYLE_SOLID,    // استایل خطها
                    const int             width=1,              // اندازه خطها
                    const bool            back=false,           // قرار گرفتن در پشت
                    const bool            selection=true,       // قابلیت حرکت
                    const bool            ray_right=false,      // ادامه خط
                    const bool            hidden=true,          // مخفی شدن از لیست
                    const long            z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_EXPANSION,sub_window,time1,price1,time2,price2,time3,price3))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| مستطیل(Rectangle)                                                |
//+------------------------------------------------------------------+  

bool Rectangle(const long                  chart_ID=0,//  ای دی چارت
               const string          name="Rectangle",  // اسم
               const int             sub_window=0,      // شماره پنجره
               datetime              time1=0,           // اولین نقطه زمان
               double                price1=0,          // اولین نقطه قمیت
               datetime              time2=0,           // دومین نقطه زمان
               double                price2=0,          // دومین نقطه قیمت
               const color           clr=clrRed,        // رنگ
               const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خطها
               const int             width=1,           // اندازه خطها
               const bool            fill=false,        // تو پر یا خالی بودن مستطیل
               const bool            back=false,        // قرار گرفتن در پشت
               const bool            selection=true,    // قابلیت حرکت
               const bool            hidden=true,       // مخفی شدن از لیست
               const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_RECTANGLE,sub_window,time1,price1,time2,price2))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| مثلث(Triangle)                                                   |
//+------------------------------------------------------------------+  
bool Triangle(const long                  chart_ID=0,// ای دی چارت
              const string          name="Triangle",   // اسم
              const int             sub_window=0,      // شماره پنجره
              datetime              time1=0,           // اولین نقطه زمان
              double                price1=0,          // اولین نقطه قمیت
              datetime              time2=0,           // دومین نقطه زمان
              double                price2=0,          // دومین نقطه قیمت
              datetime              time3=0,           // سومین نقطه زمان
              double                price3=0,          // سومین نقطه قیمت
              const color           clr=clrRed,        // رنگ
              const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خطها
              const int             width=1,           // اندازه خطها
              const bool            fill=false,        // تو پر یا خالی بودن مثلث
              const bool            back=false,        // قرار گرفتن در پشت
              const bool            selection=true,    // قابلیت حرکت
              const bool            hidden=true,       // مخفی شدن از لیست
              const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_TRIANGLE,sub_window,time1,price1,time2,price2,time3,price3))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| بیضی(Ellipse)                                                    |
//+------------------------------------------------------------------+
bool Ellipse(const long                  chart_ID=0,// ای دی چارت
             const string          name="Ellipse",    // اسم
             const int             sub_window=0,      // شماره پنجره 
             datetime              time1=0,           // اولین نقطه زمان
             double                price1=0,          // اولین نقطه قمیت
             datetime              time2=0,           // دومین نقطه زمان
             double                price2=0,          // دومین نقطه قیمت
             double                ellipse_scale=0,   // نسبت مقیاس بیضی
             const color           clr=clrRed,        // رنگ
             const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل خطها
             const int             width=1,           // اندازه خطها
             const bool            fill=false,        // تو پر یا خالی بودن بیضی
             const bool            back=false,        // قرار گرفتن در پشت
             const bool            selection=true,    // قابلیت حرکت
             const bool            hidden=true,       // مخفی شدن از لیست
             const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,ellipse_scale);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ELLIPSE,sub_window,time1,price1,time2,price2))
        {
         ObjectSetDouble(chart_ID,name,OBJPROP_SCALE,ellipse_scale);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|شست بالا(Thumbs Up)                                                |
//+------------------------------------------------------------------+
bool Thumb_Up(const long                        chart_ID=0,// ای دی چارت
              const string            name="ThumbUp",       // اسم
              const int               sub_window=0,         // شماره پنجره 
              datetime                time=0,               // نقطه زمان
              double                  price=0,              // نقطه قمیت
              const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نفطه اتکا
              const color             clr=clrRed,           // رنگ
              const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط
              const int               width=3,              // اندازه
              const bool              back=false,           // قرار گرفتن در پشت
              const bool              selection=true,       // قابلیت حرکت
              const bool              hidden=true,          // مخفی شدن از لیست
              const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_THUMB_UP,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| شست پایین(Thumbs Down)                                           |
//+------------------------------------------------------------------+
bool Thumb_Down(const long                        chart_ID=0,// ای دی چارت
                const string            name="ThumbDown",     // اسم
                const int               sub_window=0,         // شماره پنجره
                datetime                time=0,               // نقطه زمان
                double                  price=0,              // نقطه قمیت
                const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نفطه اتکا
                const color             clr=clrRed,           // رنگ
                const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط
                const int               width=3,              // اندازه
                const bool              back=false,           // قرار گرفتن در پشت
                const bool              selection=true,       // قابلیت حرکت
                const bool              hidden=true,          // مخفی شدن از لیست
                const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_THUMB_DOWN,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| فلش بالا(Arrow Up)                                                |
//+------------------------------------------------------------------+
bool Arrow_Up(const long                   chart_ID=0,// ای دی چارت
              const string            name="ArrowUp",       // اسم
              const int               sub_window=0,         // شماره پنجره
              datetime                time=0,               // نقطه زمان
              double                  price=0,              // نقطه قمیت
              const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نفطه اتکا
              const color             clr=clrRed,           // رنگ
              const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط
              const int               width=3,              // اندازه
              const bool              back=false,           // قرار گرفتن در پشت
              const bool              selection=true,       // قابلیت حرکت
              const bool              hidden=true,          // مخفی شدن از لیست
              const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_UP,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| فلش پایین(Array Down)                                            |
//+------------------------------------------------------------------+

bool Arrow_Down(const long                   chart_ID=0,// ای دی چارت
                const string            name="ArrowDown",     // اسم
                const int               sub_window=0,         // شماره پنجره
                datetime                time=0,               // نقطه زمان
                double                  price=0,              // نقطه قمیت
                const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نفطه اتکا
                const color             clr=clrRed,           // رنگ
                const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط
                const int               width=3,              // اندازه
                const bool              back=false,           // قرار گرفتن در پشت
                const bool              selection=true,       // قابلیت حرکت
                const bool              hidden=true,          // مخفی شدن از لیست
                const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_DOWN,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| نشان ایست(Stop Sign)                                             |
//+------------------------------------------------------------------+
bool Stop_Sign(const long                    chart_ID=0,// ای دی چارت
               const string            name="ArrowStop",     // اسم
               const int               sub_window=0,         // شماره پنجره
               datetime                time=0,               // نقطه زمان
               double                  price=0,              // نقطه قمیت
               const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نفطه اتکا
               const color             clr=clrRed,           // رنگ
               const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط
               const int               width=3,              // اندازه
               const bool              back=false,           // قرار گرفتن در پشت
               const bool              selection=true,       // قابلیت حرکت
               const bool              hidden=true,          // مخفی شدن از لیست
               const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_STOP,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| نشان تیک(Check Sign)                                             |
//+------------------------------------------------------------------+
bool Check_Sign(const long                   chart_ID=0,// ای دی چارت
                const string            name="ArrowCheck",    // اسم
                const int               sub_window=0,         // شماره پنجره
                datetime                time=0,               // نقطه زمان
                double                  price=0,              // نقطه قمیت
                const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نفطه اتکا
                const color             clr=clrRed,           // رنگ
                const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط
                const int               width=3,              // اندازه
                const bool              back=false,           // قرار گرفتن در پشت
                const bool              selection=true,       // قابلیت حرکت
                const bool              hidden=true,          // مخفی شدن از لیست
                const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_CHECK,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| برچسب چپ قیمت(Left Price Label)                                  |
//+------------------------------------------------------------------+

bool Left_Price_Label(const long            chart_ID=0,//ای دی چارت
                      const string          name="LeftPrice",  // اسم
                      const int             sub_window=0,      // شماره پنجره
                      datetime              time=0,            // نقطه زمان
                      double                price=0,           // نقطه قمیت
                      const color           clr=clrRed,        // رنگ
                      const ENUM_LINE_STYLE style=STYLE_SOLID, //  استایل خط
                      const int             width=1,           // اندازه
                      const bool            back=false,        // قرار گرفتن در پشت
                      const bool            selection=true,    // قابلیت حرکت
                      const bool            hidden=true,       // مخفی شدن از لیست
                      const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_LEFT_PRICE,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| برچسب قیمت راست(Right Price Label)                               |
//+------------------------------------------------------------------+

bool Right_Price_Label(const long               chart_ID=0,//ای دی چارت
                       const string          name="RightPrice", // اسم
                       const int             sub_window=0,      // شماره پنجره
                       datetime              time=0,            // نقطه زمان
                       double                price=0,           // نقطه قمیت
                       const color           clr=clrRed,        // رنگ
                       const ENUM_LINE_STYLE style=STYLE_SOLID, //  استایل خط
                       const int             width=1,           // اندازه
                       const bool            back=false,        // قرار گرفتن در پشت
                       const bool            selection=true,    // قابلیت حرکت
                       const bool            hidden=true,       // مخفی شدن از لیست
                       const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_RIGHT_PRICE,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| نشانه خرید(Buy Sign)                                             |
//+------------------------------------------------------------------+
bool Buy_Sign(const long                 chart_ID=0,//ای دی چارت
              const string          name="ArrowBuy",   // اسم
              const int             sub_window=0,      // شماره پنجره
              datetime              time=0,            // نقطه زمان
              double                price=0,           // نقطه قمیت
              const color           clr=C'3,95,172',   // رنگ
              const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل  (وقتی برجسته شود)
              const int             width=1,           // سایز  (وقتی برجسته شود)
              const bool            back=false,        // قرار گرفتن در پشت
              const bool            selection=false,   // قابلیت حرکت
              const bool            hidden=true,       // مخفی شدن از لیست
              const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_BUY,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| نشانه فروش(Sell Sign)                                            |
//+------------------------------------------------------------------+ 

bool Sell_Sign(const long                 chart_ID=0,//ای دی چارت
               const string          name="ArrowSell",  // اسم
               const int             sub_window=0,      // شماره پنجره
               datetime              time=0,            // نقطه زمان
               double                price=0,           // نقطه قمیت
               const color           clr=C'3,95,172',   // رنگ
               const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل  (وقتی برجسته شود)
               const int             width=1,           // سایز  (وقتی برجسته شود)
               const bool            back=false,        // قرار گرفتن در پشت
               const bool            selection=false,   // قابلیت حرکت
               const bool            hidden=true,       // مخفی شدن از لیست
               const long            z_order=0)         // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW_SELL,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| فلش(Arrow)                                                       |
//+------------------------------------------------------------------+
bool Arrow(const long                    chart_ID=0,// ای دی چارت
           const string            name="Arrow",         // اسم
           const int               sub_window=0,         // شماره پنجره
           datetime                time=0,               // نقطه زمان
           double                  price=0,              // نقطه قمیت
           const uchar             arrow_code=252,       // کد ابجیکت
           const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // نقطه اتکا
           const color             clr=clrRed,           // رنگ
           const ENUM_LINE_STYLE   style=STYLE_SOLID,    // استایل خط کادر
           const int               width=3,              // سایز
           const bool              back=false,           // قرار گرفتن در پشت
           const bool              selection=true,       // قابلیت حرکت
           const bool              hidden=true,          // مخفی شدن از لیست
           const long              z_order=0)            // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_ARROWCODE,arrow_code);
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_ARROW,sub_window,time,price))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_ARROWCODE,arrow_code);
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| متن(Text)                                                        |
//+------------------------------------------------------------------+
bool Text(const long                   chart_ID=0,// ای دی چارت
          const string            name="Text",              // اسم
          const int               sub_window=0,             // شماره پنجره
          datetime                time=0,                   // نقطه زمان
          double                  price=0,                  // نقطه قمیت
          const string            text="Text",              // متن 
          const string            font="Arial",             // فونت
          const int               font_size=10,             // اندازه فونت
          const color             clr=clrRed,               // رنگ
          const double            angle=0.0,                // زاویه نوشته
          const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // نقطه اتکا
          const bool              back=false,               // قرار گرفتن در پشت
          const bool              selection=false,          // قابلیت حرکت
          const bool              hidden=true,              // مخفی شدن از لیست
          const long              z_order=0)                // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_TEXT,sub_window,time,price))
        {
         ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
         ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
         ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
         ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| اتیکت(Label)                                                     |
//+------------------------------------------------------------------+

bool Label(const long                    chart_ID=0,// ای دی چارت
           const string            name="Label",             // اسم
           const int               sub_window=0,             // شماره پنجره
           const int               x=0,                      // X فاصله محور
           const int               y=0,                      // Y فاصله محور
           const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // انتخاب گوشه چارت
           const string            text="Label",             // متن
           const string            font="Arial",             // فونت
           const int               font_size=10,             // اندازه فونت
           const color             clr=clrRed,               // رنگ
           const double            angle=0.0,                // زاویه نوشته
           const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // نقطه اتکا نوشته
           const bool              back=false,               // قرار گرفتن در پشت
           const bool              selection=false,          // قابلیت حرکت
           const bool              hidden=true,              // مخفی شدن از لیست
           const long              z_order=0)                // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
         ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
         ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
         ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
         ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
         ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
         ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
/*
برای انتخاب گوشه یکی از این چهار نوع میتواند انتهاب شود 
CORNER_LEFT_UPPER             سمت چپ بالا
CORNER_LEFT_LOWER             سمت چپ پایین
CORNER_RIGHT_LOWER            سمت راست پایین
CORNER_RIGHT_UPPER            سمت راست بالا



برای نقاط اتکا میتوانید یکی از موارد زیر انتخاب شود

ANCHOR_LEFT_UPPER          چپ بالا
ANCHOR_LEFT                چپ
ANCHOR_LEFT_LOWER          چپ پایین
ANCHOR_LOWER               پایین
ANCHOR_RIGHT_LOWER         راست پایین
ANCHOR_RIGHT               راست
ANCHOR_RIGHT_UPPER         راست بالا
ANCHOR_UPPER               بالا
ANCHOR_CENTER              مرکز
*/

//+------------------------------------------------------------------+
//| دکمه(Button)                                                     |
//+------------------------------------------------------------------+

bool Button(const long                    chart_ID=0,// ای دی چارت
            const string            name="Button",            // اسم
            const int               sub_window=0,             // شماره پنجره
            const int               x=0,                      // X فاصله محور
            const int               y=0,                      // Y فاصله محور
            const int               width=50,                 // عرض دکمه
            const int               height=18,                // ارتفاع دکمه
            const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // انتخاب گوشه چارت
            const string            text="Button",            // نوشته درون دکمه
            const string            font="Arial",             // فونت
            const int               font_size=10,             // سایز فونت
            const color             clr=clrBlack,             // رنگ نوشته
            const color             back_clr=C'236,233,216',  // رنگ دکمه
            const color             border_clr=clrNONE,       // رنگ کادر دکمه
            const bool              state=false,              // حالت دکمه ،کلیک شده / کلیک نشده
            const bool              back=false,               // قرار گرفتن در پشت
            const bool              selection=false,          // قابلیت حرکت
            const bool              hidden=true,              // مخفی شدن از لیست
            const long              z_order=0)                // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
         ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
         ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
         ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
         ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
         ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
         ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
/*
برای انتخاب گوشه یکی از این چهار نوع میتواند انتهاب شود 
CORNER_LEFT_UPPER             سمت چپ بالا
CORNER_LEFT_LOWER             سمت چپ پایین
CORNER_RIGHT_LOWER            سمت راست پایین
CORNER_RIGHT_UPPER            سمت راست بالا
*/

//+------------------------------------------------------------------+
//| تصویر(Bitmap)                                                     |
//+------------------------------------------------------------------+
bool Bitmap(const long                 chart_ID=0,// ای دی چارت
            const string          name="Bitmap",     // اسم
            const int             sub_window=0,      // شماره پنجره
            datetime              time=0,            // نقطه زمان
            double                price=0,           // نقطه قیمت
            const string          file="",           //  ادرس عکس
            const int             width=10,          //  عرض  
            const int             height=10,         // ارتفاع 
            const int             x_offset=0,        // X فاصله از محوره 
            const int             y_offset=0,        // Y فاصله از محوره
            const color           clr=clrRed,        // رنگ کادر (زمان کلیک)
            const ENUM_LINE_STYLE style=STYLE_SOLID, // استایل کادر(زمان کلیک)
            const int             point_width=1,     // اندازه نقطه حرکت
            const bool            back=false,        // قرار گرفتن در پشت
            const bool            selection=false,   // قابلیت حرکت
            const bool            hidden=false,// مخفی شدن از لیست
            const long            z_order=0) // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,file);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
      ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_BITMAP,sub_window,time,price))
        {
         ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,file);
         ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
         ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
         ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
/*
ادرس عکس به صورت زیر نوشته میشود
عکس حتما باید با بسوند بی ام پی باشد
\\Images\\images.bmp
*/

//+------------------------------------------------------------------+
//| تصویر از نوع تیکت(Bitmap Label)                                  |
//+------------------------------------------------------------------+
bool Bitmap_Label(const long              chart_ID=0,// ای دی چارت
                  const string            name="BmpLabel",          // اسم
                  const int               sub_window=0,             // شماره پنجره
                  const int               x=0,                      // X مختصات 
                  const int               y=0,                      // Y مختصات
                  const string            file_on="",               // عکس زمان روشن
                  const string            file_off="",              // عکس زمان خواموش
                  const int               width=0,                  // عرض
                  const int               height=0,                 // ارتفاع
                  const int               x_offset=10,              // X فاصله از محوره 
                  const int               y_offset=10,              // Y فاصله از محوره
                  const bool              state=false,              // کلیک شده / کلیک نشده
                  const ENUM_BASE_CORNER  corner=CORNER_LEFT_UPPER, // انتخاب گوشه چارت
                  const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // نقطه اتکا  
                  const color             clr=clrRed,               // رنگ کادر (زمان کلیک)
                  const ENUM_LINE_STYLE   style=STYLE_SOLID,        // استایل کادر(زمان کلیک)
                  const int               point_width=1,            // اندازه نقطه حرکت
                  const bool              back=false,               // قرار گرفتن در پشت
                  const bool              selection=false,          // قابلیت حرکت
                  const bool              hidden=true,              // مخفی شدن از لیست
                  const long              z_order=0)                //  اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,0,file_on);
      ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,1,file_off);
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
      ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_BITMAP_LABEL,sub_window,0,0))
        {
         ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,0,file_on);
         ObjectSetString(chart_ID,name,OBJPROP_BMPFILE,1,file_off);
         ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
         ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
         ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
         ObjectSetInteger(chart_ID,name,OBJPROP_XOFFSET,x_offset);
         ObjectSetInteger(chart_ID,name,OBJPROP_YOFFSET,y_offset);
         ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
         ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
         ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point_width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
/*


ادرس عکس به صورت زیر نوشته میشود
عکس حتما باید با بسوند بی ام پی باشد
\\Images\\images.bmp



برای انتخاب گوشه یکی از این چهار نوع میتواند انتخاب شود 
CORNER_LEFT_UPPER             سمت چپ بالا
CORNER_LEFT_LOWER             سمت چپ پایین
CORNER_RIGHT_LOWER            سمت راست پایین
CORNER_RIGHT_UPPER            سمت راست بالا





برای نقاط اتکا میتوانید یکی از موارد زیر انتخاب شود

ANCHOR_LEFT_UPPER          چپ بالا
ANCHOR_LEFT                چپ
ANCHOR_LEFT_LOWER          چپ پایین
ANCHOR_LOWER               پایین
ANCHOR_RIGHT_LOWER         راست پایین
ANCHOR_RIGHT               راست
ANCHOR_RIGHT_UPPER         راست بالا
ANCHOR_UPPER               بالا
ANCHOR_CENTER              مرکز
*/
//+------------------------------------------------------------------+
//| کادر نوشته(Edit)                                                 |
//+------------------------------------------------------------------+
bool Edit(const long                  chart_ID=0,// ای دی چارت
          const string           name="Edit",              // اسم
          const int              sub_window=0,             // شماره پنجره
          const int              x=0,                      // X مختصات 
          const int              y=0,                      // Y مختصات
          const int              width=50,                 // عرض
          const int              height=18,                // ارتفاع
          const string           text="Text",              // متن
          const string           font="Arial",             // فونت
          const int              font_size=10,             // اندازه فونت
          const ENUM_ALIGN_MODE  align=ALIGN_CENTER,       // نوع تراز
          const bool             read_only=false,          // فقط قابل خواندن
          const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // انتخاب گوشه چارت
          const color            clr=clrBlack,             // رنگ نوشته
          const color            back_clr=clrWhite,        // رنگ پشن نوشته
          const color            border_clr=clrNONE,       // رنگ کادر
          const bool             back=false,               // قرار گرفتن در پشت
          const bool             selection=false,          // قابلیت حرکت
          const bool             hidden=true,              // مخفی شدن از لیست
          const long             z_order=0)                // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetInteger(chart_ID,name,OBJPROP_ALIGN,align);
      ObjectSetInteger(chart_ID,name,OBJPROP_READONLY,read_only);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_EDIT,sub_window,0,0))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
         ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
         ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
         ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
         ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
         ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
         ObjectSetInteger(chart_ID,name,OBJPROP_ALIGN,align);
         ObjectSetInteger(chart_ID,name,OBJPROP_READONLY,read_only);
         ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,border_clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| رویداد(Event)                                                    |
//+------------------------------------------------------------------+
bool Event(const long                  chart_ID=0,//  ای دی چارت
           const string          name="Event",    // اسم
           const int             sub_window=0,    // شماره پنجره
           const string          text="Text",     // متن
           datetime              time=0,          // نقطه زمان
           const color           clr=clrRed,      // رنگ
           const int             width=1,         // اندازه(زمان انتخاب)
           const bool            back=false,      // قرار گرفتن در پشت
           const bool            selection=false, // قابلیت حرکت
           const bool            hidden=true,     // مخفی شدن از لیست
           const long            z_order=0)       // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_EVENT,sub_window,time,0))
        {
         ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }
  }
//+------------------------------------------------------------------+
//| مستطیل گرافیکی(Rectangle label)                                  |
//+------------------------------------------------------------------+

bool Rectangle_label(const long             chart_ID=0,               // ای دی چارت
                     const string           name="RectLabel",         // اسم
                     const int              sub_window=0,             // شماره پنجره
                     const int              x=0,                      // X مختصات 
                     const int              y=0,                      // Y مختصات
                     const int              width=50,                 // عرض
                     const int              height=18,                // ارتفاع
                     const color            back_clr=C'236,233,216',  // رنگ پس زمینه
                     const ENUM_BORDER_TYPE border=BORDER_SUNKEN,     // نوع خط کادر
                     const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // انتخاب گوشه چارت
                     const color            clr=clrRed,               // رنگ کادر
                     const ENUM_LINE_STYLE  style=STYLE_SOLID,        // استایل کادر
                     const int              line_width=1,             // اندازه کادر
                     const bool             back=false,               // قرار گرفتن در پشت
                     const bool             selection=false,          // قابلیت حرکت
                     const bool             hidden=true,              // مخفی شدن از لیست
                     const long             z_order=0)                // اولویت برای کلیک ماوس
  {
   ResetLastError();
   if(ObjectFind(name)==sub_window) // در صورت وجود داشتن ابجیکت
     {
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
      ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
      ChartRedraw();
      return(true);
        }else{
      if(ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0))
        {
         ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
         ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
         ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
         ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
         ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,border);
         ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
         ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
         ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
         ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,line_width);
         ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
         ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
         ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
         ChartRedraw();
         return(true);
        }
      else
        {
         Print(__FUNCTION__,
               ": failed to create => ",name," object! Error code = ",GetLastError());
         return(false);
        }
     }

  }
//+------------------------------------------------------------------+

در سایت تریدر اف ایکس که یک مرجع تخصصی فارکس در ایران می باشد، با مراجعه به این سایت می توانید با ثبت نام در بروکر های مثل بروکر آلپاری، بروکر لایت فایننس، بروکر ارانته و بروکر stp trading ثبت نام کنید، و آموزش ها را در حساب های مجازی پیاده سازی کنید.

لینک کوتاه مقاله

https://traderfx.ir/?p=8699

مدرس دوره

استاد مهربان

سطح دوره​

فوق پیشرفته

تعداد جلسات​

73 ویدیو

هزینه دوره​

کاملا رایگان

Question mark

هر گونه سوال، پیشنهاد یا انتقادی در رابطه با دوره رایگان آموزش اکسپرت دارید در بخش دیدگاه‌ها مطرح نمایید تا بتوانیم بهترین آموزش ها را برای شما علاقمندان به آموزش ربات نویسی تهیه کنیم.