示例#1
0
        void CancelOrderf()
        {
            int hour = DateTime.Now.Hour;
            int cal  = 5;

            if (hour <= 7)
            {
                cal = 3;
            }
            else if (hour > 12 && hour < 21)
            {
                cal = 4;
            }

            #region 撤除开仓单
            for (int i = 0; i < listOpens.Count; i++)
            {
                if (i % cal == 0)
                {
                    Orderf       of = listOpens[i];
                    Cancel_Order co = new Cancel_Order();
                    co.trade_mode  = "F";
                    co.order_no    = of.order_no;
                    co.order_id    = of.order_id;
                    co.contract_id = of.contract_no;

                    if (ForJHTradeCancelOrder(co, CANCEL_ORDER_OPEN))
                    {
                        PrintLine("995@请求撤除开仓单!合同ID:" + co.contract_id + ",流水号:" + CANCEL_ORDER_OPEN);
                    }
                    listOpens.RemoveAt(i);
                }
            }
            #endregion

            #region 撤除平仓单
            for (int i = 0; i < listCloses.Count; i++)
            {
                if (i % cal == 0)
                {
                    Orderf of = listCloses[i];

                    Cancel_Order co = new Cancel_Order();
                    co.trade_mode  = "F";
                    co.order_no    = of.order_no;
                    co.order_id    = of.order_id;
                    co.contract_id = of.contract_no;

                    if (ForJHTradeCancelOrder(co, CANCEL_ORDER_CLOSE))
                    {
                        PrintLine("995@请求撤除开仓单!合同ID:" + co.contract_id + ",流水号:" + CANCEL_ORDER_CLOSE);
                    }
                    listCloses.RemoveAt(i);
                }
            }
            #endregion
        }
示例#2
0
文件: testTrade.cs 项目: jutao023/Wes
 //报单应答
 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);
     }
 }
示例#3
0
 // 报单字段说明
 // order_local_id;//前端报单号,由API调用ForOderfRequest()后生成, 20位(时间+6位顺序号 yyyyMMddHHmmss######)
 // contract_id;//
 // buyorsell;//
 // offset_flag;//
 // trade_type;//
 // is_deposit;//
 // stop_price;//止损价格
 // order_price;//
 // order_qtt;//
 // order_ip;//
 // detail_seq;//指定仓平仓仓位明细号
 // remark;//点差 备注
 /// <summary>
 /// 下单
 /// </summary>
 /// <param name="pOrder">报单结构体</param>
 /// <param name="strTradeNo">交易流水号</param>
 /// <returns></returns>
 public bool ForJHTradeOrderfRequest(Orderf pOrder, string strTradeNo)
 {
     try
     {
         return(ForOderfRequest(pOrder, strTradeNo));
     }
     catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易请求, ex.ToString());
         return(false);
     }
 }
示例#4
0
 // 报单字段说明
 // order_local_id;//前端报单号,由API调用ForOderfRequest()后生成, 20位(时间+6位顺序号 yyyyMMddHHmmss######)
 // contract_id;//
 // buyorsell;//
 // offset_flag;//
 // trade_type;//
 // is_deposit;//
 // stop_price;//止损价格
 // order_price;//
 // order_qtt;//
 // order_ip;//
 // detail_seq;//指定仓平仓仓位明细号
 // remark;//点差 备注
 /// <summary>
 /// 下单
 /// </summary>
 /// <param name="pOrder">报单结构体</param>
 /// <param name="strTradeNo">交易流水号</param>
 /// <returns></returns>
 public bool ForJHTradeOrderfRequest(Orderf pOrder, string strTradeNo)
 {
     try
     {
         if (manageTrade != null && trade_login_ok)
         {
             return(manageTrade.ForJHTradeOrderfRequest(pOrder, strTradeNo));
         }
         return(false);
     }catch
     {
         return(false);
     }
 }
示例#5
0
 public override void OnOrder(Trade_Head msgHead, Orderf pOrder)
 {
     if (strategy == null)
     {
         return;
     }
     try
     {
         strategy.OnJHTradeHead(msgHead);
         strategy.OnJHTradeOrder(msgHead, pOrder);
     }catch (Exception ex)
     {
         strategy.OnExceptionMessage(EnumStateFlag.交易回报, ex.ToString());
     }
 }
