Exemple #1
0
        /// <summary>
        /// 释放对象
        /// </summary>
        public void FreeObject()
        {
            try
            {
                if (thread != null)
                {
                    thread.Abort();
                    thread = null;
                }

                if (manageMarket != null)
                {
                    manageMarket.ForFreeConnectMarket();
                    manageMarket = null;
                }

                if (manageTrade != null)
                {
                    //manageTrade.ForLogout(password, "");
                    manageTrade.ForFreeClient();
                    manageTrade = null;
                }
            }
            catch (Exception ex)
            {
                PrintLine("释放连接异常:" + ex.Message);
                JHLog.forTradeLog("释放连接异常:" + ex.ToString());
            }
        }
Exemple #2
0
        public static void StrategyThread(Object _obj)
        {
            Strategy stag = (Strategy)_obj;

            if (stag.printMsg != null)
            {
                stag.printMsg.Print("启动监控线程 成功!");
            }

            Thread.Sleep(3000);

            for (; ;)
            {
                try
                {
                    lock (stag)
                    {
                        stag.OnTimer();
                    }
                    Thread.Sleep(2);
                }
                catch (JHTradeException ex)
                {
                    JHLog.forTradeLog(ex.ToString());
                    if (stag.printMsg != null)
                    {
                        stag.printMsg.Print("监控线程执行异常!message:" + ex.Message);
                        stag.printMsg.Print("重新启动监控线程 . . .");
                    }
                    stag.thread = new Thread(new ParameterizedThreadStart(StrategyThread));
                    stag.thread.Start(stag);
                    break;
                }catch (JHMarketException JM)
                {
                    JHLog.forTradeLog(JM.ToString());
                    if (stag.printMsg != null)
                    {
                        stag.printMsg.Print("监控线程执行异常!message:" + JM.Message);
                        stag.printMsg.Print("重新启动监控线程 . . .");
                    }
                    stag.thread = new Thread(new ParameterizedThreadStart(StrategyThread));
                    stag.thread.Start(stag);
                    break;
                }
                catch (Exception ex)
                {
                    JHLog.forTradeLog(ex.ToString());
                    stag.PrintLine("异常停止!" + ex.Message);
                    break;
                }
            }
        }
Exemple #3
0
 public void OnExceptionMessage(EnumStateFlag sf, string _exMsg)
 {
     //写入日志
     if (sf == EnumStateFlag.行情请求 || sf == EnumStateFlag.行情回报)
     {
         JHLog.forMarketLog(_exMsg);
     }
     else if (sf == EnumStateFlag.交易请求 || sf == EnumStateFlag.交易回报)
     {
         JHLog.forTradeLog(_exMsg);
     }
     //打印到控制台
     if (printMsg != null)
     {
         printMsg.Print(_exMsg);
     }
 }
Exemple #4
0
        public void OnJHTradeForLogin(Trade_Head msgHead)
        {
            if (msgHead.OperTime == "")
            {
                if (stateNotify != null)
                {
                    stateNotify.OnNotify(this, NotifyCode.TRADE_TIME_ERROR);
                }
                return;
            }
            string msg = "";
            bool   brt = false;

            if (int.Parse(msgHead.ReturnCode) == 0)
            {
                msg = "登陆交易服务器成功! code:" + msgHead.ReturnCode + ",desc:" + msgHead.ReturnDesc;
            }
            else
            {
                brt = true;
                msg = "登陆交易服务器异常! code:" + msgHead.ReturnCode + ",desc:" + msgHead.ReturnDesc;
                JHLog.forTradeLog(msg);
            }
            PrintLine(msg);
            if (brt)
            {
                return;
            }

            DateTime servTime;

            //计算时间差
            servTime = Convert.ToDateTime(msgHead.OperTime);
            //保存服务器推送时间
            lastTradeHeartTime = GetTimestamp(servTime);
            //保持本地与服务器时间差
            time_trade_dif = lastTradeHeartTime - GetTimestamp();
            //通知准备工作已经完成
            OnInitInstance();
        }
Exemple #5
0
 /// <summary>
 /// 获取本机MAC地址
 /// </summary>
 /// <returns>本机MAC地址</returns>
 public static string GetMacAddress()
 {
     try
     {
         string          mac = "";
         ManagementClass mc;
         mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
         ManagementObjectCollection moc = mc.GetInstances();
         foreach (ManagementObject mo in moc)
         {
             if (mo["IPEnabled"].ToString() == "True")
             {
                 mac = mo["MacAddress"].ToString();
             }
         }
         return(mac);
     }
     catch
     {
         JHLog.forTradeLog("获取本机MAC失败!");
         return("");
     }
 }