private static void ConditionSamples(EClientSocket client, int nextOrderId) { //! [order_conditioning_activate] Order mkt = OrderSamples.MarketOrder("BUY", 100); //Order will become active if conditioning criteria is met mkt.ConditionsCancelOrder = true; mkt.Conditions.Add(OrderSamples.PriceCondition(208813720, "SMART", 600, false, false)); mkt.Conditions.Add(OrderSamples.ExecutionCondition("EUR.USD", "CASH", "IDEALPRO", true)); mkt.Conditions.Add(OrderSamples.MarginCondition(30, true, false)); mkt.Conditions.Add(OrderSamples.PercentageChangeCondition(15.0, 208813720, "SMART", true, true)); mkt.Conditions.Add(OrderSamples.TimeCondition("20160118 23:59:59", true, false)); mkt.Conditions.Add(OrderSamples.VolumeCondition(208813720, "SMART", false, 100, true)); client.placeOrder(nextOrderId++, ContractSamples.EuropeanStock(), mkt); //! [order_conditioning_activate] //Conditions can make the order active or cancel it. Only LMT orders can be conditionally canceled. //! [order_conditioning_cancel] Order lmt = OrderSamples.LimitOrder("BUY", 100, 20); //The active order will be cancelled if conditioning criteria is met lmt.ConditionsCancelOrder = true; lmt.Conditions.Add(OrderSamples.PriceCondition(208813720, "SMART", 600, false, false)); client.placeOrder(nextOrderId++, ContractSamples.EuropeanStock(), lmt); //! [order_conditioning_cancel] }
private static void historicalDataRequests(EClientSocket client) { /*** Requesting historical data ***/ //! [reqhistoricaldata] String queryTime = DateTime.Now.AddMonths(-6).ToString("yyyyMMdd HH:mm:ss"); client.reqHistoricalData(4001, ContractSamples.EurGbpFx(), queryTime, "1 M", "1 day", "MIDPOINT", 1, 1, false, null); client.reqHistoricalData(4002, ContractSamples.EuropeanStock(), queryTime, "10 D", "1 min", "TRADES", 1, 1, false, null); //! [reqhistoricaldata] Thread.Sleep(2000); /*** Canceling historical data requests ***/ client.cancelHistoricalData(4001); client.cancelHistoricalData(4002); }