コード例 #1
0
ファイル: SignalBase.cs プロジェクト: mpvyard/ServiceNimbus
        public void ModifyOrder(string orderId, decimal?sl, decimal?tp, bool isServerSide, AccountInfo account)
        {
            //(optional) analyze/process provided order details before passing them to broker
            var original = Broker?.GetOrder(orderId, account);

            if (original == null)
            {
                return;
            }

            var processed = new OrderParams(original)
            {
                SLOffset = sl,
                TPOffset = tp
            };

            processed = AnalyzePreTrade(processed);

            if (processed == null)
            {
                return;
            }
            if (State != SignalState.Backtesting)
            {
                Broker?.Modify(orderId, processed.SLOffset, processed.TPOffset, isServerSide, account);
            }
        }
コード例 #2
0
ファイル: FutureSdk.cs プロジェクト: hajilouali/MyBorsApp
        public async Task <ResponseModel <PageResponse> > pendingOrders(string Token)
        {
            try
            {
                _client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", Token);
                OrderParams request = new OrderParams()
                {
                    page            = 1,
                    type            = -1,
                    status          = 4,
                    persianToDate   = "",
                    persianFromDate = "",
                    contractId      = -1,
                    orderbookId     = 0,
                };
                StringContent stringContent = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");

                var response = await _client.PostAsync(string.Format(_baseUrl, "api/orders"),
                                                       stringContent);

                return(await ResponseHandler <PageResponse>(response));
            }
            catch
            {
                return(new ResponseModel <PageResponse>
                {
                    Status = ResponseStatus.NetworkError
                });
            }
        }
コード例 #3
0
 public static OrderParams GetOrderParamsByID(int orderID)
 {
     using (var db = new GameStoreDBContext())
     {
         var currentOrder = (from order in db.Order
                             where order.ID == orderID
                             select order).First();
         var connections = (from connection in db.Orders_Games
                            where connection.Order_ID == orderID
                            select connection);
         var orderParams = new OrderParams();
         orderParams.Date  = currentOrder.Date;
         orderParams.ID    = currentOrder.ID;
         orderParams.games = new List <GameParams>();
         foreach (var connection in connections)
         {
             var currentGame = ExtractGameParams((from game in db.Game
                                                  where game.ID == connection.Game_ID
                                                  select game).First());
             currentGame.Quantity = connection.Games_number;
             orderParams.games.Add(currentGame);
         }
         return(orderParams);
     }
 }
コード例 #4
0
        private OrderParams FillParams(OrderRegisterMessage regMsg, OrderParams orderParams)
        {
            if (regMsg == null)
            {
                throw new ArgumentNullException(nameof(regMsg));
            }

            if (orderParams == null)
            {
                throw new ArgumentNullException(nameof(orderParams));
            }

            orderParams.Symbol      = regMsg.SecurityId.SecurityCode;
            orderParams.Exchange    = regMsg.SecurityId.BoardCode;
            orderParams.Account     = _accounts[regMsg.PortfolioName];
            orderParams.BuySellType = regMsg.Side.ToRithmic();
            orderParams.UserMsg     = regMsg.Comment;
            orderParams.UserTag     = regMsg.UserOrderId;
            orderParams.Qty         = (int)regMsg.Volume;
            orderParams.Tag         = regMsg.TransactionId.To <string>();
            orderParams.Duration    = regMsg.TimeInForce.ToRithmic(regMsg.ExpiryDate);
            orderParams.EntryType   = Constants.ORDER_ENTRY_TYPE_AUTO;

            return(orderParams);
        }
コード例 #5
0
        public static List <OrderParams> GetOrdersParams(DateTime dateFrom, DateTime dateTo)
        {
            var orders       = new List <OrderParams>();
            var actualDateTo = dateTo.AddDays(1);

            Console.WriteLine(actualDateTo);
            using (var db = new GameStoreDBContext())
            {
                var currentOrders = from order in db.Order
                                    where order.Date >= dateFrom &&
                                    order.Date <= actualDateTo
                                    select order;
                foreach (var order in currentOrders)
                {
                    var currentOrder = new OrderParams()
                    {
                        Date  = order.Date,
                        ID    = order.ID,
                        games = ExtractGamesFromOrder(order)
                    };
                    orders.Add(currentOrder);
                }
            }
            return(orders);
        }
