Exemple #1
0
        public static IBfxOrder Market(BfTradeSide side, decimal size)
        {
            var request = BfChildOrderRequest.Market(BfProductCode.Unknown, side, size, 0, BfTimeInForce.NotSpecified);
            var order   = new BfxChildOrder(request);

            return(order);
        }
Exemple #2
0
        public static IBfxOrder StopLimit(BfTradeSide side, decimal triggerPrice, decimal orderPrice, decimal size)
        {
            var request = BfParentOrderRequest.StopLimit(BfProductCode.Unknown, side, triggerPrice, orderPrice, size, 0, BfTimeInForce.NotSpecified);
            var order   = new BfxParentOrder(request);

            return(order);
        }
Exemple #3
0
        public static IBfxOrder Trailing(BfTradeSide side, decimal trailingOffset, decimal size)
        {
            var request = BfParentOrderRequest.Trail(BfProductCode.Unknown, side, trailingOffset, size, 0, BfTimeInForce.NotSpecified);
            var order   = new BfxParentOrder(request);

            return(order);
        }
        /// <summary>
        /// Send a New Order
        /// <see href="https://scrapbox.io/BitFlyerDotNet/SendChildOrder">Online help</see>
        /// </summary>
        /// <param name="productCode"></param>
        /// <param name="orderType"></param>
        /// <param name="side"></param>
        /// <param name="price"></param>
        /// <param name="size"></param>
        /// <param name="minuteToExpire"></param>
        /// <param name="timeInForce"></param>
        /// <returns></returns>
        public Task <BitFlyerResponse <BfChildOrderResponse> > SendChildOrderAsync(
            BfProductCode productCode,
            BfOrderType orderType,
            BfTradeSide side,
            decimal price,
            decimal size,
            int minuteToExpire,
            BfTimeInForce timeInForce,
            CancellationToken ct
            )
        {
            var request = new BfChildOrderRequest
            {
                ProductCode    = productCode,
                ChildOrderType = orderType,
                Side           = side,
                Price          = price,
                Size           = size,
                MinuteToExpire = minuteToExpire,
                TimeInForce    = timeInForce,
            };

            Validate(ref request);
            return(SendChildOrderAsync(request, ct));
        }
Exemple #5
0
 public DbExecution(IBfExecution exec)
 {
     ExecutionId  = exec.ExecutionId;
     ExecutedTime = exec.ExecutedTime;
     Side         = exec.Side;
     Price        = exec.Price;
     Size         = exec.Size;
 }
Exemple #6
0
 public static BfTradeSide Opposite(this BfTradeSide side)
 {
     if (side != BfTradeSide.Buy && side != BfTradeSide.Sell)
     {
         throw new ArgumentException();
     }
     return(side == BfTradeSide.Buy ? BfTradeSide.Sell : BfTradeSide.Buy);
 }
Exemple #7
0
 // Message builders
 public static BfParentOrderRequestParameter Market(BfProductCode productCode, BfTradeSide side, decimal size)
 {
     return(new ()
     {
         ProductCode = productCode,
         ConditionType = BfOrderType.Market,
         Side = side,
         Size = size,
     });
 }
        }                                                                                              // default = GTC

        // Order builders
        public static BfChildOrderRequest Market(BfProductCode productCode, BfTradeSide side, decimal size, int minuteToExpire = 0, BfTimeInForce timeInForce = BfTimeInForce.NotSpecified)
        {
            return(new ()
            {
                ProductCode = productCode,
                ChildOrderType = BfOrderType.Market,
                Side = side,
                Size = size,
                MinuteToExpire = minuteToExpire,
                TimeInForce = timeInForce,
            });
        }
        public BfChildOrderRequest CreateMarketPriceOrder(BfTradeSide side, decimal size)
        {
            var request = new BfChildOrderRequest
            {
                ProductCode = _market.ProductCode,
                OrderType   = BfOrderType.Market,
                Side        = side,
                Size        = size,
            };

            CheckChildOrderRequestValid(request);
            return(request);
        }
