Ejemplo n.º 1
0
 public Fixed(int strategy_id, string config, EClientInterface socket)
     : base(strategy_id, config, socket)
 {
     _calibrationFailed = false;
     _initialized       = false;
     fromConfig(config);
 }
Ejemplo n.º 2
0
        public void setupSocket(EClientInterface socket)
        {
            lock (_lock)
            {
                _socket     = socket;
                _isBacktest = _socket.GetType() == typeof(BacktestEngine);
            }
            Thread t = new Thread(new ThreadStart(runOrderAgent));

            t.CurrentCulture   = CultureInfo.InvariantCulture;
            t.CurrentUICulture = CultureInfo.InvariantCulture;
            t.Start();
        }
Ejemplo n.º 3
0
 public BlockOrder(
     int stg_id,
     EClientInterface socket,
     TimeZoneInfo zone,
     ContractDetails details,
     XmlNode config,
     int ref_con_id = 0
     )
 {
     _stg_id        = stg_id;
     _socket        = socket;
     _con           = details.Summary;
     _ref_con_id    = ref_con_id;
     _minTick       = details.MinTick;
     _unitSize      = int.Parse(config["UnitSize"].InnerText);
     _maxOrderSize  = int.Parse(config["MaxBlockSize"].InnerText);
     _maxNOrders    = int.Parse(config["MaxNumberOfOrders"].InnerText);
     _maxBidAskUnit = config["MaxBidAskUnit"] == null ? 3 : int.Parse(config["MaxBidAskUnit"].InnerText);
     _zone          = zone;
     //_mktOrdersOnly = mktOrdersOnly;
     _entryTemplate  = getOrderTemplate(config, "EntryOrderTemplate");
     _profitTemplate = getOrderTemplate(config, "ProfitOrderTemplate");
     _stopTemplate   = getOrderTemplate(config, "StopOrderTemplate");
     _expiryTemplate = getOrderTemplate(config, "ExpiryOrderTemplate");
     _ids            = new List <int>();
     _tickers        = new List <int>();
     _quotes         = new Dictionary <int, double>();
     _filledQtys     = new Dictionary <int, double>();
     _openOrders     = new Dictionary <int, Order>();
     _quotes.Add(1, 0);  //bid
     _quotes.Add(2, 0);  //ask
     _quotes.Add(4, 0);  //last
     _quotes.Add(6, 0);  //high
     _quotes.Add(7, 0);  //low
     _quotes.Add(9, 0);  //close
     _placeOrderEvent = _tm.createEvent();
     _mktDataEvents   = new List <AutoResetEvent>();
     for (int i = 0; i <= 14; ++i)
     {
         _mktDataEvents.Add(null);
     }
     _mktDataEvents[1] = new AutoResetEvent(false);
     _mktDataEvents[2] = new AutoResetEvent(false);
     _mktDataEvents[4] = new AutoResetEvent(false);
 }
Ejemplo n.º 4
0
 public void setupSocket(EClientInterface socket)
 {
     lock (_lock)
         _socket = socket;
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 public ExecutionTest(int strategy_id, string config, EClientInterface socket)
     : base(strategy_id, config, socket)
 {
     _initialized = false;
     fromConfig(config);
 }