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; }
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; }
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; }
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; } } }
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; } } }
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(); } } }
public StockEntry(Instrument instrument, RecognitionState dailyLineState, RecognitionState minLineState, TradeManager tradeManager, Strategy strategy) : base(instrument, strategy) { this.tradeManager = tradeManager; this.dailyLineState = dailyLineState; this.minLineState = minLineState; }
public void RecognizeFace() { _recognitionState = RecognitionState.Requested; }
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); }
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); } }
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); }