private AdvisorAssetResponse GetAdvisorAssetResponse(AdvisorProfit advisorProfit, List <DomainObjects.Asset.Asset> assets)
        {
            var asset = assets?.FirstOrDefault(c => c.Id == advisorProfit.AssetId);

            return(new AdvisorAssetResponse()
            {
                AssetId = advisorProfit.AssetId,
                AssetName = asset?.Name,
                AssetCode = asset?.Code,
                Pair = PairBusiness.GetBaseQuotePair(advisorProfit.AssetId),
                Type = advisorProfit.Type,
                OrderCount = advisorProfit.OrderCount,
                SuccessCount = advisorProfit.SuccessCount,
                TotalInvested = advisorProfit.TotalDollar - advisorProfit.SummedProfitDollar,
                TotalQuantity = advisorProfit.TotalQuantity,
                TotalProfit = advisorProfit.SummedProfitDollar,
                TotalFee = advisorProfit.TotalFee,
                AveragePrice = (advisorProfit.TotalDollar - advisorProfit.SummedProfitDollar - advisorProfit.TotalFee ?? 0) / advisorProfit.TotalQuantity,
                SuccessRate = (double)advisorProfit.SuccessCount / advisorProfit.OrderCount,
                AverageReturn = advisorProfit.SummedProfitDollar / (advisorProfit.TotalDollar - advisorProfit.SummedProfitDollar),
                TotalVirtual = advisorProfit.TotalDollar,
                SummedTradeMinutes = advisorProfit.SummedTradeMinutes
            });
        }
Example #2
0
        private string GetInsertScript(DateTime referenceDate, AdvisorProfit advisorProfit)
        {
            var baseInsert = "INSERT INTO [AdvisorProfitHistory] (UserId, AssetId, Status, Type, ReferenceDate, SummedProfitPercentage, SummedProfitDollar, TotalDollar, TotalQuantity, OrderCount, SuccessCount, SummedTradeMinutes, TotalFee) VALUES ({0});";

            return(string.Format(baseInsert, $"{advisorProfit.UserId}, {advisorProfit.AssetId}, {advisorProfit.Status}, {advisorProfit.Type}, {GetDateTimeSqlFormattedValue(referenceDate)}, {GetDoubleSqlFormattedValue(advisorProfit.SummedProfitPercentage)}, {GetDoubleSqlFormattedValue(advisorProfit.SummedProfitDollar)}, {GetDoubleSqlFormattedValue(advisorProfit.TotalDollar)}, {GetDoubleSqlFormattedValue(advisorProfit.TotalQuantity)}, {advisorProfit.OrderCount}, {advisorProfit.SuccessCount}, {GetNullableValue(advisorProfit.SummedTradeMinutes)}, {GetDoubleSqlFormattedValue(advisorProfit.TotalFee)}"));
        }