コード例 #6
0
 public async Task RemoveCartAsync(OrderParams orderParams)
 {
     if (Carts.Remove(orderParams))
     {
         await UpdateCartAsync();
     }
 }
コード例 #7
0
 public OrderToReport(OrderParams order)
 {
     ID   = order.ID;
     Date = order.Date;
     Sum  = (from game in order.games
             select game.Price).Sum();
     Quantity = (from game in order.games
                 select game).Count();
 }
コード例 #8
0
        public async Task <IActionResult> Get([FromQuery] OrderParams orderParams)
        {
            var orders = await this._repo.GetOrdersAsync(orderParams);

            Response.AddPaginationHeader(orders.CurrentPage, orders.PageSize,
                                         orders.TotalCount, orders.TotalPages);

            return(Ok(orders.ToOrderViewModelList()));
        }
コード例 #9
0
        private async Task CheckoutPayPalAsync(OrderParams orderParams)
        {
            orderParams.PaymentMethod = PaymentContants.PayPal;
            var response = await HttpClient.PostAsJsonAsync("api/orders", orderParams);

            var order = await response.Content.ReadFromJsonAsync <OrderModel>();

            NavigationManager.NavigateTo(order.PaymentUrl, true);
            await CartService.RemoveCartAsync(orderParams);
        }
コード例 #10
0
        public async Task <IActionResult> GetOrders([FromQuery] OrderParams orderParams)
        {
            var orders = await _repo.GetOrders(orderParams);

            var ordersToReturn = _mapper.Map <IEnumerable <OrdersForListDto> >(orders);

            Response.AddPagination(orders.CurrentPage, orders.PageSize, orders.TotalCount, orders.TotalPages);

            return(Ok(ordersToReturn));
        }
コード例 #11
0
ファイル: OrderModel.cs プロジェクト: TeemoCell/UnturnedStore
 public static OrderModel FromParams(OrderParams orderParams)
 {
     return(new OrderModel()
     {
         BuyerId = orderParams.BuyerId,
         SellerId = orderParams.SellerId,
         PaymentMethod = orderParams.PaymentMethod,
         Items = new List <OrderItemModel>()
     });
 }
コード例 #12
0
        public Order PlaceOrder(OrderParams orderParamsModel)
        {
            Dictionary <string, object> parameters = new Dictionary <string, object>();

            foreach (var prop in orderParamsModel.GetType().GetProperties())
            {
                parameters.Add(prop.Name, prop.GetValue(orderParamsModel));
            }
            return(_dataLayer.GetItem <Order>("sp_OnlineShop_PlaceOrder", parameters));
        }
コード例 #13
0
        public async Task RemoveFromCartAsync(OrderParams orderParams, OrderItemParams item)
        {
            orderParams.Items.Remove(item);
            if (orderParams.Items.Count == 0)
            {
                Carts.Remove(orderParams);
            }

            await UpdateCartAsync();
        }
コード例 #14
0
        public async Task <PagedList <Order> > GetAllOrdersByUser(OrderParams orderParams)
        {
            var orders = oContext.Orders
                         .Include(p => p.OrderDetails)
                         .Where(p => p.UserId == orderParams.UserId)
                         .OrderByDescending(p => p.OrderDate)
                         .AsQueryable();

            return(await PagedList <Order> .CreateAsync(orders, orderParams.PageNumber, orderParams.PageSize));
        }
コード例 #15
0
        public int PostOrder([FromBody] OrderParams orderParams)
        {
            string cartId   = orderParams.cartId;
            string userName = orderParams.userName;

            int orderId = _cartRepository.CreateOrder(cartId, userName);

            _cartRepository.MigrateCart(cartId, userName);
            _cartRepository.EmptyCart(cartId);
            return(orderId);
        }
