Esempio n. 1
0
        public async Task <OrderInfo> GetOrderInfo(long accountLogin, long orderId)
        {
            var accountModel = await _tradingAccountsService.GetAccountModelByLogin(accountLogin);

            var order = accountModel.PendingOrders.FirstOrDefault(order => order.Id == orderId);

            if (order is null)
            {
                return(null);
            }

            return(new OrderInfo
            {
                Id = order.Id,
                Direction = order.TradeSide.ToString(),
                SymbolName = order.Symbol.Name,
                Comment = order.Comment,
                Volume = MonetaryConverter.FromMonetary(order.Volume),
                HasStopLoss = order.IsStopLossEnabled,
                StopLossInPips = order.StopLossInPips,
                HasTakeProfit = order.IsTakeProfitEnabled,
                TakeProfitInPips = order.TakeProfitInPips,
                HasTrailingStop = order.IsTrailingStopLossEnabled,
                HasExpiry = order.IsExpiryEnabled,
                Expiry = order.ExpiryTime,
                Type = order.Type.ToString(),
                LimitRange = Convert.ToInt64(order.LimitRangeInPips),
                Price = order.Price
            });
        }
Esempio n. 2
0
        public async Task GetSymbols(string accountLogin)
        {
            if (string.IsNullOrWhiteSpace(accountLogin))
            {
                return;
            }

            var accountModel = await _tradingAccountsService.GetAccountModelByLogin(Convert.ToInt64(accountLogin));

            await Clients.Caller.SendAsync("Symbols", new
            {
                accountLogin,
                Symbols = accountModel.Symbols.Where(symbol => symbol.Data.TradingMode == ProtoOATradingMode.Enabled).Select(symbol => new
                {
                    symbol.Name,
                    symbol.Bid,
                    symbol.Ask,
                    symbol.Id,
                    symbol.PipSize,
                    MinVolume  = MonetaryConverter.FromMonetary(symbol.Data.MinVolume),
                    MaxVolume  = MonetaryConverter.FromMonetary(symbol.Data.MaxVolume),
                    StepVolume = MonetaryConverter.FromMonetary(symbol.Data.StepVolume),
                })
            });
        }
Esempio n. 3
0
        public async Task <PositionInfo> GetPositionInfo(long accountLogin, long positionId)
        {
            var accountModel = await _tradingAccountsService.GetAccountModelByLogin(accountLogin);

            var position = accountModel.Positions.FirstOrDefault(position => position.Id == positionId);

            if (position is null)
            {
                return(null);
            }

            return(new PositionInfo
            {
                Id = position.Id,
                Direction = position.TradeSide.ToString(),
                SymbolName = position.Symbol.Name,
                Comment = position.Comment,
                Volume = MonetaryConverter.FromMonetary(position.Volume),
                HasStopLoss = position.IsStopLossEnabled,
                StopLossInPips = position.StopLossInPips,
                HasTakeProfit = position.IsTakeProfitEnabled,
                TakeProfitInPips = position.TakeProfitInPips,
                HasTrailingStop = position.IsTrailingStopLossEnabled,
                IsMarketRange = position.IsMarketRange
            });
        }
Esempio n. 4
0
        public static long LotsToUnitsMonetary(double volumeInLots, long lotsInUnitsMonetary)
        {
            var lotsInUnits = MonetaryConverter.FromMonetary(lotsInUnitsMonetary);

            var volumeInUnits = volumeInLots * lotsInUnits;

            return(MonetaryConverter.ToMonetary(volumeInUnits));
        }
Esempio n. 5
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is null)
            {
                return(0);
            }

            var monetary = System.Convert.ToInt64(value);

            return(MonetaryConverter.FromMonetary(monetary));
        }
Esempio n. 6
0
        public static double UnitsMonetaryToLots(long volumeInUnitsMonetary, long lotsInUnitsMonetary)
        {
            var lotsInUnits = MonetaryConverter.FromMonetary(lotsInUnitsMonetary);

            return(MonetaryConverter.FromMonetary(volumeInUnitsMonetary) / lotsInUnits);
        }
Esempio n. 7
0
 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
 {
     return(value == null ? 0 : MonetaryConverter.ToMonetary(System.Convert.ToInt64(value)));
 }