public Ticket OrderSend(Symbol symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment, int magic, MT4DateTime expiration, MT4Color arrow_color)
        {
            int number = mt4.OrderSend(symbol.symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);


            if(number != -1)
            {
                Ticket ticket = new Ticket() { Number = number, Cmd = cmd == 0 ? "Ask" : "Bid", Symbol = symbol, date = DateTime.Now, Rate = cmd == 0 ? this.GetAsk(symbol) : this.GetBid(symbol), Status = Ticket.TicketStatus.STATUS_ORDERED};
                this.orderTicketList.Add(ticket);
                return ticket;
            }
            else
            {
                return null;
            }
        }
public int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment, int magic, MT4DateTime expiration, MT4Color arrow_color)
{
    return com.CallMql4<int>(CommunicationMql4.CALL_FUNC, "OrderSend", symbol, cmd, volume, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
}
 public bool OrderClose(Ticket ticket, double lots, double price, int slippage, MT4Color arrow_color)
 {
     bool result = this.mt4.OrderClose(ticket.Number, lots, price, slippage, arrow_color);
     if (result)
     {
         ticket.Status = Ticket.TicketStatus.STATUS_CLOSED;
         this.orderTicketList.Remove(ticket);
         return true;
     }
     else
     {
         return false;
     }
 }
public bool OrderDelete(int ticket, MT4Color arrow_color)
{
return com.CallMql4<bool>(CommunicationMql4.CALL_FUNC, "OrderDelete", ticket, arrow_color);
}
public int OrderModify(int ticket, double price, double stoploss, double takeprofit, MT4DateTime expiration, MT4Color arrow_color)
{
return com.CallMql4<int>(CommunicationMql4.CALL_FUNC, "OrderModify", ticket, price, stoploss, takeprofit, expiration, arrow_color);
}
public bool OrderClose(int ticket, double lots, double price, int slippage, MT4Color arrow_color)
{
return com.CallMql4<bool>(CommunicationMql4.CALL_FUNC, "OrderClose", ticket, lots, price, slippage, arrow_color);
}
public bool OrderCloseBy(int ticket, int opposite, MT4Color arrow_color)
{
return com.CallMql4<bool>(CommunicationMql4.CALL_FUNC, "OrderCloseBy", ticket, opposite, arrow_color);
}
 public int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment, int magic, MT4DateTime expiration, MT4Color arrow_color)
  {
      return _TicketNum++;
  }
 public int OrderModify(int ticket, double price, double stoploss, double takeprofit, MT4DateTime expiration, MT4Color arrow_color)
 {
     return 0;
 }
 public bool OrderDelete(int ticket, MT4Color arrow_color)
 {
     return true;
 }
 public bool OrderCloseBy(int ticket, int opposite, MT4Color arrow_color)
 {
     return true;
 }
 public bool OrderClose(int ticket, double lots, double price, int slippage, MT4Color arrow_color)
 {
     return true;
 }