public SweepController_KtbSkel(Position_KtbSkel targetPosition, Account futureAccount)
 {
     this.TargetPosition = targetPosition;
     this.UnsignedSpotContractedCount = 0;
     this.SpotDone = false;
     this.FuturePositionTakers = new List<PositionTakerController>();
     _futureAccount = futureAccount;
 }
        public Position_KtbSkel GetPosition()
        {
            if (IsDone())
            {
                String futureCode = this.TargetPosition.FutureCode;
                double futureAvgPrice = GetAvgFuturePrice();
                long tmpFutureCount = GetFutureMaxPossibleCount();
                LongShortCount tmpFutureLsc = new LongShortCount(this.TargetPosition.SignedFutureCount);
                LongShortCount futureLsc =
                    new LongShortCount(tmpFutureLsc.LongShort, Convert.ToUInt64(tmpFutureCount));
                long signedFutureCount = futureLsc.GetSignedCount();

                String spotCode = this.TargetPosition.SpotCode;
                double spotAvgPrice = this.TargetPosition.SpotAvgPriceTimeAdjust;
                LongShortCount tmpSpotLsc = new LongShortCount(this.TargetPosition.SignedSpotCount);
                LongShortCount spotLsc =
                    new LongShortCount(tmpSpotLsc.LongShort, Convert.ToUInt64(this.UnsignedSpotContractedCount));
                long signedSpotCount = spotLsc.GetSignedCount();

                DateTime tradingDate = CoreLib.DateUtil.GetTodayDateTime(0, 0, 0);

                Position_KtbSkel position = new Position_KtbSkel(
                    spotCode, signedSpotCount, spotAvgPrice,
                    futureCode, signedFutureCount, futureAvgPrice,
                    tradingDate, 0);

                return position;
            }
            else
            {
                String ex = "Invalid";
                logger.Error(ex.ToString());
                Util.KillWithNotice(ex.ToString());
            }
            return null;
        }
 public void SetRealPosition(Position_KtbSkel real)
 {
     _sweepController.SetRealPosition(real);
 }
        void SetTargetPosition(RawMarketData spotRmd, RawMarketData futureRmd)
        {
            DateTime tradingDate = CoreLib.DateUtil.GetTodayDateTime(0, 0, 0);

            if (_enterExitPolicy.GetInOutType() == InOutType.InType)
            {
                _targetPosition = new Position_KtbSkel(
                    spotRmd.Code, _unsignedNotional, spotRmd.AskPrice1,
                    futureRmd.Code, (-1) * _unsignedNotional, futureRmd.BidPrice1,
                    tradingDate, 0);
            }
            else
            {
                _targetPosition = new Position_KtbSkel(
                    spotRmd.Code, (-1) * _unsignedNotional, spotRmd.BidPrice1,
                    futureRmd.Code, _unsignedNotional, futureRmd.AskPrice1,
                    tradingDate, 0);
            }
        }
 public void SetRealPosition(Position_KtbSkel pos)
 {
     this.RealPosition = pos;
     this._bDone = true;
 }
 public ManualSweepController_KtbSkel(Position_KtbSkel targetPosition)
 {
     this.TargetPosition = targetPosition;
 }
Example #7
0
 public void ExecuteAfterSweeperDone(ProcessController_KtbSkel controller, Position_KtbSkel position)
 {
     // Out, 
     controller.SortedPositionStack.Erase(position);
 }