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()); }