cm-ea-options_cmillion

Price Data Components
Series array that contains open time of each bar
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reached
Indicators Used
Moving average indicatorParabolic Stop and Reverse systemCommodity channel indexStochastic oscillatorMACD Histogram
Miscellaneous
It plays sound alerts
0 Views
0 Downloads
0 Favorites
cm-ea-options_cmillion
#property copyright "Copyright © 2014 http://cmillion.ru"
#property link      "http://cmillion.ru"
#property description "Ñîâåòíèê òîðãóåò îïöèîíàìè ïî èíäèêàòîðàì"

//+------------------------------------------------------------------
extern bool Zigzag            = true;
extern int  Zigzag_Depth      = 12;
extern int  Zigzag_Deviation  = 5;
extern int  Zigzag_Backstep   = 3;

extern bool MA                = true;
extern int  Period_MA         = 35;

extern bool Parabolic         = true;
extern double  Step           = 0.02;  //ïàðàìåòð Parabolic Step
extern double  Maximum        = 0.2;   //ïàðàìåòð Parabolic Maximum

extern bool CCI               = true;
extern int  Period_CCI        = 14;    //ïåðèîä CCI

extern bool Stochastic        = true;
extern int  Kperiod           = 5;     // ïåðèîä ëèíèè K
extern int  Dperiod           = 3;     // ïåðèîä ëèíèè D
extern int  slowing           = 3;     // çàìåäëåíèå     = 0.2;   //ïàðàìåòð Parabolic Maximum
extern int  LevelSell         = 75;    // ïåðåêóïëåííîñòü
extern int  LevelBuy          = 25;    // ïåðåïðîäàííîñòü

extern bool MACD              = true;
extern int  fast_ema_period   = 12;    // ïåðèîä áûñòðîé ñðåäíåé
extern int  slow_ema_period   = 26;    // ïåðèîä ìåäëåííîé ñðåäíåé
extern int  signal_period     = 9;     // ïåðèîä ñèãíàëüíîé ëèíèè

extern double  Lot            = 0.10;
extern int     Magic          = 0;

input color    Color_1     = clrBlack;       // öâåò 
input color    Color_2     = clrLightGray;   // öâåò 
input color    Color_3     = clrSnow;        // öâåò 
input string   Font        = "Times New Roman"; // Øðèôò

input string   CommentOrder = "15"; // êîìåíòàðèé îðäåðàì

