Exemplo n.º 1
0
            public override OpenQuant.API.Trade FilterTrade(OpenQuant.API.Trade trade, string symbol)
            {
                _trades[symbol] = trade;

                // 在这之前可以做自己的过滤
                Trade t = trade;

                if (filter != null)
                {
                    t = filter.FilterTrade(trade, symbol);
                }
                if (t != null)
                {
                    EmitTrade(symbol, Clock.Now, t.Price, t.Size);
                }
                else
                {
                    return(null);
                }

                Trade t1, t2;

                if (_trades.TryGetValue("IF1306", out t1) &&
                    _trades.TryGetValue("IF1307", out t2))
                {
                    EmitTrade("IF1306-IF1307", Clock.Now, t1.Price - t2.Price, 0);
                    EmitTrade("IF1306-IF1307*2", Clock.Now, t1.Price - t2.Price * 2.0, 0);
                }

                // 注意,这个地方一定要返回null
                // 这实际上是让插件内部的Emit不调用
                return(null);
            }