コード例 #16
0
ファイル: Client.cs プロジェクト: fengxiaolan/Xceder
        /// <summary>
        /// replace/withdraw the target order
        /// </summary>
        /// <param name="targetClOrdID">target order clOrdID</param>
        /// <param name="newQty">new order qty, 0 means withdraw the target order</param>
        /// <param name="newLimitPrice"></param>
        /// <param name="newStopPrice"></param>
        /// <returns>ansyc task result for this request</returns>
        public Task <Tuple <Request, Response> > replaceOrWithdrawOrder(ulong targetClOrdID, uint newQty, ulong newLimitPrice, ulong newStopPrice)
        {
            OrderParams orderParams = new OrderParams();

            orderParams.OrigClOrdID = targetClOrdID;
            orderParams.OrderQty    = newQty;
            orderParams.LimitPrice  = newLimitPrice;
            orderParams.StopPrice   = newStopPrice;

            return(submitOrder(orderParams));
        }
コード例 #17
0
        public async Task <ActionResult <int> > ApproveSelectedOrders([FromBody] OrderParams orderUpdParams)
        {
            var ordersUpdatedCount = await _orderService.UpdateOrdersStatusForApproveRejectAsync(orderUpdParams.OrderIds, OrderStatus.Approved, orderUpdParams.OrderSpecParams);

            if (ordersUpdatedCount <= 0)
            {
                return(BadRequest(new ApiResponse(500, "Problem approving orders")));
            }

            return(Ok(ordersUpdatedCount));
        }
