public void Process(DualPosition dualPosition,OrderBook_BothSide_Size bothSideOrderBook) { // 防自成交 if (bothSideOrderBook.Buy.Count > 0) { int level = bothSideOrderBook.Buy.grid.Keys[0]; foreach (var a in dualPosition.Sell.grid) { if (level >= a.Key) { dualPosition.Sell.Cancel(a.Value); } } } // 上一步有计数,如果没有运行,进行下一步,看挂单数是否对上 if (bothSideOrderBook.Buy.Count > 0) { foreach(var b in bothSideOrderBook.Buy.grid) { int level = b.Key; double size = b.Value; HashSet<Order> set = dualPosition.Sell.grid[level]; } } }
/// <summary> /// 转换 /// </summary> /// <param name="brokerAccount"></param> /// <param name="dualPosition"></param> public static void Transform(BrokerAccount brokerAccount,DualPosition dualPosition) { if (brokerAccount == null||dualPosition == null) return; int LongQtyToday = 0; int LongQtyYd = 0; int ShortQtyToday = 0; int ShortQtyYd = 0; Tarnsform(brokerAccount, dualPosition.Symbol, out LongQtyToday, out LongQtyYd, out ShortQtyToday,out ShortQtyYd); dualPosition.Long.QtyToday = LongQtyToday; dualPosition.Long.Qty = LongQtyToday + LongQtyYd; dualPosition.Short.QtyToday = ShortQtyToday; dualPosition.Short.Qty = ShortQtyToday + ShortQtyYd; }
public static void Transform(BrokerAccount brokerAccount, DualPosition dualPosition) { if (brokerAccount == null || dualPosition == null) { return; } int LongQtyToday = 0; int LongQtyYd = 0; int ShortQtyToday = 0; int ShortQtyYd = 0; Tarnsform(brokerAccount, dualPosition.Symbol, out LongQtyToday, out LongQtyYd, out ShortQtyToday, out ShortQtyYd); dualPosition.Long.QtyToday = LongQtyToday; dualPosition.Long.Qty = LongQtyToday + LongQtyYd; dualPosition.Short.QtyToday = ShortQtyToday; dualPosition.Short.Qty = ShortQtyToday + ShortQtyYd; }
public override void OnStrategyStart() { WorkingTime = WorkingTime_Commodity; dualPosition = new DualPosition(); // 测试代码 TargetPosition = 3; dualPosition.Long.Qty = 0; dualPosition.Short.Qty = 0; }
public override void OnStrategyStart() { TimeHelper = new TimeHelper(EnumTradingTime.COMMODITY); PriceHelper = new PriceHelper(Instrument.TickSize); DualPosition = new DualPosition(); DualPosition.Sell.PriceHelper = PriceHelper; DualPosition.Buy.PriceHelper = PriceHelper; // 测试代码 //TargetPosition = 3; DualPosition.Long.Qty = 0; DualPosition.Short.Qty = 0; }
public override void OnStrategyStart() { timeHelper = new TimeHelper(EnumTradingTime.COMMODITY); priceHelper = new PriceHelper(Instrument.TickSize); dualPosition = new DualPosition(); // 测试代码 TargetPosition = 3; dualPosition.Long.Qty = 0; dualPosition.Short.Qty = 0; }
public override void OnStrategyStart() { TimeHelper = new TimeHelper(Instrument.Symbol); PriceHelper = new PriceHelper(Instrument.TickSize); TextParameter = new TextCommon() { OpenClose = EnumOpenClose.OPEN }; CloseTodayHelper = new CloseTodayHelper(EnumExchangeID.SHFE); DualPosition = new DualPosition(Instrument.Symbol); DualPosition.Sell.PriceHelper = PriceHelper; DualPosition.Buy.PriceHelper = PriceHelper; DualPosition.CloseTodayHelper = CloseTodayHelper; TargetPosition = 0; DualPosition.Long.Qty = 0; DualPosition.Long.QtyToday = 0; DualPosition.Short.Qty = 0; DualPosition.Short.QtyToday = 0; }