Exemple #10
0
        public static BfParentOrderRequestParameter Stop(BfProductCode productCode, BfTradeSide side, decimal triggerPrice, decimal size)
        {
            if (size > triggerPrice)
            {
                throw new ArgumentException();
            }

            return(new ()
            {
                ProductCode = productCode,
                ConditionType = BfOrderType.Stop,
                Side = side,
                TriggerPrice = triggerPrice,
                Size = size,
            });
        }
Exemple #11
0
        public static BfParentOrderRequestParameter Trail(BfProductCode productCode, BfTradeSide side, decimal offset, decimal size)
        {
            if (offset <= 0m)
            {
                throw new ArgumentException();
            }

            return(new ()
            {
                ProductCode = productCode,
                ConditionType = BfOrderType.Trail,
                Side = side,
                Offset = offset,
                Size = size,
            });
        }
        public BfChildOrderRequest CreateLimitPriceOrder(BfTradeSide side, decimal size, decimal price, BfTimeInForce timeInForce)
        {
            var request = new BfChildOrderRequest
            {
                ProductCode = _market.ProductCode,
                OrderType   = BfOrderType.Limit,
                Side        = side,
                Size        = size,
                Price       = price,
            };

            request.TimeInForce = timeInForce;

            CheckChildOrderRequestValid(request);
            return(request);
        }
        public BfChildOrderRequest CreateLimitPriceOrder(BfTradeSide side, decimal size, decimal price, TimeSpan minuteToExpire)
        {
            var request = new BfChildOrderRequest
            {
                ProductCode = _market.ProductCode,
                OrderType   = BfOrderType.Limit,
                Side        = side,
                Size        = size,
                Price       = price,
            };

            request.MinuteToExpireSpan = minuteToExpire;

            CheckChildOrderRequestValid(request);
            return(request);
        }
        public BfParentOrderRequest CreateTrailOrder(BfTradeSide side, decimal size, decimal trailingStopPriceOffset)
        {
            if (size > trailingStopPriceOffset)
            {
                throw new ArgumentException();
            }
            var request = new BfParentOrderRequest {
                OrderMethod = BfOrderType.Simple
            };

            request.Paremters.Add(new BfParentOrderRequestParameter {
                ProductCode = _market.ProductCode, ConditionType = BfOrderType.Trail, Side = side, Size = size, Offset = trailingStopPriceOffset
            });
            CheckParentOrderRequestValid(request);
            return(request);
        }
        public BfParentOrderRequest CreateStopLimitOrder(BfTradeSide side, decimal size, decimal price, decimal stopTriggerPrice)
        {
            if (size > price || size > stopTriggerPrice)
            {
                throw new ArgumentException();
            }
            var request = new BfParentOrderRequest {
                OrderMethod = BfOrderType.Simple
            };

            request.Paremters.Add(new BfParentOrderRequestParameter {
                ProductCode = _market.ProductCode, ConditionType = BfOrderType.StopLimit, Side = side, Size = size, Price = price, TriggerPrice = stopTriggerPrice
            });
            CheckParentOrderRequestValid(request);
            return(request);
        }
        /// <summary>
        /// Send a New Order
        /// <see href="https://scrapbox.io/BitFlyerDotNet/SendChildOrder">Online help</see>
        /// </summary>
        /// <param name="productCode"></param>
        /// <param name="orderType"></param>
        /// <param name="side"></param>
        /// <param name="price"></param>
        /// <param name="size"></param>
        /// <param name="minuteToExpire"></param>
        /// <param name="timeInForce"></param>
        /// <returns></returns>
        public BitFlyerResponse <BfChildOrderResponse> SendChildOrder(
            BfProductCode productCode,
            BfOrderType orderType,
            BfTradeSide side,
            decimal price,
            decimal size,
            int minuteToExpire        = 0,
            BfTimeInForce timeInForce = BfTimeInForce.NotSpecified)
        {
            var request = new BfChildOrderRequest
            {
                ProductCode    = productCode,
                ChildOrderType = orderType,
                Side           = side,
                Price          = price,
                Size           = size,
                MinuteToExpire = minuteToExpire,
                TimeInForce    = timeInForce,
            };

            Validate(ref request);
            return(SendChildOrder(request));
        }