コード例 #18
0
 public Order PlaceOrder(OrderParams orderParamsModel)
 {
     try
     {
         return(_salesRepository.PlaceOrder(orderParamsModel));
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #19
0
        public async Task RemoveCartAsync(OrderParams orderParams)
        {
            if (Carts == null)
            {
                await ReloadCartAsync();
            }

            if (Carts.Remove(orderParams))
            {
                await SaveCartAsync();
            }
        }
コード例 #20
0
ファイル: OrderService.cs プロジェクト: kotyk7/UnturnedStore
        public async Task <MOrder> CreateOrderAsync(OrderParams orderParams)
        {
            MOrder order = MOrder.FromParams(orderParams);

            order.Seller = await usersRepository.GetUserAsync <Seller>(order.SellerId);

            order.Status          = OrderConstants.Status.Pending;
            order.Currency        = "USD";
            order.PaymentMethod   = orderParams.PaymentMethod;
            order.PaymentReceiver = order.GetReceiver(order.PaymentMethod);


            foreach (var itemParams in orderParams.Items)
            {
                MOrderItem item = MOrderItem.FromParams(itemParams);

                item.Product = await productsRepository.GetProductAsync(item.ProductId, order.BuyerId);

                if (item.Product == null)
                {
                    return(null);
                }

                if (order.SellerId != item.Product.SellerId)
                {
                    return(null);
                }

                if (item.Product.Customer != null)
                {
                    return(null);
                }

                item.ProductName = item.Product.Name;
                item.Price       = item.Product.Price;

                order.TotalPrice += item.Price;
                order.Items.Add(item);
            }

            Payment payment = Payment.Create(order.PaymentMethod, string.Empty,
                                             order.GetReceiver(order.PaymentMethod), order.Currency, order.TotalPrice);

            foreach (MOrderItem item in order.Items)
            {
                payment.AddItem(item.ProductName, 1, item.Price);
            }

            order.PaymentId = await PaymentGatewayClient.CreatePaymentAsync(payment);

            return(await ordersRepository.AddOrderAsync(order));
        }
コード例 #21
0
        public async Task <IActionResult> PostOrderAsync([FromBody] OrderParams orderParams)
        {
            orderParams.BaseUrl = Request.Headers["Origin"];
            orderParams.BuyerId = int.Parse(User.Identity.Name);
            var order = await orderService.CreateOrderAsync(orderParams);

            if (order == null)
            {
                return(BadRequest());
            }

            return(Ok(order));
        }
コード例 #22
0
        public async Task <PagedList <Orders> > GetOrders(OrderParams orderParams)
        {
            var orders = _context.Orders.FromSqlRaw($"SELECT * FROM getOrders()").Include(e => e.Employee).AsQueryable();

            // var orders = _context.Orders.Include(e => e.Employee).AsQueryable();

            if (!orderParams.EmployeeId.Equals(0))
            {
                orders = orders.Where(o => o.EmployeeId == orderParams.EmployeeId);
            }

            return(await PagedList <Orders> .CreateAsync(orders, orderParams.PageNumber, orderParams.PageSize));
        }
コード例 #23
0
        public async Task <OrderModel> CreateOrderAsync(OrderParams orderParams)
        {
            if (orderParams.PaymentMethod == PaymentContants.PayPal)
            {
                var order = OrderModel.FromParams(orderParams);

                order.Seller = await usersRepository.GetUserPrivateAsync(order.SellerId);

                order.PaymentReceiver = order.Seller.PayPalEmail;
                order.Currency        = order.Seller.PayPalCurrency;
                order.Status          = PaymentContants.PendingStatus;

                foreach (var itemParams in orderParams.Items)
                {
                    var item = OrderItemModel.FromParams(itemParams);

                    item.Product = await productsRepository.GetProductAsync(item.ProductId, order.BuyerId);

                    if (item.Product == null)
                    {
                        return(null);
                    }

                    if (order.SellerId != item.Product.SellerId)
                    {
                        return(null);
                    }

                    if (item.Product.Customer != null)
                    {
                        return(null);
                    }

                    item.ProductName = item.Product.Name;
                    item.Price       = item.Product.Price;

                    order.TotalPrice += item.Price;
                    order.Items.Add(item);
                }

                order = await ordersRepository.AddOrderAsync(order);

                payPalService.PayPalPayment(order, orderParams.BaseUrl);
                await ordersRepository.UpdateOrderPaymentUrlAsync(order);

                return(order);
            }

            return(null);
        }
コード例 #24
0
ファイル: TrailCut II.cs プロジェクト: vmsalinasg/cAlgoBot
        /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        protected void OnPositionClosed(PositionClosedEventArgs args)
        {
            Position position = args.Position;

            // Manage a selective Martingale.
            if (Martingale)
            {
                OrderParams op = this.martingale(position);
                op.Slippage = initialOP.Slippage;
                this.splitAndExecuteOrder(op);
            }

            Print(position.log(this, false));
        }
コード例 #25
0
ファイル: TrailCut II.cs プロジェクト: vmsalinasg/cAlgoBot
        /// <summary>
        ///
        /// </summary>
        protected override void OnStart()
        {
            base.OnStart();

            double slippage = 2;

            // maximum slippage in point, if order execution imposes a higher slippage, the order is not executed.

            _botName       = ToString();
            _instanceLabel = string.Format("{0}-{1}-{2}-{3}", _botName, _botVersion, Symbol.Code, TimeFrame.ToString());
            string positionComment = string.Format("{0}-v{1}", _botName, _botVersion);

            // order label passed by the bot
            initialOP = new OrderParams(null, Symbol, InitialVolume, _instanceLabel, StopLoss, TakeProfit, slippage, positionComment, null, new List <double>
            {
                5,
                3,
                2
            });

            Positions.Closed += OnPositionClosed;

            strategies = new List <Strategy>();

            if (IsZZKwanActif)
            {
                strategies.Add(new ZigZagKwanStrategy(this, MbfxLen, MbfxFilter));
            }

            if (IsWPRActif)
            {
                strategies.Add(new WPRSStrategy(this, WprSource, WprPeriod, WprOverbuyCeil, WprOversellCeil, WprMagicNumber, WprMinMaxPeriod, WprExceedMinMax));
            }

            if (IsDCActif)
            {
                strategies.Add(new DoubleCandleStrategy(this, DoubleCandleFineness));
            }

            if (IsZZActif)
            {
                strategies.Add(new ZigZagStrategy(this, ZzDepth, ZzDeviation, ZzBackStep));
            }

            if (IsTMActif)
            {
                strategies.Add(new TrendMagicStrategy(this, TMCciPeriod, TMAtrPeriod));
            }
        }
コード例 #26
0
 public Models.OrderResponse PlaceOrder(Models.OrderParams orderParams)
 {
     if (_salesService.ValidateCartKey(orderParams.CartKey))
     {
         Models.OrderResponse orderResponse = new Models.OrderResponse();
         orderResponse.CartKey = orderParams.CartKey;
         OrderParams orderParamsModel = Mapper.Map <Models.OrderParams, OrderParams>(orderParams);
         orderResponse.Order = Mapper.Map <Order, Models.Order>(_salesService.PlaceOrder(orderParamsModel));
         return(orderResponse);
     }
     else
     {
         throw new ApplicationException($"Shopping cart with key: {orderParams.CartKey} is not valid any more.");
     }
 }
コード例 #27
0
        public async Task RemoveFromCartAsync(OrderParams orderParams, OrderItemParams item)
        {
            if (Carts == null)
            {
                await ReloadCartAsync();
            }

            orderParams.Items.Remove(item);
            if (orderParams.Items.Count == 0)
            {
                Carts.Remove(orderParams);
            }

            await SaveCartAsync();
        }
コード例 #28
0
ファイル: Client.cs プロジェクト: fengxiaolan/Xceder
        /// <summary>
        /// submit the order
        /// </summary>
        /// <param name="orderParams"></param>
        /// <returns>ansyc task result for this request</returns>
        public Task <Tuple <Request, Response> > submitOrder(OrderParams orderParams)
        {
            Request request = createRequestMsg();

            Order order = new Order();

            order.Account   = AccountInfo.AccountID;
            order.EnterBy   = AccountInfo.AccountID;
            order.SubmitUTC = toEpochMilliseconds(DateTime.Now);

            request.Order = order;

            order.Params = orderParams;

            return(send(request));
        }
コード例 #29
0
        protected override async Task OnParametersSetAsync()
        {
            OrderParams = CartService.GetOrderParams(SellerId);

            if (OrderParams != null)
            {
                PaymentMethods = await HttpClient.GetFromJsonAsync <string[]>($"api/payments/{SellerId}");

                if (string.IsNullOrEmpty(OrderParams.PaymentMethod))
                {
                    await ChangePaymentMethod(PaymentMethods.FirstOrDefault());
                }
            }

            isLoaded = true;
        }
コード例 #30
0
        public async Task <IActionResult> GetAllOrdersByUser([FromQuery] OrderParams orderParams)
        {
            var ordersFromRepo = await _unitOfWork.Orders.GetAllOrdersByUser(orderParams);

            if (ordersFromRepo == null)
            {
                return(NotFound());
            }

            Response.AddPagination(
                ordersFromRepo.CurrentPage,
                ordersFromRepo.PageSize,
                ordersFromRepo.TotalCount,
                ordersFromRepo.TotalPages);

            return(Ok(ordersFromRepo));
        }
コード例 #31
0
		private OrderParams FillParams(OrderRegisterMessage regMsg, OrderParams orderParams)
		{
			if (regMsg == null)
				throw new ArgumentNullException(nameof(regMsg));

			if (orderParams == null)
				throw new ArgumentNullException(nameof(orderParams));

			orderParams.Symbol = regMsg.SecurityId.SecurityCode;
			orderParams.Exchange = regMsg.SecurityId.BoardCode;
			orderParams.Account = _accounts[regMsg.PortfolioName];
			orderParams.BuySellType = regMsg.Side.ToRithmic();
			orderParams.UserMsg = regMsg.Comment;
			orderParams.UserTag = regMsg.UserOrderId;
			orderParams.Qty = (int)regMsg.Volume;
			orderParams.Tag = regMsg.TransactionId.To<string>();
			orderParams.Duration = regMsg.TimeInForce.ToRithmic(regMsg.ExpiryDate);
			orderParams.EntryType = Constants.ORDER_ENTRY_TYPE_AUTO;

			return orderParams;
		}