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); }
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); }
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)); }
public DbExecution(IBfExecution exec) { ExecutionId = exec.ExecutionId; ExecutedTime = exec.ExecutedTime; Side = exec.Side; Price = exec.Price; Size = exec.Size; }
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); }
// 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); }
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, }); }
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)); }