public double SendLimitSellOrder(string ticker, double price, int size) { string derivativeClass = GetActualClassToTicker(ticker); string inputParams = GetTransactionsInputParams(new string[] { "ACCOUNT=" + account, "TRANS_ID=" + GetNewTransactionId(), "CLASSCODE=" + derivativeClass, "SECCODE=" + ticker, "TYPE=" + T2QParametres.TYPE_DEAL_LIMIT, "OPERATION=" + T2QParametres.OPERATION_SELL, "ACTION=" + T2QParametres.ACTION_NEW_ORDER, "PRICE=" + Convert.ToString(price), "QUANTITY=" + Convert.ToString(size) }); double result = SendSyncTransactionToQuik(inputParams); TerminalOrder tempOrder = new TerminalOrder(result, ticker, TerminalOrderType.LIMIT, TerminalOrderOperation.SELL, price, size, TerminalOrderStatus.ACTIVE); tempOrder.CreationTime = DateTime.Now; OrderMap.Add(result, tempOrder); return(result); }
public double SendMarketBuyOrder(string ticker, int size) { string derivativeClass = GetActualClassToTicker(ticker); string inputParams = GetTransactionsInputParams(new string[] { "ACCOUNT=" + account, "TRANS_ID=" + GetNewTransactionId(), "CLASSCODE=" + derivativeClass, "SECCODE=" + ticker, "TYPE=" + T2QParametres.TYPE_DEAL_MARKET, "OPERATION=" + T2QParametres.OPERATION_BUY, "ACTION=" + T2QParametres.ACTION_NEW_ORDER, "PRICE=" + Convert.ToString(0.0), "QUANTITY=" + Convert.ToString(size) }); double result = SendSyncTransactionToQuik(inputParams); TerminalOrder tempOrder = new TerminalOrder(result, ticker, TerminalOrderType.MARKET, TerminalOrderOperation.BUY, 0.0, size, TerminalOrderStatus.EXECUTED); tempOrder.CreationTime = DateTime.Now; tempOrder.LastTime = DateTime.Now; OrderMap.Add(result, tempOrder); return(result); }
private void UpdateOrderMap(TerminalOrder order) { if (OrderMap.ContainsKey(order.Id)) { OrderMap[order.Id] = order; } else { OrderMap.Add(order.Id, order); } }
public double RollLimitOrder(double id, double price, int size) { TerminalOrder existingOrder; if (!OrderMap.TryGetValue(id, out existingOrder)) { throw new NotImplementedException(); } string derivativeClass = GetActualClassToTicker(existingOrder.Ticker); string inputParams = GetTransactionsInputParams(new string[] { "TRANS_ID=" + GetNewTransactionId(), "CLASSCODE=" + derivativeClass, "SECCODE=" + existingOrder.Ticker, "MODE=" + T2QParametres.MODE, "ACTION=" + T2QParametres.ACTION_MOVE_ORDER, "FIRST_ORDER_NUMBER=" + (int)id, "FIRST_ORDER_NEW_PRICE=" + Convert.ToString(price), "FIRST_ORDER_NEW_QUANTITY=" + Convert.ToString(size) }); double result = SendSyncTransactionToQuik(inputParams); existingOrder.LastTime = DateTime.Now; existingOrder.OrderStatus = TerminalOrderStatus.CANCELED; //AND IF IT WAS EXECUTED? TerminalOrder tempOrder = new TerminalOrder(result, existingOrder.Ticker, TerminalOrderType.LIMIT, TerminalOrderOperation.SELL, price, size, TerminalOrderStatus.ACTIVE); tempOrder.CreationTime = DateTime.Now; OrderMap.Add(result, tempOrder); return(result); }