示例#6
0
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="_contract_id">(*下单必填)合同ID</param>
        /// <param name="_buyorsell">(*下单必填)买卖方向(1 - 买入,2 - 卖出)</param>
        /// <param name="_offset_flag">(*下单必填)开平仓标记:1、开仓(新订);2、平今;3、平昨;4、平仓(先订先转);5、平仓(转今优先);6、指定仓平仓;</param>
        /// <param name="_trade_type">(*下单必填)申报类型 1、限价;2、市价;3、止损限价;4、止损市价;5、均价</param>
        /// <param name="_is_deposit">(*下单必填)担保方式 1定金;6仓单</param>
        /// <param name="_order_price">(*下单必填)申报价格</param>
        /// <param name="_order_qtt">(*下单必填)申报数量</param>
        /// <param name="_order_ip">(*下单必填)申报IP地址</param>
        /// <param name="_strTradeNo">交易流水号</param>
        /// <returns></returns>
        public bool ForJHTradeOrderfRequest(string _contract_id, string _buyorsell, string _offset_flag, string _trade_type,
                                            string _is_deposit, string _order_price, string _order_qtt, string _strTradeNo)
        {
            Orderf orf = new Orderf();

            orf.contract_id = _contract_id;
            orf.buyorsell   = _buyorsell;
            orf.offset_flag = _offset_flag;
            orf.trade_type  = _trade_type;
            orf.is_deposit  = _is_deposit;
            orf.order_price = _order_price;
            orf.order_qtt   = _order_qtt;
            orf.order_ip    = JHUtil.GetNaviteIP();
            try
            {
                return(ForOderfRequest(orf, _strTradeNo));
            }
            catch (Exception ex)
            {
                strategy.OnExceptionMessage(EnumStateFlag.交易请求, ex.ToString());
                return(false);
            }
        }
示例#7
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);
                }
            }
        }
示例#8
0
        /// <summary>
        /// 报单函数
        /// </summary>
        /// <param name="_buysell">(*下单必填)买卖方向(1 - 买入,2 - 卖出)</param>
        /// <param name="_openclose">(*下单必填)开平仓标记:1、开仓(新订);2、平今;3、平昨;4、平仓(先订先转);
        ///                                                5、平仓(转今优先);6、指定仓平仓;</param>
        /// <param name="_price">委托价格</param>
        /// <param name="_volume">委托数量</param>
        /// <param name="_tradeno">交易流水</param>
        /// <returns></returns>
        public bool ForLimitOrder(EnumBuySell _buysell, EnumOpenClose _openclose, int _price, int _volume, string _contractId, string _tradeno)
        {
            Orderf orf = new Orderf();

            orf.contract_no = contractID;
            orf.contract_id = _contractId;
            orf.is_deposit  = "1";
            orf.trade_type  = "1";
            //买卖方向
            if (_buysell == EnumBuySell.买入)
            {
                orf.buyorsell = "1";
            }
            else
            {
                orf.buyorsell = "2";
            }
            //开平标志
            if (_openclose == EnumOpenClose.开仓_新订)
            {
                orf.offset_flag = "1";
            }
            else if (_openclose == EnumOpenClose.平今)
            {
                orf.offset_flag = "2";
            }
            else if (_openclose == EnumOpenClose.平昨)
            {
                orf.offset_flag = "3";
            }
            else if (_openclose == EnumOpenClose.平仓_先订先转)
            {
                orf.offset_flag = "4";
            }
            else if (_openclose == EnumOpenClose.平仓_转今优先)
            {
                orf.offset_flag = "5";
            }
            else
            {
                orf.offset_flag = "6";
            }

            orf.order_price = _price + "";
            orf.order_qtt   = _volume + "";
            try
            {
                if (manageTrade != null)
                {
                    return(manageTrade.ForJHTradeOrderfRequest(orf, _tradeno));
                }
                else
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }
        }
示例#9
0
 /// <summary>
 /// 下单应答
 /// </summary>
 /// <param name="msgHead"></param>
 /// <param name="pOrder"></param>
 virtual public void OnJHTradeOrder(Trade_Head msgHead, Orderf pOrder)
 {
 }