public HitResult DoBinaryOptionHit(BetDirection betDirection, DateTime hitTime) { BeforeHitParams hitParams = new BeforeHitParams(this.HitCount, this.BestPrice, this.BestTime, this.BetResult); this.HitCount++; var hitPrice = this.GetHitPrice(); this.BestPrice = hitPrice; this.BestTime = hitTime; this.BetResult = this.CalculateBetResult(hitPrice, betDirection); return(new HitResult(this.BetResult.Value, hitParams)); }
internal BetResult CalculateBetResult(Price hitPrice, BetDirection betDirection) { int priceCompareResult = hitPrice.CompareTo(this.ExecutePrice); if (priceCompareResult == 0) { return(_bOBetType.HitCount > 1 ? BinaryOption.BetResult.Lose : BinaryOption.BetResult.Draw); } else if ((priceCompareResult > 0 && betDirection == BetDirection.Up) || (priceCompareResult < 0 && betDirection == BetDirection.Down)) { return(BinaryOption.BetResult.Win); } else { return(BinaryOption.BetResult.Lose); } }
public void Hit(DateTime hitTime) { BetDirection betDirection = this.GetBetDirection(this.HitCount); HitResult result = this.DoBinaryOptionHit(betDirection, hitTime); }