Ejemplo n.º 1
0
 private void _t_OnRtnTrade(object sender, TradeArgs e)
 {
     // 11:03:27.6670057        _t_OnRtnOrderm1801 Buy     Open    2889    1       1089408166 | 1 | 000030001000           10043369    全部成交
     // 11:03:27.6689683        _t_OnRtnTrade: m1801 Buy     Open    2879    1
     Log($"OnRtnTrade 交易成交:{e.Value.InstrumentID}\t{e.Value.Direction}\t{e.Value.Offset}\t{e.Value.Price}\t{e.Value.Volume}");
     this.addExecutioins((TradeField)e.Value);
 }
Ejemplo n.º 2
0
 private void _t_OnRtnTrade(object sender, TradeArgs e)
 {
     Log($"trade:{e.Value.InstrumentID}\t{e.Value.Direction}\t{e.Value.Offset}\t{e.Value.Price}\t{e.Value.Volume}");
     foreach (var v in _t.DicPositionField.Values)
     {
         Log($"posi:{v.InstrumentID}\t{v.Direction}\t{v.Price}\t{v.Position}");
     }
 }
Ejemplo n.º 3
0
        private void TradeExt_OnRtnTrade(object sender, TradeArgs e)
        {
            OrderField of;

            if (!DicOrderField.TryGetValue(e.Value.OrderID, out of))
            {
                return;
            }
            if (!of.IsLocal)
            {
                return;
            }
        }
Ejemplo n.º 4
0
        private void OnTrade(object sender, TradeArgs e)
        {
            var t = (Trade)sender;

            this.Invoke(new Action(() =>
            {
                _bsTrade.Add(e.Value);

                var dirPosi = e.Value.Direction;
                if (e.Value.Offset != OffsetType.Open)
                {
                    dirPosi = dirPosi == DirectionType.Buy ? DirectionType.Sell : DirectionType.Buy;
                }
                var posi = _t.DicPositionField[e.Value.InstrumentID + "_" + dirPosi];

                if (_bsPosi.IndexOf(posi) < 0)                  //持仓0过滤
                {
                    _bsPosi.Add(posi);
                }
                if (posi.Position <= 0)                //条件:Position>0
                {
                    _bsPosi.Remove(posi);
                }

                //测试一下:filterBindingList只在增减时才会执行
                //if (_bsPosi.IndexOf(posi) < 0)
                //	_bsPosi.Add(posi);

                //var list = _bsPosi.DataSource as SortableBindingList<PositionField>;
                //var p = list.FirstOrDefault(n => n.InstrumentID == e.Value.InstrumentID && n.Direction == dirPosi);
                //if (p == null)
                //	_bsPosi.Add(_t.DicPositionField[e.Value.InstrumentID + "_" + dirPosi]);
                //else if (p.Position == 0)
                //	_bsPosi.Remove(p);
            }));
        }
Ejemplo n.º 5
0
 private void _t_OnRtnTrade(object sender, TradeArgs e)
 {
     Log($"{e.Value.InstrumentID}\t{e.Value.Direction}\t{e.Value.Offset}\t{e.Value.Price}\t{e.Value.Volume}");
 }