public MarketDataManager() { _tg = TickerGenerator.instance; _db = DBAccess.DBAccess.instance; _barTickerMap = new Dictionary <int, int>(); _tickerBarMap = new Dictionary <int, int>(); _tickTickerMap = new Dictionary <int, int>(); _tickerTickMap = new Dictionary <int, int>(); _tickerContractMap = new Dictionary <int, int>(); _tickerStrategiesMap = new Dictionary <int, HashSet <int> >(); }
public OrderManager() { set(0); lock (_lock) { _db = DBAccess.DBAccess.instance; _orders = new List <Tuple <Contract, Order> >(); _orderMap = new Dictionary <int, Tuple <int, int, Order> >(); _newOrderEntryEvent = new AutoResetEvent(false); _newOrderSubmittedEvent = new AutoResetEvent(false); } }
public Messenger() { _db = DBAccess.DBAccess.instance; lock (_lock_msg) { _messages = new Queue <string>(); } Thread tm = new Thread(new ThreadStart(runMessageAgent)); tm.CurrentCulture = CultureInfo.InvariantCulture; tm.CurrentUICulture = CultureInfo.InvariantCulture; tm.Start(); lock (_lock_error) { _errors = new Queue <string>(); } Thread te = new Thread(new ThreadStart(runErrorAgent)); te.CurrentCulture = CultureInfo.InvariantCulture; te.CurrentUICulture = CultureInfo.InvariantCulture; te.Start(); }
public Strategy(int strategy_id, string config, IBApi.EClientInterface socket) { _socket = socket; id = strategy_id; XmlDocument xml = new XmlDocument(); xml.LoadXml(config); XmlNode xn1 = xml.SelectSingleNode("/Config"); XmlNode common = xn1.SelectSingleNode("Common"); _time_zone = common["TimeZone"].InnerText; _zone = mapDotNetTimeZone(_time_zone); _start_time = TimeSpan.Parse(common["StartTime"].InnerText); _end_time = TimeSpan.Parse(common["EndTime"].InnerText); _calendar_name = common["Calendar"].InnerText; _calendar = mapCalendar(_calendar_name); if (common.SelectSingleNode("BarType") == null) { _bar_type = "TRADES"; } else { _bar_type = (common["BarType"].InnerText).ToUpper(); } _db = DBAccess.DBAccess.instance; _tg = TickerGenerator.instance; _tm = ThreadManager.instance; _mm = MarketDataManager.instance; _om = OrderManager.instance; _msg = Messenger.instance; _realtimeBarEvent = _tm.createEvent(); _reqContractMap = new Dictionary <int, int>(); _contractReqMap = new Dictionary <int, int>(); _contracts = new List <int>(); _contractDetailMap = new Dictionary <int, ContractDetails>(); }
public EWrapperImpl( string account_config, bool require_live_bars = true, bool record_live_bars = false, bool overwrite_live_bars = false, int sleep_time = 5000 ) { Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture; requireLiveBars = require_live_bars; recordLiveBars = record_live_bars; overwriteLiveBars = overwrite_live_bars; sleepTime = sleep_time; gettingOpenOrders = false; XmlDocument xml = new XmlDocument(); xml.LoadXml(account_config); XmlNode xn1 = xml.SelectSingleNode("/Config"); engine_type = xn1["EngineType"].InnerText; verbose = xn1["Verbose"] == null ? true : Boolean.Parse(xn1["Verbose"].InnerText); msg = Messenger.instance; XmlNode xnemail = xn1.SelectSingleNode("Email"); if (xnemail != null) { string smtp = xnemail["SMTP"].InnerText; int port = Int32.Parse(xnemail["Port"].InnerText); string address = xnemail["Address"].InnerText; string password = xnemail["Password"].InnerText; bool enableSsl = Boolean.Parse(xnemail["EnableSSL"].InnerText); msg.setupEmail(smtp, port, address, password, enableSsl); } pnlSchedule = new List <TimeSpan>(); XmlElement pnlScheduleNode = xn1["PnLReportSchedule"]; if (pnlScheduleNode != null) { XmlNodeList sub_nodes = pnlScheduleNode.GetElementsByTagName("Time"); foreach (XmlNode node in sub_nodes) { pnlSchedule.Add(TimeSpan.Parse(node.InnerText)); } } contractDetailsMap = new Dictionary <int, ContractDetails>(); currPnlIndices = new Dictionary <int, int>(); strategies = new Dictionary <int, Strategy>(); //dbTickMap = new Dictionary<int, int>(); orders = new HashSet <int>(); orderStatuses = new Dictionary <int, HashSet <string> >(); db = DBAccess.DBAccess.instance; tg = TickerGenerator.instance; om = OrderManager.instance; mm = MarketDataManager.instance; if (engine_type == "TWS") { clientSocket = new EClientSocket(this, Signal); } else { clientSocket = new BacktestEngine(this, db, xn1["BacktestConfig"]); } om.setupSocket(clientSocket); mm.setupSocket(clientSocket); }