Beispiel #1
0
        public bool publishTradeHistory()
        {
            if (m_nPublishedPosCnt == m_lstPosHistory_vt.Count)
            {
                return(false);
            }

            string sMsg = "";

            sMsg  = m_sSiteName;
            sMsg += "@";
            sMsg += m_sID;
            sMsg += "@";
            sMsg += CFATCommon.m_dtCurTime.ToString("yyyy/MM/dd HH:mm:ss.fff");
            sMsg += "@";

            TPosItem posItem = null;

            for (int i = m_nPublishedPosCnt; i < m_lstPosHistory_vt.Count; i++)
            {
                posItem = m_lstPosHistory_vt[i];
                sMsg   += posItem.getString();
                sMsg   += "@";
            }
            m_nPublishedPosCnt = m_lstPosHistory_vt.Count;

            CMQClient.publish_msg(sMsg, CFATCommon.MQ_TOPIC_POSHISTORY);
            return(true);
        }
Beispiel #2
0
        public void publish_min()
        {
            m_product_A.publish_min();
            m_product_B.publish_min();
            if (m_nType_price != EPRODUCT_TYPE_PRICE.A_B)
            {
                m_product_C.publish_min();
            }


            //Publish self data
            string    sTxt       = "";
            TRatesMin ratesMin   = m_rates.getMin(0);
            DateTime  dtTime_cur = ratesMin.m_dtTime;

            if (dtTime_cur != m_dtTime_published_min)
            {
                ratesMin = m_rates.getMin(1);
                sTxt     = string.Format("{0},{1},{2},{3},{4},{5},{6}", "CFD", m_sSymbolCFD, ratesMin.m_dtTime,
                                         ratesMin.dBid_open, ratesMin.dBid_high, ratesMin.dBid_low, ratesMin.dBid_close);
                CMQClient.publish_msg(sTxt, CFATCommon.MQ_TOPIC_PRICE_MIN);
                m_dtTime_published_min = dtTime_cur;
            }
            //-----------------------
        }
Beispiel #3
0
        public void publish_tick()
        {
            string sTxt = "";

            if (m_dBid != m_dBid_published_tick || m_dAsk != m_dAsk_published_tick)
            {
                sTxt = string.Format("{0},{1},{2},{3},{4}", getSiteName(), getSymbol(), getTickTime(), m_dBid, m_dAsk);
                CMQClient.publish_msg(sTxt, CFATCommon.MQ_TOPIC_PRICE_TICK);
                m_dBid_published_tick = m_dBid;
                m_dAsk_published_tick = m_dAsk;
            }
        }
Beispiel #4
0
        public virtual void publishVariables()
        {
            string sTxt = m_sLogicID;

            foreach (KeyValuePair <string, string> varItem in m_vars_publish)
            {
                sTxt += "@";
                sTxt += varItem.Key;
                sTxt += ",";
                sTxt += varItem.Value;
            }
            CMQClient.publish_msg(sTxt, CFATCommon.MQ_TOPIC_VARS);
        }
Beispiel #5
0
        public static void publishTradeHistory()
        {
            bool bPublished = false;

            foreach (KeyValuePair <string, CSite> entry in CSiteMng.g_allSites)
            {
                bPublished |= entry.Value.publishTradeHistory();
            }

            if (bPublished)
            {
                CMQClient.publish_msg("DONE", CFATCommon.MQ_TOPIC_POSHISTORY);
            }
        }
Beispiel #6
0
        public void publish_min()
        {
            string    sTxt       = "";
            TRatesMin ratesMin   = getMinRates(0);
            DateTime  dtTime_cur = ratesMin.m_dtTime;

            if (dtTime_cur != m_dtTime_published_min)
            {
                ratesMin = getMinRates(0);
                sTxt     = string.Format("{0},{1},{2},{3},{4},{5},{6}", getSiteName(), getSymbol(), ratesMin.m_dtTime,
                                         ratesMin.dBid_open, ratesMin.dBid_high, ratesMin.dBid_low, ratesMin.dBid_close);
                CMQClient.publish_msg(sTxt, CFATCommon.MQ_TOPIC_PRICE_MIN);
                m_dtTime_published_min = dtTime_cur;
            }
        }
Beispiel #7
0
        public CFATManager(ERUN_MODE nMode = ERUN_MODE.BACKTEST, string sMode = "")
        {
            m_configGeneral = new TGeneralInfo();
            CConfigMng.load_config_general(ref m_configGeneral);
            CMQClient.connectToMQ(m_configGeneral.sHost, m_configGeneral.sUser, m_configGeneral.sPwd);


            CFATLogger.output_proc(string.Format("######  Start Mode = {0} #######", sMode));
            CFATManager.m_nRunMode = nMode;
            m_lstLogics            = new List <CLogic>();

            m_configLogics    = new List <Dictionary <string, string> >();
            m_configSites     = new List <Dictionary <string, string> >();
            m_configWorkTimes = new List <TWorkTimeInterval>();
        }
Beispiel #8
0
        public void publishParams()
        {
            string sMsg  = m_sLogicID;
            string sName = "";

            for (int i = 0; i < m_params.getCount(); i++)
            {
                sName = m_params.getName(i);
                sMsg += "@";
                sMsg += sName;
                sMsg += ",";
                sMsg += m_params.getVal_string(sName);
            }
            //Add System name
            sMsg += "@";
            sMsg += "system_name,";
            sMsg += CFATManager.getSystemName();

            CMQClient.publish_msg(sMsg, CFATCommon.MQ_TOPIC_PARAM_C2V);
        }
Beispiel #9
0
        public virtual void publish_min()
        {
            //Publish self data
            string sTxt = "";

            DateTime dtTime_cur = CFATCommon.m_dtCurTime;

            if (dtTime_cur != m_dtTime_published_min)
            {
                foreach (KeyValuePair <string, double> indItem in m_indVals)
                {
                    if (m_indDisablePublish.Contains(indItem.Key))
                    {
                        continue;
                    }
                    sTxt = string.Format("{0},{1},{2},{3},{4},{5},{6}", "Indicators", indItem.Key, dtTime_cur,
                                         indItem.Value, indItem.Value, indItem.Value, indItem.Value);
                    CMQClient.publish_msg(sTxt, CFATCommon.MQ_TOPIC_PRICE_MIN);
                }
                m_dtTime_published_min = dtTime_cur;
            }
            //-----------------------
        }
Beispiel #10
0
        public void publish_tick()
        {
            m_product_A.publish_tick();
            m_product_B.publish_tick();
            if (m_nType_price != EPRODUCT_TYPE_PRICE.A_B)
            {
                m_product_C.publish_tick();
            }

            //Publish self data
            string    sTxt       = "";
            TRatesMin ratesMin   = m_rates.getMin(0);
            DateTime  dtTime_cur = ratesMin.m_dtTime;

            if (m_dBid != m_dBid_published_tick || m_dAsk != m_dAsk_published_tick)
            {
                sTxt = string.Format("{0},{1},{2},{3},{4}", "CFD", m_sSymbolCFD, ratesMin.m_dtTime, m_dBid, m_dAsk);
                CMQClient.publish_msg(sTxt, CFATCommon.MQ_TOPIC_PRICE_TICK);
                m_dBid_published_tick = m_dBid;
                m_dAsk_published_tick = m_dAsk;
            }
            //-----------------------
        }
Beispiel #11
0
 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
 {
     CMQClient.disConnect();
 }