コード例 #1
0
        private void _t_OnRtnOrder(object sender, OrderArgs e)
        {
            Log($"order:{e.Value.InstrumentID}\t{e.Value.Direction}\t{e.Value.Offset}\t{e.Value.LimitPrice}\t{e.Value.Volume}");

            if (e.Value.IsLocal)
            {
                _t.ReqOrderAction(e.Value.OrderID);
            }
        }
コード例 #2
0
ファイル: TradeExt.cs プロジェクト: oyzhiquan/hf_at
        private void TradeExt_OnRtnOrder1(object sender, OrderArgs e)
        {
            if (!e.Value.IsLocal)
            {
                return;
            }

            ShowInfo($"报单,{e.Value.Custom:000000000000},{e.Value.InstrumentID,-8},{e.Value.Direction,4},{e.Value.Offset,6},{e.Value.LimitPrice,8},{e.Value.Volume,4},剩{e.Value.VolumeLeft,4},{e.Value.StatusMsg}");
        }
コード例 #3
0
ファイル: HFForm.cs プロジェクト: ssh352/hf_trade_terminal
 private void OnOrder(object sender, OrderArgs e)
 {
     this.Invoke(new Action(() =>
     {
         if (_bsOrder.IndexOf(e.Value) < 0)
         {
             _bsOrder.Add(e.Value);
         }
     }));
 }
コード例 #4
0
ファイル: TradeExt.cs プロジェクト: oyzhiquan/hf_at
        private void TradeExt_OnRtnOrder(object sender, OrderArgs e)
        {
            if (!e.Value.IsLocal)
            {
                return;
            }

            if (_floConfig.WaitSecondsAfterOrder == 0)
            {
                return;                                                    //0:不追单
            }
            new Thread((id) =>
            {
                Thread.Sleep(_floConfig.WaitSecondsAfterOrder * 1000);
                ReqOrderAction((string)id);                  //直接撤单,如果成功则继续,否则报错则不处理
            }).Start(e.Value.OrderID);
        }
コード例 #5
0
        private void _t_OnRtnOrder(object sender, OrderArgs e)
        {
            Log($"OnRtnOrder 挂单回报:{e.Value.InstrumentID}\t{e.Value.Direction}\t{e.Value.Offset}\t{e.Value.LimitPrice}\t{e.Value.Volume}\t{e.Value.OrderID}\t{e.Value.SysID}\t{e.Value.StatusMsg}");
            OrderField orderField = e.Value;

            if (e.Value.Status == OrderStatus.Filled)
            {
                this.placeReverseOrder(orderField);
            }
            this.updateAllOrders(orderField);

            IList <OrderField> openOrderEnumerable = this.getOpenOrders();

            this.fileAction.WriteOpenOrders(root_dir, openOrderEnumerable);


            //if (e.Value.IsLocal)
            //    _t.ReqOrderAction(e.Value.OrderID);
        }
コード例 #6
0
ファイル: TradeExt.cs プロジェクト: oyzhiquan/hf_at
        private void TradeExt_OnRtnCancel(object sender, OrderArgs e)
        {
            if (!e.Value.IsLocal)
            {
                return;
            }

            if (_q == null)
            {
                ShowInfo("请先赋值行情接口");
                return;
            }

            MarketData tick;

            if (!_q.DicTick.TryGetValue(e.Value.InstrumentID, out tick))
            {
                return;
            }
            var id    = e.Value.Custom + 1;
            var times = e.Value.Custom % 100;

            if (times >= _floConfig.FollowTimes)             //达到最大追单次数
            {
                var price = e.Value.Direction == DirectionType.Buy ? tick.UpperLimitPrice : tick.LowerLimitPrice;
                ShowInfo($"[{e.Value.Custom}]达到最大追单次数({_floConfig.FollowTimes},板价追单[custom:{id}][{e.Value.InstrumentID},{e.Value.Direction},{ e.Value.Offset},{ e.Value.Direction},{price},{ e.Value.VolumeLeft}])");
                ReqOrderInsert(e.Value.InstrumentID, e.Value.Direction, e.Value.Offset, price, e.Value.VolumeLeft, OrderType.Limit, id);
            }
            else
            {
                InstrumentField instField;
                if (!DicInstrumentField.TryGetValue(e.Value.InstrumentID, out instField))
                {
                    return;
                }

                var price = e.Value.Direction == DirectionType.Buy ? (tick.AskPrice + _floConfig.NotFirstAddticks * instField.PriceTick) : (tick.BidPrice - _floConfig.NotFirstAddticks * instField.PriceTick);
                ShowInfo($"[{e.Value.Custom}]第{times - 1}次追单[id:{id}][{e.Value.InstrumentID},{e.Value.Direction},{ e.Value.Offset},{ e.Value.Direction},{price},{ e.Value.VolumeLeft}]");
                ReqOrderInsert(e.Value.InstrumentID, e.Value.Direction, e.Value.Offset, price, e.Value.VolumeLeft, OrderType.Limit, id);
            }
        }
コード例 #7
0
ファイル: HFForm.cs プロジェクト: ssh352/hf_trade_terminal
 private void OnCancel(object sender, OrderArgs e)
 {
 }
コード例 #8
0
 private void _t_OnRtnCancel(object sender, OrderArgs e)
 {
     Log($"cancel:{e.Value.StatusMsg}\t{e.Value.InstrumentID}\t{e.Value.Direction}\t{e.Value.Offset}\t{e.Value.LimitPrice}\t{e.Value.Volume}\t{e.Value.StatusMsg}");
 }