예제 #1
0
        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));
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
 public void Hit(DateTime hitTime)
 {
     BetDirection betDirection = this.GetBetDirection(this.HitCount);
     HitResult    result       = this.DoBinaryOptionHit(betDirection, hitTime);
 }