Beispiel #1
0
        /// <summary>
        /// 收到任意回报时调用
        /// </summary>
        /// <param name="msgHead"></param>
        public void OnJHTradeHead(Trade_Head msgHead)
        {
            lastTradeHeartTime = GetTimestamp() + time_trade_dif;
            trade_Is_Error     = false;
//            DateTime servTime;
//            servTime = Convert.ToDateTime(msgHead.OperTime);
//            lastTradeHeartTime = GetTimestamp(servTime);
        }
Beispiel #2
0
 //报单应答
 public override void OnJHTradeOrder(Trade_Head msgHead, Orderf pOrder)
 {
     if (msgHead != null && pOrder != null && msgHead.ReturnCode == "201")
     {
         string strt    = DateTime.Now.ToString();
         string tradeno = msgHead.TradeNo;
         listSponce.Add("回报时间:" + strt + " 流水号:" + tradeno + "  ,价格:" + pOrder.order_price + " ,数量:" + pOrder.order_qtt);
     }
 }
Beispiel #3
0
 /// <summary>
 /// 交易接口心跳应答
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="strTime"></param>
 public void OnJHTradeHeartMsg(Trade_Head msgHead, string strTime)
 {
     if (strTime == "")
     {
         return;
     }
     trade_Is_Error     = false;
     lastTradeHeartTime = int.Parse(strTime);
 }
Beispiel #4
0
 //撤单应答
 public override void OnJHTradeCancelOrder(Trade_Head msgHead, Cancel_Order pCancel)
 {
     if (pCancel.ret_cancel_status == "0")
     {
         PrintLine("995@撤单成功!合同ID:" + pCancel.contract_id + ",流水号:" + msgHead.TradeNo);
     }
     else
     {
         PrintLine("995@撤单失败!合同ID:" + pCancel.contract_id + ",流水号:" + msgHead.TradeNo);
     }
 }
Beispiel #5
0
 /// <summary>
 /// 会话异常
 /// </summary>
 /// <param name="msgHead">msgHead.return_code:
 /// 8172	由于长时间没有操作,自动中断连接,请重新登录。
 /// 8173	连接超时,请重新登录。
 /// 8174	该帐号重复登录被踢出。
 /// 8175	后台管理强制踢出。
 /// 8176	客户端帐户出现异常。
 /// </param>
 public void OnJHTradeSessionFail(Trade_Head msgHead)
 {
     session_Is_Error = true;
     IsTradeNo        = false;
     if (printMsg != null)
     {
         printMsg.Print("交易接口会话异常! Code:" + msgHead.ReturnCode + ", Message:" + msgHead.ReturnDesc);
     }
     if (stateNotify != null)
     {
         stateNotify.OnNotify(this, NotifyCode.TRADE_SESSION_EXCEPTION);
     }
 }
Beispiel #6
0
 public override void OnLogout(Trade_Head msgHead)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #7
0
 public override void OnSubsfList(Trade_Head msgHead, List <Subsf_List> pSubsf_List)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeSubsfList(msgHead, pSubsf_List);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #8
0
 public override void OnCancelOrder(Trade_Head msgHead, Cancel_Order pCancel)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeCancelOrder(msgHead, pCancel);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #9
0
 public override void OnHeartMsg(Trade_Head msgHead, string strClientTime)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeHeartMsg(msgHead, strClientTime);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #10
0
 public override void OnTradeReturn(Trade_Head msgHead, List <Trade_Return> pTrade_Return_List)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeTradeReturn(msgHead, pTrade_Return_List);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #11
0
        public void OnJHTradeForValSign(Trade_Head msgHead)
        {
            if (printMsg != null)
            {
                printMsg.Print("验证特征码成功!正在进行登陆验证. . .");
            }
            //特征码验证成功后进行登陆
            bool rlogin = manageTrade.ForJHTradeLogin(username, password, JHUtil.GetMacAddress(), JHUtil.GetNaviteIP(), "login");

            if (rlogin == false)
            {
                manageTrade.ForFreeClient();
                manageTrade = null;
            }
        }
Beispiel #12
0
 public override void OnCurrRate(Trade_Head msgHead, List <Curr_Rate> pCurr_Rate_List)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeCurrRate(msgHead, pCurr_Rate_List);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #13
0
 public override void OnFundInOutList(Trade_Head msgHead, List <Fund_Inout> pFund_Inout_List)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeFundInOutList(msgHead, pFund_Inout_List);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #14
0
 public override void OnMarketStatus(Trade_Head msgHead, Market_Status pMarketStatus)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeMarketStatus(msgHead, pMarketStatus);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
Beispiel #15
0
        /*******************错误信息应答*****************/

        public override void OnForAssoInfo(Trade_Head msgHead, Asso_Info pAssoInfo)
        {
            if (strategy == null)
            {
                return;
            }
            try
            {
                strategy.OnJHTradeHead(msgHead);
                strategy.OnJHTradeForAssoInfo(msgHead, pAssoInfo);
            }catch (Exception ex)
            {
                strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
            }
        }
