public static AccountStatContract ConvertToContract(this IMarginTradingAccount account)
 {
     return(new AccountStatContract
     {
         AccountId = account.Id,
         BaseAssetId = account.BaseAssetId,
         Balance = account.Balance,
         LastBalanceChangeTime = account.LastBalanceChangeTime,
         MarginCallLevel = account.GetMarginCall1Level(),
         StopOutLevel = account.GetStopOutLevel(),
         TotalCapital = account.GetTotalCapital(),
         FreeMargin = account.GetFreeMargin(),
         MarginAvailable = account.GetMarginAvailable(),
         UsedMargin = account.GetUsedMargin(),
         CurrentlyUsedMargin = account.GetCurrentlyUsedMargin(),
         InitiallyUsedMargin = account.GetInitiallyUsedMargin(),
         MarginInit = account.GetMarginInit(),
         PnL = account.GetPnl(),
         UnrealizedDailyPnl = account.GetUnrealizedDailyPnl(),
         OpenPositionsCount = account.GetOpenPositionsCount(),
         ActiveOrdersCount = account.GetActiveOrdersCount(),
         MarginUsageLevel = account.GetMarginUsageLevel(),
         LegalEntity = account.LegalEntity,
         IsInLiquidation = account.IsInLiquidation(),
         MarginNotificationLevel = account.GetAccountLevel().ToString()
     });
 }
        public static MarginEventMessage Create(IMarginTradingAccount account, MarginEventTypeContract eventType,
                                                DateTime eventTime)
        {
            return(new MarginEventMessage
            {
                EventId = Guid.NewGuid().ToString("N"),
                EventTime = eventTime,
                EventType = eventType,

                AccountId = account.Id,
                TradingConditionId = account.TradingConditionId,
                BaseAssetId = account.BaseAssetId,
                Balance = account.Balance,
                WithdrawTransferLimit = account.WithdrawTransferLimit,

                MarginCall1Level = account.GetMarginCall1Level(),
                MarginCall2Level = account.GetMarginCall2Level(),
                StopOutLevel = account.GetStopOutLevel(),
                TotalCapital = account.GetTotalCapital(),
                FreeMargin = account.GetFreeMargin(),
                MarginAvailable = account.GetMarginAvailable(),
                UsedMargin = account.GetUsedMargin(),
                MarginInit = account.GetMarginInit(),
                PnL = account.GetPnl(),
                OpenPositionsCount = account.GetOpenPositionsCount(),
                MarginUsageLevel = account.GetMarginUsageLevel(),
            });
        }
示例#3
0
        public static decimal GetMarginUsageLevel(this IMarginTradingAccount account)
        {
            var totalCapital = account.GetTotalCapital();

            var usedMargin = account.GetUsedMargin();

            //Anton Belkin said 100 is ok )
            if (usedMargin <= 0)
            {
                return(100);
            }

            return(totalCapital / usedMargin);
        }
示例#4
0
 public static AccountStatsContract ToRabbitMqContract(this IMarginTradingAccount account)
 {
     return(new AccountStatsContract
     {
         AccountId = account.Id,
         ClientId = account.ClientId,
         TradingConditionId = account.TradingConditionId,
         BaseAssetId = account.BaseAssetId,
         Balance = account.Balance,
         WithdrawTransferLimit = account.WithdrawTransferLimit,
         MarginCallLevel = account.GetMarginCall1Level(),
         StopOutLevel = account.GetStopOutLevel(),
         TotalCapital = account.GetTotalCapital(),
         FreeMargin = account.GetFreeMargin(),
         MarginAvailable = account.GetMarginAvailable(),
         UsedMargin = account.GetUsedMargin(),
         MarginInit = account.GetMarginInit(),
         PnL = account.GetPnl(),
         OpenPositionsCount = account.GetOpenPositionsCount(),
         MarginUsageLevel = account.GetMarginUsageLevel(),
         LegalEntity = account.LegalEntity,
     });
 }
 public static AccountCapitalFigures ConvertToCapitalFiguresContract(this IMarginTradingAccount account)
 {
     return(new AccountCapitalFigures
     {
         Balance = account.Balance,
         LastBalanceChangeTime = account.LastBalanceChangeTime,
         TotalCapital = account.GetTotalCapital(),
         FreeMargin = account.GetFreeMargin(),
         UsedMargin = account.GetUsedMargin(),
         CurrentlyUsedMargin = account.GetCurrentlyUsedMargin(),
         InitiallyUsedMargin = account.GetInitiallyUsedMargin(),
         PnL = account.GetPnl(),
         UnrealizedDailyPnl = account.GetUnrealizedDailyPnl(),
         OpenPositionsCount = account.GetOpenPositionsCount(),
         TodayStartBalance = account.TodayStartBalance,
         TodayRealizedPnL = account.TodayRealizedPnL,
         TodayUnrealizedPnL = account.TodayUnrealizedPnL,
         TodayDepositAmount = account.TodayDepositAmount,
         TodayWithdrawAmount = account.TodayWithdrawAmount,
         TodayCommissionAmount = account.TodayCommissionAmount,
         TodayOtherAmount = account.TodayOtherAmount,
         AdditionalInfo = account.AdditionalInfo
     });
 }
示例#6
0
 public static MarginTradingAccountBackendContract ToFullBackendContract(this IMarginTradingAccount src, bool isLive)
 {
     return(new MarginTradingAccountBackendContract
     {
         Id = src.Id,
         ClientId = src.ClientId,
         TradingConditionId = src.TradingConditionId,
         BaseAssetId = src.BaseAssetId,
         Balance = src.Balance,
         WithdrawTransferLimit = src.WithdrawTransferLimit,
         MarginCall = src.GetMarginCallLevel(),
         StopOut = src.GetStopOutLevel(),
         TotalCapital = src.GetTotalCapital(),
         FreeMargin = src.GetFreeMargin(),
         MarginAvailable = src.GetMarginAvailable(),
         UsedMargin = src.GetUsedMargin(),
         MarginInit = src.GetMarginInit(),
         PnL = src.GetPnl(),
         OpenPositionsCount = src.GetOpenPositionsCount(),
         MarginUsageLevel = src.GetMarginUsageLevel(),
         IsLive = isLive,
         LegalEntity = src.LegalEntity,
     });
 }
示例#7
0
 public static decimal GetMarginAvailable(this IMarginTradingAccount account)
 {
     return(account.GetTotalCapital() - account.GetMarginInit());
 }
示例#8
0
 public static decimal GetFreeMargin(this IMarginTradingAccount account)
 {
     return(account.GetTotalCapital() - account.GetUsedMargin());
 }