# Add Order Comment [MISSING FUNCTION]

Good evening, I would like to use this open source ea for personal use but I realized that it does not have the comment function at the opening of orders, so it does not track us and you could get confused with other manually opened positions. it's possible? Can anyone help me? Thank you

```//************************************************************************************************/
//*                                                                                              */
//*                                                                                              */
//*                                                                                              */
//************************************************************************************************/

#property version     ""
#property description ""
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
input int          iTakeProfit         = 300;      // Take Profit (in pips)
input double       iStartLots          = 0.01;     // Start lot
input double       iMaximalLots        = 2.56;     // Maximal Lots
input int          iPointOrderStep     = 390;      // Point order step (in pips)
input int          iMinimalProfit      = 70;       // Minimal profit for close grid (in pips)
input int          iMagicNumber        = 227;      // Magic Number (in number)
input int          iSlippage           = 30;       // Slippage (in pips)
//---
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
int OnInit()
{
Comment("");

return(INIT_SUCCEEDED);
}
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
void OnTick()
{
double
SelPriceMin=0,SelPriceMax=0,SelPriceMinLot=0,SelPriceMaxLot=0;

ulong

double
op=0,lt=0,tp=0;

ulong    tk=0;
int b=0,s=0;

int total=PositionsTotal();
for(int k=total-1;k>=0;k--)
if(m_position.SelectByIndex(k))
if(m_position.Symbol()==Symbol())
if(m_position.Magic()==iMagicNumber)
{

op=NormalizeDouble(m_position.PriceOpen(),Digits());
lt=NormalizeDouble(m_position.Volume(),2);
tk=m_position.Ticket();

{
b++;
{
}
{
}
}
// ===
if(m_position.PositionType()==POSITION_TYPE_SELL)
{
s++;
if(op>SelPriceMax || SelPriceMax==0)
{
SelPriceMax    = op;
SelPriceMaxLot = lt;
SelPriceMaxTic = tk;
}
if(op<SelPriceMin || SelPriceMin==0)
{
SelPriceMin    = op;
SelPriceMinLot = lt;
SelPriceMinTic = tk;
}
}
}
//*************************************************************//
if(s>=2) AwerageSelPrice=NormalizeDouble((SelPriceMax*SelPriceMaxLot+SelPriceMin*SelPriceMinLot)/(SelPriceMaxLot+SelPriceMinLot)-iMinimalProfit*Point(),Digits());
//*************************************************************//
if(SelPriceMaxLot==0) SelLot=iStartLots; else SelLot=SelPriceMaxLot*2;
//*************************************************************//

if(SelLot>iMaximalLots)      SelLot=iMaximalLots;

return;
//*************************************************************//
MqlRates rates[];
CopyRates(Symbol(),PERIOD_CURRENT,0,2,rates);

MqlTick tick;
if(!SymbolInfoTick(Symbol(),tick))
Print("SymbolInfoTick() failed, error = ",GetLastError());

if(rates[1].close>rates[1].open)

Print("OrderSend error #",GetLastError());

if(rates[1].close<rates[1].open)
if((s==0) || (s>0 && (tick.bid-SelPriceMax)>(iPointOrderStep*Point())))
Print("OrderSend error #",GetLastError());
//*************************************************************//

for(int k=total-1;k>=0;k--)
if(m_position.SelectByIndex(k))
if(m_position.Symbol()==Symbol())
if(m_position.Magic()==iMagicNumber)
{

op=NormalizeDouble(m_position.PriceOpen(),Digits());

tp=NormalizeDouble(m_position.TakeProfit(),Digits());

lt=NormalizeDouble(m_position.Volume(),2);
tk=m_position.Ticket();

Print("OrderModify error #",GetLastError());

if(m_position.PositionType()==POSITION_TYPE_SELL && s==1 && tp==0)
Print("OrderModify error #",GetLastError());

{
Print("OrderModify error #",GetLastError());

Print("OrderModify error #",GetLastError());
}
if(m_position.PositionType()==POSITION_TYPE_SELL && s>=2)
{
if(tk==SelPriceMaxTic || tk==SelPriceMinTic)
Print("OrderModify error #",GetLastError());

if(tk!=SelPriceMaxTic && tk!=SelPriceMinTic && tp!=0)
Print("OrderModify error #",GetLastError());
}
}
}
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
void OnDeinit(const int reason)
{

}
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/
bool CheckVolumeValue(double volume)
{
//--- минимально допустимый объем для торговых операций
double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
return(false);

//--- максимально допустимый объем для торговых операций
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
return(false);

//--- получим минимальную градацию объема
double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
return(false);

return(true);
}
//************************************************************************************************/
//*                                                                                              */
//************************************************************************************************/```
Reason: