Exemplo n.º 1
0
        public void Init()
        {
            try
            {
                List<double> callStrikeList = OptionUtil.GetSortedStrikeList(CallPutFlag.Call);
                foreach (double strike in callStrikeList)
                {
                    CallPutFlag cp = CallPutFlag.Call;
                    OptionTribe ot = ElwOptionUtil.GetOptionTribe(strike, cp);

                    FoxRawDataEachCollector eachController = new FoxRawDataEachCollector(ot.KOI.Code, _strategy.GetAgent().GetPeriod());
                    _eachDataControllers.Add(ot.KOI.Code, eachController);
                }

                List<double> putStrikeList = OptionUtil.GetSortedStrikeList(CallPutFlag.Put);
                foreach (double strike in putStrikeList)
                {
                    CallPutFlag cp = CallPutFlag.Put;
                    OptionTribe ot = ElwOptionUtil.GetOptionTribe(strike, cp);

                    FoxRawDataEachCollector eachController = new FoxRawDataEachCollector(ot.KOI.Code, _strategy.GetAgent().GetPeriod());
                    _eachDataControllers.Add(ot.KOI.Code, eachController);
                }

                // Future Code 등록
                {
                    String futureCode = KospiFutureUtil.Ins().KFI.Code;
                    FoxRawDataEachCollector futureController = new FoxRawDataEachCollector(futureCode, _strategy.GetAgent().GetPeriod());
                    _eachDataControllers.Add(futureCode, futureController);
                }

                InitObservationPeriodMinutes();
                RegisterObservationPeriodMinutes();

                InitVelocityObservationPeriodMilliSecs();
                RegisterObservationPeriodMilliSecs();
            }
            catch (System.Exception ex)
            {
                logger.Error(ex.ToString());
                Util.KillWithNotice(ex.ToString());
            }
        }
        void SaveBeforeData_Raw(FoxRawDataEachCollector ec, ref ArrayList queries)
        {
            for (int i = 15; i >= 1; --i)
            {
                DateTime insertedTime = _insertedTime;
                int groupID = this._slide.GroupID;
                String code = ec.Code;
                int timeOffset = (-1) * i;

                int negativeMilliSec = (int)CommonConst._1_000 * timeOffset;
                FoxPriceDatum datum = ec.PriceData.GetDatumViaOffsetMilliSec(negativeMilliSec);

                if (datum == null)
                {
                    continue;
                }

                double curPrice = datum.Price;

                FoxBeforeCapturePriceTuple beforeTuple = new FoxBeforeCapturePriceTuple();
                beforeTuple.Code = code;
                beforeTuple.GroupID = groupID;
                beforeTuple.TimeOffset = timeOffset;
                beforeTuple.CurPrice = curPrice;

                _slide.AddBeforeCaptureTuple(beforeTuple);

                String query = GetBeforePriceQuery(insertedTime, groupID, code, timeOffset, curPrice);
                queries.Add(query);
            }
        }