int S[6][9];
bool trade=false;
//--------------------------------------------------------------------
int OnInit()
{
   if (Lot<MarketInfo(NULL,MODE_MINLOT)) Lot=MarketInfo(NULL,MODE_MINLOT);
   int X=10;
   int Y=60;
   int i;
   RectLabelCreate(0,"cm-fon" ,0,X-5,Y-5,290 ,150,Color_2,Color_1,STYLE_SOLID,1,true,false,true,0);
   ButtonCreate   (0,"cm-Trade",0,X,Y,100,20,"Trade",Font,10,Color_1,Color_3,Color_2,false);
   ButtonCreate   (0,"cm-S1.b",0,X,Y+20,100,20,"Zigzag",Font,10,Color_1,Color_3,Color_2,Zigzag);
   ButtonCreate   (0,"cm-S2.b",0,X,Y+40,100,20,"MA "+Period_MA,Font,10,Color_1,Color_3,Color_2,MA);
   ButtonCreate   (0,"cm-S3.b",0,X,Y+60,100,20,"Parabolic",Font,10,Color_1,Color_3,Color_2,Parabolic);
   ButtonCreate   (0,"cm-S4.b",0,X,Y+80,100,20,"CCI",Font,10,Color_1,Color_3,Color_2,Parabolic);
   ButtonCreate   (0,"cm-S5.b",0,X,Y+100,100,20,"Stochastic",Font,10,Color_1,Color_3,Color_2,Parabolic);
   ButtonCreate   (0,"cm-S6.b",0,X,Y+120,100,20,"MACD",Font,10,Color_1,Color_3,Color_2,Parabolic);
   X+=100;
   int TF=1;
   for (i=0; i<9; i++)
   {
      ButtonCreate(0,StringConcatenate("cm-TF",TF)  ,0,X,Y,20,20,string_per(TF),Font,6,Color_1,Color_3,Color_2,Zigzag);
      ButtonCreate(0,StringConcatenate("cm-S1.l",TF),0,X,Y+20,20,20,CharToStr(185),"Wingdings",10,Color_1,Color_3,Color_2,Zigzag);
      ButtonCreate(0,StringConcatenate("cm-S2.l",TF),0,X,Y+40,20,20,CharToStr(185),"Wingdings",10,Color_1,Color_3,Color_2,Zigzag);
      ButtonCreate(0,StringConcatenate("cm-S3.l",TF),0,X,Y+60,20,20,CharToStr(185),"Wingdings",10,Color_1,Color_3,Color_2,Zigzag);
      ButtonCreate(0,StringConcatenate("cm-S4.l",TF),0,X,Y+80,20,20,CharToStr(185),"Wingdings",10,Color_1,Color_3,Color_2,Zigzag);
      ButtonCreate(0,StringConcatenate("cm-S5.l",TF),0,X,Y+100,20,20,CharToStr(185),"Wingdings",10,Color_1,Color_3,Color_2,Zigzag);
      ButtonCreate(0,StringConcatenate("cm-S6.l",TF),0,X,Y+120,20,20,CharToStr(185),"Wingdings",10,Color_1,Color_3,Color_2,Zigzag);
      TF=next_period(TF+1);X+=20;
   }
   chekbuttom();
   return(INIT_SUCCEEDED);
}
//--------------------------------------------------------------------
void OnDeinit(const int reason)
{
   Comment("");
   //ObjectsDeleteAll(0);
   for(int k=ObjectsTotal()-1; k>=0; k--) 
   {
      string Obj_Name=ObjectName(k);
      string Head=StringSubstr(Obj_Name,0,3);
 
      if (Head=="cm-")
      {
         ObjectDelete(Obj_Name);
      }                  
   }
}
//--------------------------------------------------------------------
int Char(int i)
{
   if (i>0) return(233);
   if (i<0) return(234);
   return(192);
}
//--------------------------------------------------------------------
color Color(double i)
{
   if (i==1) return(clrDarkTurquoise);
   if (i==-1) return(clrMaroon);
   if (i>1) return(clrBlue);
   if (i<-1) return(clrRed);
   return(clrGray);
}
//--------------------------------------------------------------------
string OT(int i)
{
   if (i==0) return("BUY");
   return("SELL");
}
//--------------------------------------------------------------------
void OnTick()
{
   if (!IsTradeAllowed()) return;
   trade = ObjectGetInteger(0,"cm-Trade",OBJPROP_STATE);
   //---
   chekbuttom();
   //---
   double OOP;
   for (int i=0; i<OrdersTotal(); i++)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) 
         {
            trade=false;
            OOP=OrderOpenPrice();
            Comment(TimeToStr(OrderOpenTime(),TIME_SECONDS)," Îòêðûò îïöèîí ",OT(OrderType()),", Çàêðûòèå ÷åðåç ",TimeToStr(OrderExpiration()-TimeCurrent(),TIME_SECONDS)/*," ",OOP," ",Bid*/);
            if (OrderType()==OP_SELL) RectLabelCreate(0,"cm-îïöèîí.r",0,10,30,450,20,Color(OOP-Bid),Color_2,STYLE_SOLID,1,false,false,true,1);
            else                      RectLabelCreate(0,"cm-îïöèîí.r",0,10,30,450,20,Color(Bid-OOP),Color_2,STYLE_SOLID,1,false,false,true,1);
            LabelCreate(0,"cm-îïöèîí.l",0,220,40,CORNER_LEFT_UPPER,StringConcatenate(TimeToStr(OrderOpenTime(),TIME_SECONDS)," Îòêðûò îïöèîí ",OT(OrderType()),", Çàêðûòèå ÷åðåç ",TimeToStr(OrderExpiration()-TimeCurrent(),TIME_SECONDS)),Font,10,clrBlack,0,ANCHOR_CENTER,false,false,true,0);
            return;
         }
      }
   }
   ObjectDelete("cm-îïöèîí.r");
   ObjectDelete("cm-îïöèîí.l");
   //---
   if (trade) Trade();
}
//--------------------------------------------------------------------
void Trade()
{
   bool SELL=true,BUY=true;
   for (int i=0; i<6; i++)
   {
      for (int j=0; j<9; j++)
      {
         if (S[i][j]<0) BUY=false;
         if (S[i][j]>0) SELL=false;
      }
   }
   Comment(TimeToStr(OrderOpenTime(),TIME_SECONDS),"  ",BUY," ",SELL);
   if (BUY)
   {
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),2,0,0,CommentOrder,Magic,3)==-1)
         Print("Îøèáêà îòêðûòèÿ îðäåðà <<",GetLastError(),">>  ");
   }
   //---
   if (SELL)
   {
      if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),2,0,0,CommentOrder,Magic,0,clrNONE)==-1)
         Print("Îøèáêà îòêðûòèÿ îðäåðà <<",GetLastError(),">>  ");
   }
   //---
   return;
}
//--------------------------------------------------------------------
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   if(id==CHARTEVENT_OBJECT_CLICK)
   {
      string clickedChartObject=sparam;
      if(StringSubstr(clickedChartObject,0,3)=="cm-")
      {
         chekbuttom();
         PlaySound("Ok.wav");
      }
   }
}
//--------------------------------------------------------------------
void chekbuttom()
{
   int i,TF=1;
   string name;
   for (i=0; i<9; i++)
   {
      
      name = StringConcatenate("cm-S1.l",TF);
      bool TF_ON = ObjectGetInteger(0,StringConcatenate("cm-TF",TF),OBJPROP_STATE);
      if (ObjectGetInteger(0,name,OBJPROP_STATE) && ObjectGetInteger(0,"cm-S1.b",OBJPROP_STATE) && TF_ON)
      {
         double Z=0,Z1=0;
         for (int j=0; j<100; j++)
         {
            if (Z==0) {Z = iCustom(NULL,TF,"ZigZag",Zigzag_Depth,Zigzag_Deviation,Zigzag_Backstep,0,j);continue;}
            Z1 = iCustom(NULL,TF,"ZigZag",Zigzag_Depth,Zigzag_Deviation,Zigzag_Backstep,0,j);
            if (Z1==0) continue;
            if (Z>Z1) S[0][i]=-1;
            else S[0][i]= 1;
            //Comment(Z," ",Z1," ",S1," ");
            ObjectSetInteger(0,name,OBJPROP_COLOR,Color(S[0][i]));
            ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(Char(S[0][i])));
            break;
         }
      }
      else
      {
         S[0][i]=0;
         ObjectSetInteger(0,name,OBJPROP_COLOR,clrGray);
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(251));
      }
      //---
      name = StringConcatenate("cm-S2.l",TF);
      if (ObjectGetInteger(0,name,OBJPROP_STATE) && ObjectGetInteger(0,"cm-S2.b",OBJPROP_STATE) && TF_ON)
      {
         if (iMA(NULL,TF,Period_MA,0,MODE_EMA,PRICE_CLOSE,0)>iMA(NULL,TF,Period_MA,0,MODE_EMA,PRICE_CLOSE,1)) S[1][i]=1;
         else S[1][i]=-1;
         ObjectSetInteger(0,name,OBJPROP_COLOR,Color(S[1][i]));
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(Char(S[1][i])));
      }
      else
      {
         S[1][i]=0;
         ObjectSetInteger(0,name,OBJPROP_COLOR,clrGray);
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(251));
      }
      //---
      name = StringConcatenate("cm-S3.l",TF);
      if (ObjectGetInteger(0,name,OBJPROP_STATE) && ObjectGetInteger(0,"cm-S3.b",OBJPROP_STATE) && TF_ON)
      {
         if (Bid>iSAR(NULL,TF,Step,Maximum,1)) S[2][i]=1;
         else S[2][i]=-1;
         ObjectSetInteger(0,name,OBJPROP_COLOR,Color(S[2][i]));
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(Char(S[2][i])));
      }
      else
      {
         S[2][i]=0;
         ObjectSetInteger(0,name,OBJPROP_COLOR,clrGray);
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(251));
      }
      //---
      name = StringConcatenate("cm-S4.l",TF);
      if (ObjectGetInteger(0,name,OBJPROP_STATE) && ObjectGetInteger(0,"cm-S4.b",OBJPROP_STATE) && TF_ON)
      {
         if (iCCI(NULL,TF,Period_CCI,PRICE_CLOSE,0)<50) S[3][i]=1;
         else S[3][i]=-1;
         ObjectSetInteger(0,name,OBJPROP_COLOR,Color(S[3][i]));
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(Char(S[3][i])));
      }
      else
      {
         S[3][i]=0;
         ObjectSetInteger(0,name,OBJPROP_COLOR,clrGray);
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(251));
      }
      //---
      name = StringConcatenate("cm-S5.l",TF);
      S[4][i]=0;
      if (ObjectGetInteger(0,name,OBJPROP_STATE) && ObjectGetInteger(0,"cm-S5.b",OBJPROP_STATE) && TF_ON)
      {
         double StochasticMAIN = iStochastic(NULL,TF,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_MAIN,0);
         double StochasticSIGNAL = iStochastic(NULL,TF,Kperiod,Dperiod,slowing,MODE_SMA,0,MODE_SIGNAL,0);
         if (StochasticMAIN>StochasticSIGNAL) S[4][i]=1;
         if (StochasticMAIN<StochasticSIGNAL) S[4][i]=-1;
         if (S[4][i]==1  && StochasticMAIN<LevelBuy)  S[4][i]=2;
         if (S[4][i]==-1 && StochasticMAIN>LevelSell) S[4][i]=-2;
         
         ObjectSetInteger(0,name,OBJPROP_COLOR,Color(S[4][i]));
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(Char(S[4][i])));
      }
      else
      {
         ObjectSetInteger(0,name,OBJPROP_COLOR,clrGray);
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(251));
      }
      //---
      name = StringConcatenate("cm-S6.l",TF);
      S[5][i]=0;
      if (ObjectGetInteger(0,name,OBJPROP_STATE) && ObjectGetInteger(0,"cm-S6.b",OBJPROP_STATE) && TF_ON)
      {
         double MACDMAIN=iMACD(NULL,TF,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_MAIN,0);
         double MACDSIGNAL=iMACD(NULL,TF,fast_ema_period,slow_ema_period,signal_period,PRICE_CLOSE,MODE_SIGNAL,0);
         if (MACDMAIN>MACDSIGNAL) S[5][i]=1;
         if (MACDMAIN<MACDSIGNAL) S[5][i]=-1;
         if (S[5][i]==1  && MACDMAIN>0) S[5][i]=2;
         if (S[5][i]==-1 && MACDMAIN<0) S[5][i]=-2;
         ObjectSetInteger(0,name,OBJPROP_COLOR,Color(S[5][i]));
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(Char(S[5][i])));
      }
      else
      {
         ObjectSetInteger(0,name,OBJPROP_COLOR,clrGray);
         ObjectSetString(0,name,OBJPROP_TEXT,CharToStr(251));
      }
      TF=next_period(TF+1);
   }
   //if (trade) Trade();
}
//--------------------------------------------------------------------
int next_period(int per)
{
   if (per > 43200)  return(0); 
   if (per > 10080)  return(43200); 
   if (per > 1440)   return(10080); 
   if (per > 240)    return(1440); 
   if (per > 60)     return(240); 
   if (per > 30)     return(60);
   if (per > 15)     return(30); 
   if (per >  5)     return(15); 
   if (per >  1)     return(5);   
   if (per == 1)     return(1);   
   return(Period());   
}
//+------------------------------------------------------------------+
string string_per(int per)
{
   if (per == 1)     return("M1");
   if (per == 5)     return("M5");
   if (per == 15)    return("15");
   if (per == 30)    return("30");
   if (per == 60)    return("H1");
   if (per == 240)   return("H4");
   if (per == 1440)  return("D1");
   if (per == 10080) return("W1");
   if (per == 43200) return("MN");
return("îøèáêà ïåðèîäà");
}
//--------------------------------------------------------------------
bool ButtonCreate(const long              chart_ID=0,               // ID ãðàôèêà
                  const string            name="Button",            // èìÿ êíîïêè
                  const int               sub_window=0,             // íîìåð ïîäîêíà
                  const long               x=0,                     // êîîðäèíàòà ïî îñè X
                  const long               y=0,                     // êîîðäèíàòà ïî îñè Y
                  const int               width=50,                 // øèðèíà êíîïêè
                  const int               height=18,                // âûñîòà êíîïêè
                  const string            text="Button",            // òåêñò
                  const string            font="Arial",             // øðèôò
                  const int               font_size=10,             // ðàçìåð øðèôòà
                  const color             clr=clrNONE,              // öâåò òåêñòà
                  const color             clrON=clrNONE,            // öâåò ôîíà
                  const color             clrOFF=clrNONE,           // öâåò ôîíà
                  const bool              state=false)              // íàæàòà/îòæàòà
  {
   if (ObjectFind(chart_ID,name)==-1)
   {
      ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,1);
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,clrNONE);
   }
   color back_clr;
   if (ObjectGetInteger(chart_ID,name,OBJPROP_STATE)) back_clr=clrON; else back_clr=clrOFF;
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
   return(true);
}
//--------------------------------------------------------------------
bool RectLabelCreate(const long             chart_ID=0,               // ID ãðàôèêà
                     const string           name="RectLabel",         // èìÿ ìåòêè
                     const int              sub_window=0,             // íîìåð ïîäîêíà
                     const long              x=0,                      // êîîðäèíàòà ïî îñè X
                     const long              y=0,                      // êîîðäèíàòà ïî îñè Y
                     const int              width=50,                 // øèðèíà
                     const int              height=18,                // âûñîòà
                     const color            back_clr=C'236,233,216',  // öâåò ôîíà
                     const color            clr=clrNONE,               // öâåò ïëîñêîé ãðàíèöû (Flat)
                     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(chart_ID,name)==-1)
   {
      ObjectCreate(chart_ID,name,OBJ_RECTANGLE_LABEL,sub_window,0,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,BORDER_FLAT);
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
      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);
   }
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
   return(true);
}
//--------------------------------------------------------------------
bool LabelCreate(const long              chart_ID=0,               // ID ãðàôèêà
                 const string            name="Label",             // èìÿ ìåòêè
                 const int               sub_window=0,             // íîìåð ïîäîêíà
                 const long              x=0,                      // êîîðäèíàòà ïî îñè X
                 const long              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=clrNONE,               // öâåò
                 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(chart_ID,name)==-1)
   {
      if(!ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
      {
         Print(__FUNCTION__,": íå óäàëîñü ñîçäàòü òåêñòîâóþ ìåòêó! Êîä îøèáêè = ",GetLastError());
         return(false);
      }
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
      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_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);
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
   }
   return(true);
  }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---