/// <summary> /// 持仓检查 /// </summary> private void CheckHold() { #region new 李健华 2010-06-08 //不处理缓存直接从数据库中获取处理 //VTTraders traders = VTTradersFactory.GetFutureTraders(); //if (!traders.IsInitializeSuccess) //{ // return; //} LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货持仓检查处理"); //获取所有期货持仓账号类型 List <BD_AccountTypeInfo> futureAccountTypes = AccountManager.Instance.GetAccoutTypeByACTID((int)Types.AccountAttributionType.FuturesCapital); if (Utils.IsNullOrEmpty(futureAccountTypes)) { return; } try { //有股指期货和商品期货,或者以后还有别的品种 foreach (var item in futureAccountTypes) { List <AccountPair> userAccountPair = VTTradersFactory.InitializeAccountPair(item); if (Utils.IsNullOrEmpty(userAccountPair)) { continue; } foreach (var accountPair in userAccountPair) { UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount); checker.ProcessHold(); } } //更新数据库中的每日检查日期 //StatusTableChecker.UpdateFutureDayCheckDate(tm); //tm.Commit(); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); //tm.Rollback(); LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:持仓处理失败!"); } #endregion #region old code update by李健华 2010-06-08 //VTTraders traders = VTTradersFactory.GetFutureTraders(); //if (!traders.IsInitializeSuccess) //{ // return; //} //LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货持仓检查处理"); //try //{ // foreach (var vtTrader in traders.TraderList) // { // foreach (var accountPair in vtTrader.AccountPairList) // { // UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount); // checker.ProcessHold(); // } // } // //更新数据库中的每日检查日期 // //StatusTableChecker.UpdateFutureDayCheckDate(tm); // //tm.Commit(); //} //catch (Exception ex) //{ // LogHelper.WriteError(ex.Message, ex); // //tm.Rollback(); // LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:持仓处理失败!"); //} #endregion }
/// <summary> /// 资金检查 /// </summary> private void CheckCapitalTable() { #region new 李健华 2010-06-08 //VTTraders traders = VTTradersFactory.GetFutureTraders(); //if (!traders.IsInitializeSuccess) // return; LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货资金检查处理"); //var tm = TransactionFactory.GetTransactionManager(); //tm.BeginTransaction(); ReckoningTransaction reckoningTransaction = new ReckoningTransaction(); Database database = DatabaseFactory.CreateDatabase(); DbConnection connection = database.CreateConnection(); try { connection.Open(); reckoningTransaction.Database = database; DbTransaction transaction = connection.BeginTransaction(); reckoningTransaction.Transaction = transaction; //获取所有期货持仓账号类型 List <BD_AccountTypeInfo> futureAccountTypes = AccountManager.Instance.GetAccoutTypeByACTID((int)Types.AccountAttributionType.FuturesCapital); if (Utils.IsNullOrEmpty(futureAccountTypes)) { return; } foreach (var item in futureAccountTypes) { List <AccountPair> userAccountPair = VTTradersFactory.InitializeAccountPair(item); if (Utils.IsNullOrEmpty(userAccountPair)) { continue; } foreach (var accountPair in userAccountPair) { UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount); checker.ProcessCapital(); } } //更新数据库中的每日检查日期 StatusTableChecker.UpdateFutureDayCheckDate(reckoningTransaction); reckoningTransaction.Transaction.Commit(); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); reckoningTransaction.Transaction.Rollback(); LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:资金处理失败!"); } finally { //这里为了安全起见,自行执行一次关闭数据连接 //if (reckoningTransaction != null && reckoningTransaction.Transaction != null) //{ // reckoningTransaction.Transaction.Dispose(); //} if (connection != null && connection.State != ConnectionState.Closed) { connection.Close(); } } LogHelper.WriteInfo("FutureDayChecker.Process结束每日开盘期货检查处理"); #endregion #region old code update by李健华 2010-06-08 //VTTraders traders = VTTradersFactory.GetFutureTraders(); //if (!traders.IsInitializeSuccess) // return; //LogHelper.WriteInfo("FutureDayChecker.Process开始每日开盘期货资金检查处理"); ////var tm = TransactionFactory.GetTransactionManager(); ////tm.BeginTransaction(); //ReckoningTransaction reckoningTransaction = new ReckoningTransaction(); //Database database = DatabaseFactory.CreateDatabase(); //DbConnection connection = database.CreateConnection(); //try //{ // connection.Open(); // reckoningTransaction.Database = database; // DbTransaction transaction = connection.BeginTransaction(); // reckoningTransaction.Transaction = transaction; // foreach (var vtTrader in traders.TraderList) // { // foreach (var accountPair in vtTrader.AccountPairList) // { // UserAccountChecker checker = new UserAccountChecker(accountPair.CapitalAccount, accountPair.HoldAccount); // checker.ProcessCapital(); // } // } // //更新数据库中的每日检查日期 // StatusTableChecker.UpdateFutureDayCheckDate(reckoningTransaction); // reckoningTransaction.Transaction.Commit(); //} //catch (Exception ex) //{ // LogHelper.WriteError(ex.Message, ex); // reckoningTransaction.Transaction.Rollback(); // LogHelper.WriteInfo("FutureDayChecker.Process每日开盘期货检查:资金处理失败!"); //} //finally //{ // //这里为了安全起见,自行执行一次关闭数据连接 // //if (reckoningTransaction != null && reckoningTransaction.Transaction != null) // //{ // // reckoningTransaction.Transaction.Dispose(); // //} // if (connection != null && connection.State != ConnectionState.Closed) // { // connection.Close(); // } //} //LogHelper.WriteInfo("FutureDayChecker.Process结束每日开盘期货检查处理"); #endregion }