public void RecordAEntryTrade(DateTime date, RecognitionState dailyLineState, RecognitionState minLineState, string symbol)
    {
        string dateString = date.ToString("yyyy-MM-dd");
        int    dailyShape = (int)dailyLineState.Shape;
        int    dailySlope = (int)dailyLineState.Slope;
        int    dailySpeed = (int)dailyLineState.Speed;

        int minShape = (int)minLineState.Shape;
        int minSlope = (int)minLineState.Slope;
        int minSpeed = (int)minLineState.Speed;

        QueryDocument query = new QueryDocument();

        query.Add(new  BsonElement("Date", dateString));
        query.Add(new  BsonElement("Symbol", symbol));
        this._collection.Remove(query);

        BsonElement[] eleArray = new BsonElement[9];
        eleArray[0] = new BsonElement("Date", dateString);
        eleArray[1] = new BsonElement("DailyShape", dailyShape);
        eleArray[2] = new BsonElement("DailySlope", dailySlope);
        eleArray[3] = new BsonElement("DailySpeed", dailySpeed);
        eleArray[4] = new BsonElement("MinShape", minShape);
        eleArray[5] = new BsonElement("MinSlope", minSlope);
        eleArray[6] = new BsonElement("MinSpeed", minSpeed);
        eleArray[7] = new BsonElement("Symbol", symbol);
        eleArray[8] = new BsonElement("Reward", 0.0);
        BsonDocument insert = new BsonDocument(eleArray);

        this._collection.Insert(insert);
    }
        public void Loop(LoopObjects loopObjects)
        {
            PXCMFaceData.Face face     = loopObjects.Get <PXCMFaceData.Face>();
            PXCMFaceData      faceData = loopObjects.Get <PXCMFaceData>();

            var rdata  = face.QueryRecognition();
            var userId = rdata.QueryUserID();

            switch (_recognitionState)
            {
            case RecognitionState.Idle:
                break;

            case RecognitionState.Requested:
                rdata.RegisterUser();
                _recognitionState = RecognitionState.Working;
                break;

            case RecognitionState.Working:
                if (userId > 0)
                {
                    _recognitionState = RecognitionState.Done;
                }
                break;

            case RecognitionState.Done:
                SaveDatabase(faceData);
                _recognitionState = RecognitionState.Idle;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            _camera.Face.UserId = userId;
        }
Esempio n. 3
0
        private void RecognizeFace(PXCMFaceData faceData, PXCMFaceData.Face face) {
            var rdata = face.QueryRecognition();
            var userId = rdata.QueryUserID();

            switch (_recognitionState) {
                case RecognitionState.Idle:
                    break;
                case RecognitionState.Requested:
                    rdata.RegisterUser();
                    _recognitionState = RecognitionState.Working;
                    break;
                case RecognitionState.Working:
                    if (userId > 0) {
                        _recognitionState = RecognitionState.Done;
                    }
                    break;
                case RecognitionState.Done:
                    SaveDatabase(faceData);
                    _recognitionState = RecognitionState.Idle;
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
            //_camera.Face.UserId = userId;
        }
Esempio n. 4
0
        private void RecognizeFace(PXCMFaceData faceData, PXCMFaceData.Face face)
        {
            var rdata  = face.QueryRecognition();
            var userId = rdata.QueryUserID();

            switch (_recognitionState)
            {
            case RecognitionState.Idle:
                break;

            case RecognitionState.Requested:
                rdata.RegisterUser();
                _recognitionState = RecognitionState.Working;
                break;

            case RecognitionState.Working:
                if (userId > 0)
                {
                    _recognitionState = RecognitionState.Done;
                }
                break;

            case RecognitionState.Done:
                SaveDatabase(faceData);
                _recognitionState = RecognitionState.Idle;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            Face.UserId = userId;
        }
Esempio n. 5
0
        public override void OnRecognitionStateChanged(object sender, RecognitionState state)
        {
            base.OnRecognitionStateChanged(sender, state);
            switch (state)
            {
            case RecognitionState.PAUSED: {
                if (currentState == RecognitionState.ACTIVE)
                {
                    DefinitionParser.instance.hotkeyParser.SetKeysActiveState(false);
                    Console.WriteLine("Pausing Recognition");
                }
                else
                {
                    Console.WriteLine("Recognition not running!");
                    return;
                }
                break;
            }

            case RecognitionState.STOPPED: {
                if (currentState == RecognitionState.PAUSED)
                {
                    Program.mapper.FreeCustomHotkeys();
                }
                break;
            }
            }
            currentState = state;
        }
    public bool RecordAEntryTrade(RecognitionState dailyLineState, RecognitionState minLineState, string symbol)
    {
        int         a             = (int)dailyLineState.Shape;
        int         b             = (int)dailyLineState.Speed;
        int         c             = (int)minLineState.Shape;
        int         d             = (int)minLineState.Speed;
        TradeRecord currentRecord = this.tradeRecords[a, b, c, d];

        if (currentRecord.Symbols.Contains(symbol))
        {
            return(false);
        }
        currentRecord.Symbols.Add(symbol);
        currentRecord.TradeTimes++;
        return(true);
    }
        /// <summary>
        /// Handler for changing recognition state,
        /// </summary>
        public virtual void OnRecognitionStateChanged(object sender, RecognitionState state)
        {
            switch (state)
            {
            case RecognitionState.INACTIVE: {
                if (Program.debug)
                {
                    Console.WriteLine("Currently inactive");
                }
                StopRecognition(true);
                break;
            }

            case RecognitionState.ACTIVE: {
                if (Program.debug)
                {
                    Console.WriteLine("Currently active");
                }
                BeginRecognition(true);
                break;
            }

            case RecognitionState.PAUSED: {
                if (Program.debug)
                {
                    Console.WriteLine("Currently paused");
                }
                break;
            }

            case RecognitionState.STOPPED: {
                if (Program.debug)
                {
                    Console.WriteLine("Currently stoped");
                }
                break;
            }

            case RecognitionState.SWITCHING: {
                if (Program.debug)
                {
                    Console.WriteLine("Currenly switching");
                }
                break;
            }
            }
        }
Esempio n. 8
0
        private int GetGameExpiration(RecognitionState recognitionState)
        {
            switch (recognitionState)
            {
            case RecognitionState.Recognized:
                return(_userSettingsProvider.RecognizedGameExpiration);

            case RecognitionState.PartiallyRecognized:
                return(_userSettingsProvider.PartiallyRecognizedGameExpiration);

            case RecognitionState.NotRecognized:
                return(_userSettingsProvider.UnrecognizedGameExpiration);

            default:
                throw new NotSupportedException("Invalid recognition state value: " + recognitionState);
            }
        }
 public void Do(BlockingCollection<Frame> frameBuffer, Action<IEnumerable<Result>> fireNewMotions, CancellationToken token)
 {
     var data = new Dictionary<JointType, InputVector>();
     foreach (var frame in frameBuffer.GetConsumingEnumerable())
     {
         if (token.IsCancellationRequested)
         {
             return;
         }
         var hands = frame.Hands;
         if (hands.Count == 0)
         {
             _state = RecognitionState.Start;
             _startFrame = null;
             continue;
         }
         CheckSingleHandGestures(frame, fireNewMotions);
         var leftHand = frame.Hands.Find(h => h.IsLeft);
         var rightHand = frame.Hands.Find(h => h.IsRight);
         if (!BothHandsInFrame(leftHand, rightHand))
         {
             _state = RecognitionState.Start;
             _startFrame = null;
             continue;
         }
         if (_state == RecognitionState.Start && IsStartPose(leftHand, rightHand))
         {
             _startFrame = frame;
             _state = RecognitionState.StartDetected;
             continue;
         }
         if(_state == RecognitionState.StartDetected && CheckTwoHandGestures(leftHand, rightHand, fireNewMotions))
         {
             _startFrame = frame;
             _state = RecognitionState.Start;
         }
     }
 }
Esempio n. 10
0
    public RecognitionState GetMinLineState(Bar[] gmMinBars)
    {
        RecognitionState ret = new RecognitionState();
        int n = gmMinBars.Length;

        if (n > 0)
        {
            double[] inputs    = new double[n];
            double[] outputs   = new double[n];
            double[] avgPrices = new double[n];
            for (int i = 0; i < n; i++)
            {
                avgPrices[i] = ((GMBar)gmMinBars[i]).Amount / gmMinBars[i].Volume;
            }
            double basePrice = avgPrices[0];
            for (int i = 0; i < n; i++)
            {
                inputs[i]  = i;
                outputs[i] = (avgPrices[i] / basePrice - 1) * 100;
            }
            ret = this.patternRecognition.Recognition(inputs, outputs);
        }
        return(ret);
    }
        public void Update(SimpleGesture gesture)
        {
            if (gesture != SimpleGesture.None)
            {
                double closeness;

                /* check for a progress in the previous states */
                for (int i = 0; i < CurrentStates.Count; i++)
                {
                    var state = CurrentStates[i];

                    closeness = SimpleGestureClosenessEvaluator.Compare(Descriptor[state.CurrentState], gesture);

                    if (closeness > 0)
                    {
                        /* next state */

                        if (closeness == 1)
                        {
                            /* full transition */
                            state.CurrentState++;
                            state.CurrentScore += closeness;
                        }
                        else
                        {
                            /* full transition + another instance staying in the same state */
                            state.CurrentState++;
                            state.CurrentScore += closeness;

                            CurrentStates.Insert(i, new RecognitionState() { CurrentScore = state.CurrentScore, CurrentState = state.CurrentState - 1 });

                            /* do not process it now */
                            i++;
                        }
                    }
                    else
                    {
                        /* not recognized */
                        CurrentStates.RemoveAt(i);
                        i--;
                    }
                }

                /* compare for a new entry in the state machine */
                closeness = SimpleGestureClosenessEvaluator.Compare(Descriptor[0], gesture);
                if (closeness > 0)
                {
                    var newState = new RecognitionState() { CurrentState = 1, CurrentScore = closeness };
                    CurrentStates.Add(newState);
                }

                /* check for validation */
                Valid = false;

                for (int i = 0; i < CurrentStates.Count; i++)
                {
                    var state = CurrentStates[i];

                    if (state.CurrentState >= Descriptor.Count)
                    {
                        Valid = true;
                        Score = state.CurrentScore;

                        CurrentStates.RemoveAt(i);
                        break;
                    }
                }

                if (Valid)
                {
                    /* sequence recognized, clear states */
                    CurrentStates.Clear();
                }
            }
        }
Esempio n. 12
0
 public StockEntry(Instrument instrument, RecognitionState dailyLineState, RecognitionState minLineState, TradeManager tradeManager, Strategy strategy) : base(instrument, strategy)
 {
     this.tradeManager   = tradeManager;
     this.dailyLineState = dailyLineState;
     this.minLineState   = minLineState;
 }
Esempio n. 13
0
 public void RecognizeFace() {
     _recognitionState = RecognitionState.Requested;
 }
Esempio n. 14
0
    public RecognitionState Recognition(double[] inputs, double[] outputs)
    {
        RecognitionState ret = new RecognitionState();

        if (inputs.Length > 5)
        {
            /*一次线性回归*/
            SimpleLinearRegression regression = this.ols.Learn(inputs, outputs, null);
            double       k     = regression.Slope;
            const double TAN45 = 1.0;
            const double TAN15 = 0.2679492;
            double       k1    = Math.Abs(k);
            if (k1 > TAN45)
            {
                ret.Slope = SlopeState.Steep;
            }
            else if (k1 > TAN15)
            {
                ret.Slope = SlopeState.moderate;
            }
            else
            {
                ret.Slope = SlopeState.gentle;
            }
            /*二次线性回归*/
            PolynomialRegression poly = this.pls.Learn(inputs, outputs, null);
            double a = poly.Weights[0];
            double b = poly.Weights[1];
            if (k > 0 && a > 0)
            {
                ret.Shape = ShapeState.Rise;
            }
            else if (k > 0 && a < 0)
            {
                ret.Shape = ShapeState.FallAfterRise;
            }
            else if (k < 0 && a < 0)
            {
                ret.Shape = ShapeState.Fall;
            }
            else if (k < 0 && a > 0)
            {
                ret.Shape = ShapeState.RiseAfterFall;
            }
            double last = inputs[inputs.Length - 1];
            double s    = 2 * a * last + b;
            double s1   = Math.Abs(s);
            if (s1 > TAN45)
            {
                ret.Speed = SpeedState.Rapid;
            }
            else if (s1 > TAN15)
            {
                ret.Speed = SpeedState.Steady;
            }
            else
            {
                ret.Speed = SpeedState.Slow;
            }
            /*显示图形*/
            if (this.showForm != null)
            {
                double[] outputs2 = regression.Transform(inputs);
                double[] outputs3 = poly.Transform(inputs);
                this.showForm.ShowGraph(inputs, outputs, inputs, outputs2, inputs, outputs3);
            }
            Console.WriteLine("k={0},a={1},b={2}", k, a, b);
        }
        return(ret);
    }
Esempio n. 15
0
 public void RecognizeFace()
 {
     _recognitionState = RecognitionState.Requested;
 }
Esempio n. 16
0
 private int GetGameExpiration(RecognitionState recognitionState)
 {
     switch (recognitionState)
     {
         case RecognitionState.Recognized:
             return _userSettingsProvider.RecognizedGameExpiration;
         case RecognitionState.PartiallyRecognized:
             return _userSettingsProvider.PartiallyRecognizedGameExpiration;
         case RecognitionState.NotRecognized:
             return _userSettingsProvider.UnrecognizedGameExpiration;
         default:
             throw new NotSupportedException("Invalid recognition state value: " + recognitionState);
     }
 }
Esempio n. 17
0
    protected override bool doJob()
    {
        bool         ret          = false;
        List <Plate> topHotPlates = plateMonitor.GetTopNHotPlates(2, 17);
        List <Stock> stocks       = new List <Stock>();

        foreach (Plate curPlate in topHotPlates)
        {
            Console.WriteLine("版块:{0}", curPlate.Name);
            foreach (Stock curStock in curPlate.Stocks)
            {
                if (curStock.Price <= 0)
                {
                    continue;                                   //没有价格的除掉
                }
                if (curStock.IncPercent < 1 || curStock.IncPercent >= 5)
                {
                    continue;                                                               //去掉不涨的和已经涨得好高的
                }
                if (!stocks.Contains(curStock))
                {
                    stocks.Add(curStock);
                }
            }
        }
        stocks.Sort(delegate(Stock s1, Stock s2){
            return(s2.IncPercent.CompareTo(s1.IncPercent));
        });
        DateTime lastDate        = Clock.Now.Date.AddDays(-1);
        DateTime beginTime       = Clock.Now.Date.Add(new TimeSpan(9, 30, 0));
        DateTime endTime         = Clock.Now;
        string   lastDateString  = lastDate.ToString("yyyy-MM-dd");
        string   beginTimeString = beginTime.ToString("yyyy-MM-dd HH:mm:ss");
        string   endTimeString   = endTime.ToString("yyyy-MM-dd HH:mm:ss");

        foreach (Stock curStock in stocks)
        {
            Daily[]          gmDailys       = this.plateMonitor.GetDailyLine(curStock.Symbol, 20, lastDateString);
            RecognitionState dailyLineState = this.plateMonitor.GetDailyLineState(gmDailys);
            Bar[]            gmMinBars      = this.plateMonitor.GetMinLine(curStock.Symbol, beginTimeString, endTimeString);
            RecognitionState minLineState   = this.plateMonitor.GetMinLineState(gmMinBars);

            if (!((dailyLineState.Shape == ShapeState.Rise) ||
                  (dailyLineState.Shape == ShapeState.RiseAfterFall && dailyLineState.Slope == SlopeState.Steep)))
            {
                continue;
            }
            if (minLineState.Shape == ShapeState.Fall || minLineState.Shape == ShapeState.RiseAfterFall)
            {
                continue;
            }
            if (minLineState.Shape == ShapeState.FallAfterRise && minLineState.Speed == SpeedState.Rapid)
            {
                continue;
            }
            SmartQuant.Instruments.Instrument inst = InstrumentManager.Instruments[curStock.Symbol];

            if (inst != null)
            {
                this.strategy.AddBehavior(inst, new StockEntry(inst, dailyLineState, minLineState, this.tradeManager, this.strategy));
                ret = true;
            }
        }
        return(ret);
    }