Beispiel #16
0
 //合同
 public override void OnJHTradeContractList(Trade_Head msgHead, List <Contract_List> pContract_List)
 {
     if (pContract_List != null && msgHead.ListNum != 0)
     {
         foreach (Contract_List pcl in pContract_List)
         {
             if (pcl.contract_no == GetContractID())
             {
                 Cont_L      = pcl;
                 m_minPrice  = int.Parse(pcl.min_diff_price);
                 contract_id = pcl.contract_id;
             }
         }
     }
 }
Beispiel #17
0
        //持仓信息应答
        public override void OnJHTradeSubsfList(Trade_Head msgHead, List <Subsf_List> pSubsf_List)
        {
            if (msgHead.ListNum == 0)
            {
                return;
            }

            foreach (Subsf_List sl in pSubsf_List)
            {
                if (sl.contract_no == GetContractID())
                {
                    Position = int.Parse(sl.cnyable_qtt);
                    break;
                }
            }
        }
Beispiel #18
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();
        }
Beispiel #19
0
        //报单应答
        public override void OnJHTradeOrder(Trade_Head msgHead, Orderf pOrder)
        {
            if (msgHead != null && pOrder != null && msgHead.ReturnCode == "201")
            {
                //如果是大单报单 添加到大单队列。
                if (BIG_ORDER_F == msgHead.TradeNo)
                {
                    BigOrder big = new BigOrder();

                    big.tradeNo   = BIG_ORDER_F;
                    big.limitTime = DateTime.Now;
                    big.order_no  = pOrder.order_no;
                    big.order_id  = pOrder.order_id;
                    big.bigOrder  = pOrder;

                    listOrderNos.Add(big);
                    return;
                }

                //如果是必须成交的单子不处理
                if (MUST_TRADE_ON == msgHead.TradeNo)
                {
                    return;
                }

                //挂单
                if (int.Parse(msgHead.TradeNo) % 2 == 1)
                {
                    listOpens.Add(pOrder);
                }
                else
                {
                    listCloses.Add(pOrder);
                }
            }
        }
Beispiel #20
0
        public void PrintHead(Trade_Head msgHead, string _msg = "")
        {
            string msg = "code:" + msgHead.ReturnCode + ",desc:" + msgHead.ReturnDesc;

            PrintLine(_msg + ", " + msg);
        }
Beispiel #21
0
 /// <summary>
 /// 持仓汇总
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pSubsf_List"></param>
 virtual public void OnJHTradeSubsfList(Trade_Head msgHead, List <Subsf_List> pSubsf_List)
 {
 }
Beispiel #22
0
 /// <summary>
 /// 仓单查询(教汇没有仓单所以此函数无效)
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pReceipts_List"></param>
 virtual public void OnJHTradeReceiptsList(Trade_Head msgHead, List <Receipts_List> pReceipts_List)
 {
 }
Beispiel #23
0
 /// <summary>
 /// 委托查询
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pOrderf_List"></param>
 virtual public void OnJHTradeOrderfList(Trade_Head msgHead, List <Orderf> pOrderf_List)
 {
 }
Beispiel #24
0
 /// <summary>
 /// 下单应答
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pOrder"></param>
 virtual public void OnJHTradeOrder(Trade_Head msgHead, Orderf pOrder)
 {
 }
Beispiel #25
0
 /// <summary>
 /// 撤单应答
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pCancel"></param>
 virtual public void OnJHTradeCancelOrder(Trade_Head msgHead, Cancel_Order pCancel)
 {
 }
Beispiel #26
0
        /*************************/

        /// <summary>
        /// 资金查询
        /// </summary>
        /// <param name="msgHead"></param>
        /// <param name="pFund"></param>
        virtual public void OnJHTradeFund(Trade_Head msgHead, Fund pFund)
        {
        }
Beispiel #27
0
 /// <summary>
 /// 出入金查询应答
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pFund_Inout_List"></param>
 virtual public void OnJHTradeFundInOutList(Trade_Head msgHead, List <Fund_Inout> pFund_Inout_List)
 {
 }
Beispiel #28
0
 /// <summary>
 /// 成交查询
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pDealf_List"></param>
 virtual public void OnJHTradeDealfList(Trade_Head msgHead, List <Dealf_List> pDealf_List)
 {
 }
Beispiel #29
0
 /// <summary>
 /// 交易公告
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pBulletin"></param>
 virtual public void OnJHTradeBulletin(Trade_Head msgHead, Bulletin pBulletin)
 {
 }
Beispiel #30
0
 /// <summary>
 /// 出入金申请应答
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pStruct"></param>
 virtual public void OnJHTradeFundInOutApply(Trade_Head msgHead, Fund_Inout pStruct)
 {
 }