Ejemplo n.º 1
0
        public override bool OnInit()
        {
            CFATLogger.output_proc("connecting to pipe : " + m_sPipServerName);
            //MT4 init
            if (!m_mt4ApiDLL.connectToMT4(m_sPipServerName))
            {
                CFATLogger.output_proc(string.Format("site = {0} : Cannot connect to PIP, pipe name = {1}, please check MT4 and parameters of EA!",
                                                     m_sSiteName, m_sPipServerName));
                return(false);
            }
            CFATLogger.output_proc("Connect to MT4 pipe OK! site = " + m_sSiteName);
            //FIX init
            string sConfigFile;

            sConfigFile = Path.Combine(Application.StartupPath, "Config\\Fix", m_sFixConfig_trade);
            CFATLogger.output_proc("loading : " + sConfigFile);
            m_fixApi_trade = new CFixAPI(sConfigFile);

            if (!m_fixApi_trade.fixLogin())
            {
                CFATLogger.output_proc(string.Format("Connect to fix trade server is fail! : site name = {0}", m_sSiteName));
                return(false);
            }

            sConfigFile = Path.Combine(Application.StartupPath, "Config\\Fix", m_sFixConfig_data);
            CFATLogger.output_proc("loading : " + sConfigFile);

            m_fixApi_data = new CFixAPI(sConfigFile);

            if (!m_fixApi_data.fixLogin())
            {
                CFATLogger.output_proc(string.Format("Connect to fix data server is fail! : site name = {0}", m_sSiteName));
                return(false);
            }
            CFATLogger.output_proc("Connect to Fix OK!");
            //subscrib rates
            TRateRange rateRange;

            foreach (KeyValuePair <string, string> entry in m_sSymbols_fix)
            {
                rateRange = m_rateRange_fix[entry.Key];
                m_fixApi_data.startSubscribe(entry.Value, entry.Key, rateRange.dMin, rateRange.dMax);

                Thread.Sleep(500);
            }



            return(base.OnInit());
        }