Esempio n. 1
0
        public static TradeBalanceModel ExchangeBalanceToModel(Margin bitmexMargin)
        {
            var model = new TradeBalanceModel
            {
                AccountCurrency = "BTC", // The only currency supported
                Totalbalance    = Convert.ToDecimal(bitmexMargin.MarginBalance) / SatoshiRate,
                UnrealisedPnL   = Convert.ToDecimal(bitmexMargin.UnrealisedPnl) / SatoshiRate,
                MaringAvailable = Convert.ToDecimal(bitmexMargin.AvailableMargin) / SatoshiRate,
                MarginUsed      = Convert.ToDecimal(bitmexMargin.MaintMargin) / SatoshiRate
            };

            return(model);
        }
        private static IReadOnlyCollection <TradeBalanceModel> MarginInfoToBalance(IReadOnlyList <MarginInfo> marginInfos)
        {
            if (marginInfos.Count != 1)
            {
                throw new ApiException(@"Incorrect number of marginInfo. Expected 1 but received {marginInfo.Count}");
            }

            var mi      = marginInfos[0];
            var balance = new TradeBalanceModel
            {
                AccountCurrency = "USD",
                Totalbalance    = mi.NetValue,
                UnrealisedPnL   = mi.UnrealizedPl,
                MaringAvailable = 0, // TODO The mapping is not defined yet.
                MarginUsed      = mi.RequiredMargin
            };

            return(new[] { balance });
        }
        public IReadOnlyCollection <TradeBalanceModel> ConvertCollateral(IEnumerable <CollateralReport> collateralReports)
        {
            var models = new List <TradeBalanceModel>();

            foreach (var report in collateralReports)
            {
                var instr = report.IsSetField((int)OneZeroCustomTag.OzAccountCurrency) ? report.GetString(OneZeroCustomTag.OzAccountCurrency) : "NoSymbol";
                var model = new TradeBalanceModel
                {
                    AccountCurrency = instr,
                    Totalbalance    = report.IsSetField((int)OneZeroCustomTag.OzEquity) ? report.GetDecimal(OneZeroCustomTag.OzEquity) : -1,
                    UnrealisedPnL   = report.IsSetField((int)OneZeroCustomTag.OzUnrealizedProfitOrLoss) ? report.GetDecimal(OneZeroCustomTag.OzUnrealizedProfitOrLoss) : -1,
                    MaringAvailable = report.IsSetField((int)OneZeroCustomTag.OzFreeMargin) ? report.GetDecimal(OneZeroCustomTag.OzFreeMargin) : -1,
                    MarginUsed      = report.IsSetField((int)OneZeroCustomTag.OzUsedMargin) ? report.GetDecimal(OneZeroCustomTag.OzUsedMargin) : -1
                };
                models.Add(model);
            }

            return(models);
        }