public QuickFix42.NewOrderSingle sendKnightMarketOrder(string OrderID, string route, string symbol) { //int id = rand.Next(100000000, 200000000); //limitID = "t" + id.ToString(); QuickFix42.NewOrderSingle msg2 = new QuickFix42.NewOrderSingle(new ClOrdID(OrderID), new HandlInst('1'), new Symbol(symbol), new Side(Side.BUY), new TransactTime(DateTime.UtcNow), new OrdType(OrdType.MARKET)); //Additional required Fields msg2.set(new OrderQty(100)); msg2.set(new Account("1234")); msg2.set(new TimeInForce(TimeInForce.DAY)); //RMG Routing msg2.setField(57, route); if (route.Contains("ALGO")) { msg2.setField(9102, "T"); } else { msg2.setField(9102, "X"); } //msg2.setField(6210, "0"); //Session.sendToTarget(msg2, oKnightSessionID); return(msg2); }
public override void Send(FIXNewOrderSingle Order) { QuickFix42.NewOrderSingle order = new QuickFix42.NewOrderSingle( new QuickFix.ClOrdID(Order.ClOrdID), //new QuickFix.HandlInst(Order.HandlInst), new QuickFix.HandlInst(HandlInst.AUTOEXECPRIV), // GS FIX new QuickFix.Symbol(Order.Symbol.Substring(0, 6)), new QuickFix.Side(Order.Side), new QuickFix.TransactTime(Order.TransactTime), new QuickFix.OrdType(Order.OrdType)); if ((Order.OrdType == FIXOrdType.Limit || Order.OrdType == FIXOrdType.StopLimit) && Order.ContainsField(EFIXField.Price)) { order.set(new QuickFix.Price(Order.Price)); } if ((Order.OrdType == FIXOrdType.Stop || Order.OrdType == FIXOrdType.StopLimit) && Order.ContainsField(EFIXField.StopPx)) { order.set(new QuickFix.StopPx(Order.StopPx)); } // 自己计算交易所 if (Order.Symbol.StartsWith("60") || Order.Symbol.StartsWith("51")) { //order.set(new QuickFix.SecurityExchange("XSHG"));// 上海 order.set(new QuickFix.SecurityExchange("SS"));// 上海 } else if (Order.Symbol.StartsWith("00") || Order.Symbol.StartsWith("30") || Order.Symbol.StartsWith("15")) { //order.set(new QuickFix.SecurityExchange("XSHE"));// 深圳 order.set(new QuickFix.SecurityExchange("SZ"));// 深圳 } if (Order.Text.StartsWith(OpenPrefix)) { order.setField(new QuickFix.CashMargin(CashMargin.MARGIN_OPEN)); } else if (Order.Text.StartsWith(ClosePrefix)) { order.setField(new QuickFix.CashMargin(CashMargin.MARGIN_CLOSE)); } //order.set(new QuickFix.SecurityType(Order.SecurityType)); order.set(new QuickFix.OrderQty(Order.OrderQty)); //order.set(new QuickFix.Account(Order.Account)); //order.set(new QuickFix.Rule80A(Order.Rule80A)); //order.set(new QuickFix.CustomerOrFirm(Order.CustomerOrFirm)); //if (Order.ContainsField(EFIXField.ClearingAccount)) // order.set(new QuickFix.ClearingAccount(Order.ClearingAccount)); order.set(new QuickFix.Currency("CNY")); // GS FIX Session.sendToTarget(order, orderSessionID); }
public QuickFix42.NewOrderSingle SendKnightMarketOrder(string orderId, string route, string symbol) { QuickFix42.NewOrderSingle msg2 = new QuickFix42.NewOrderSingle(new ClOrdID(orderId), new HandlInst('1'), new Symbol(symbol), new Side(Side.BUY), new TransactTime(DateTime.UtcNow), new OrdType(OrdType.MARKET)); //Additional required Fields msg2.set(new OrderQty(100)); msg2.set(new Account("1234")); msg2.set(new TimeInForce(TimeInForce.DAY)); msg2.setField(57, route); msg2.setField(9102, route.Contains("ALGO") ? "T" : "X"); return(msg2); }
public QuickFix42.NewOrderSingle SendKnightMarketOrder(string orderId) { QuickFix42.NewOrderSingle msg2 = new QuickFix42.NewOrderSingle(new ClOrdID(orderId), new HandlInst('1'), new Symbol("BAC"), new Side(Side.BUY), new TransactTime(DateTime.UtcNow), new OrdType(OrdType.MARKET)); //Additional required Fields msg2.set(new OrderQty(100)); msg2.set(new Account("1234")); msg2.set(new TimeInForce(TimeInForce.DAY)); //RMG Routing msg2.setField(57, "ALGO1"); msg2.setField(9102, "T"); Handler.Add(msg2); return(msg2); }
public QuickFix42.NewOrderSingle SendMarketOrder(string clOrdId, string symbol, int qty, string side, string route, string clientid, string channel = "X") { Side sd = new Side(Side.BUY); LocateReqd lReqd = new LocateReqd(true); bool isLocateReqd = false; if (side.Equals("B") || side.Equals("b") || side.Equals("buy") || side.Equals("BUY")) { sd = new Side(Side.BUY); } else if (side.Equals("S") || side.Equals("s") || side.Equals("sell") || side.Equals("SELL")) { sd = new Side(Side.SELL); } else if (side.Equals("SS") || side.Equals("ss") || side.Equals("ssell") || side.Equals("SSELL") || side.Equals("SHORT") || side.Equals("short")) { sd = new Side(Side.SELL_SHORT); isLocateReqd = true; } QuickFix42.NewOrderSingle msg = new QuickFix42.NewOrderSingle(new ClOrdID(clOrdId), new HandlInst('1'), new Symbol(symbol), sd, new TransactTime(DateTime.UtcNow), new OrdType(OrdType.MARKET)); if (isLocateReqd) { msg.set(lReqd); } msg.set(new OrderQty(qty)); msg.set(new Account("54321")); msg.set(new TimeInForce(TimeInForce.DAY)); msg.setField(57, route); // msg.setField(50, route); msg.setField(9102, channel); if (route.Equals("JPMVWAP") || route.Equals("RAVAT") || route.Equals("TWAPJP") || route.Equals("MISMTW") || route.Equals("SGMISMTW")) { msg.setField(6203, DateTime.UtcNow.ToString()); msg.setField(6205, DateTime.UtcNow.Add(new TimeSpan(0, 5, 0)).ToString()); } Handler.Add(msg); return(msg); }
public QuickFix42.NewOrderSingle SendKnightLimitOrder(string orderId, ref string limitId, double price) { limitId = orderId; QuickFix42.NewOrderSingle msg2 = new QuickFix42.NewOrderSingle(new ClOrdID(orderId), new HandlInst('1'), new Symbol("BAC"), new Side(Side.BUY), new TransactTime(DateTime.UtcNow), new OrdType(OrdType.LIMIT)); //additional required fields msg2.set(new OrderQty(100)); msg2.set(new Account("1234")); msg2.set(new TimeInForce(TimeInForce.DAY)); Price p = new Price(price); msg2.set(p); //For RMG Routing msg2.setField(57, "ALGO1"); msg2.setField(9102, "T"); //Session.sendToTarget(msg2, oKnightSessionID); return(msg2); }
public QuickFix42.NewOrderSingle SendLimitOrder(string clOrdId, string symbol, int qty, string side, double price, string route = "NEFAN", string channel = "X") { Side sd = new Side(Side.BUY); LocateReqd lReqd = new LocateReqd(true); bool isLocateReqd = false; if (side.Equals("B") || side.Equals("b") || side.Equals("buy") || side.Equals("BUY")) { sd = new Side(Side.BUY); } else if (side.Equals("S") || side.Equals("s") || side.Equals("sell") || side.Equals("SELL")) { sd = new Side(Side.SELL); } else if (side.Equals("SS") || side.Equals("ss") || side.Equals("ssell") || side.Equals("SSELL") || side.Equals("SHORT") || side.Equals("short")) { sd = new Side(Side.SELL_SHORT); isLocateReqd = true; } QuickFix42.NewOrderSingle msg2 = new QuickFix42.NewOrderSingle(new ClOrdID(clOrdId), new HandlInst('1'), new Symbol(symbol), sd, new TransactTime(DateTime.UtcNow), new OrdType(OrdType.LIMIT)); //additional required fields if (isLocateReqd) { msg2.set(lReqd); } msg2.set(new OrderQty(qty)); msg2.set(new Account("12345")); msg2.set(new TimeInForce(TimeInForce.DAY)); msg2.set(new Price(price)); //For RMG Routing msg2.setField(57, route); msg2.setField(9102, channel); Handler.Add(msg2); return(msg2); }
public override void Send(FIXNewOrderSingle Order) { QuickFix42.NewOrderSingle order = new QuickFix42.NewOrderSingle( new QuickFix.ClOrdID(Order.ClOrdID), //new QuickFix.HandlInst(Order.HandlInst), new QuickFix.HandlInst(HandlInst.AUTOEXECPRIV), // GS FIX new QuickFix.Symbol(Order.Symbol.Substring(0,6)), new QuickFix.Side(Order.Side), new QuickFix.TransactTime(Order.TransactTime), new QuickFix.OrdType(Order.OrdType)); if ((Order.OrdType == FIXOrdType.Limit || Order.OrdType == FIXOrdType.StopLimit) && Order.ContainsField(EFIXField.Price)) order.set(new QuickFix.Price(Order.Price)); if ((Order.OrdType == FIXOrdType.Stop || Order.OrdType == FIXOrdType.StopLimit) && Order.ContainsField(EFIXField.StopPx)) order.set(new QuickFix.StopPx(Order.StopPx)); // 自己计算交易所 if (Order.Symbol.StartsWith("60") || Order.Symbol.StartsWith("51")) { //order.set(new QuickFix.SecurityExchange("XSHG"));// 上海 order.set(new QuickFix.SecurityExchange("SS"));// 上海 } else if (Order.Symbol.StartsWith("00") || Order.Symbol.StartsWith("30") || Order.Symbol.StartsWith("15")) { //order.set(new QuickFix.SecurityExchange("XSHE"));// 深圳 order.set(new QuickFix.SecurityExchange("SZ"));// 深圳 } if (Order.Text.StartsWith(OpenPrefix)) { order.setField(new QuickFix.CashMargin(CashMargin.MARGIN_OPEN)); } else if (Order.Text.StartsWith(ClosePrefix)) { order.setField(new QuickFix.CashMargin(CashMargin.MARGIN_CLOSE)); } //order.set(new QuickFix.SecurityType(Order.SecurityType)); order.set(new QuickFix.OrderQty(Order.OrderQty)); //order.set(new QuickFix.Account(Order.Account)); //order.set(new QuickFix.Rule80A(Order.Rule80A)); //order.set(new QuickFix.CustomerOrFirm(Order.CustomerOrFirm)); //if (Order.ContainsField(EFIXField.ClearingAccount)) // order.set(new QuickFix.ClearingAccount(Order.ClearingAccount)); order.set(new QuickFix.Currency("CNY")); // GS FIX Session.sendToTarget(order, orderSessionID); }