示例#1
0
        private void BuildSellLogData(List <sellLogData> rawSellLogData, PTMagicConfiguration systemConfiguration)
        {
            foreach (sellLogData rsld in rawSellLogData)
            {
                SellLogData sellLogData = new SellLogData();
                sellLogData.SoldAmount      = rsld.soldAmount;
                sellLogData.BoughtTimes     = rsld.boughtTimes;
                sellLogData.Market          = rsld.market;
                sellLogData.ProfitPercent   = rsld.profit;
                sellLogData.SoldPrice       = rsld.currentPrice;
                sellLogData.AverageBuyPrice = rsld.averageCalculator.avgPrice;
                sellLogData.TotalCost       = sellLogData.SoldAmount * sellLogData.AverageBuyPrice;

                double soldValueRaw       = (sellLogData.SoldAmount * sellLogData.SoldPrice);
                double soldValueAfterFees = soldValueRaw - (soldValueRaw * (rsld.averageCalculator.fee / 100));
                sellLogData.SoldValue = soldValueAfterFees;
                sellLogData.Profit    = Math.Round(sellLogData.SoldValue - sellLogData.TotalCost, 8);

                // Profit Trailer sales are saved in UTC
                DateTimeOffset ptSoldDate = DateTimeOffset.Parse(rsld.soldDate.date.year.ToString() + "-" + rsld.soldDate.date.month.ToString("00") + "-" + rsld.soldDate.date.day.ToString("00") + "T" + rsld.soldDate.time.hour.ToString("00") + ":" + rsld.soldDate.time.minute.ToString("00") + ":" + rsld.soldDate.time.second.ToString("00"), CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);

                // Convert UTC sales time to local offset time
                TimeSpan offsetTimeSpan = TimeSpan.Parse(systemConfiguration.GeneralSettings.Application.TimezoneOffset.Replace("+", ""));
                ptSoldDate = ptSoldDate.ToOffset(offsetTimeSpan);

                sellLogData.SoldDate = ptSoldDate.DateTime;

                _sellLog.Add(sellLogData);
            }
        }
示例#2
0
        private void BuildSellLogData(dynamic rawSellLogData)
        {
            foreach (var rsld in rawSellLogData.data)
            {
                SellLogData sellLogData = new SellLogData();
                sellLogData.SoldAmount      = rsld.soldAmount;
                sellLogData.BoughtTimes     = rsld.boughtTimes;
                sellLogData.Market          = rsld.market;
                sellLogData.ProfitPercent   = rsld.profit;
                sellLogData.SoldPrice       = rsld.currentPrice;
                sellLogData.AverageBuyPrice = rsld.avgPrice;
                sellLogData.TotalCost       = sellLogData.SoldAmount * sellLogData.AverageBuyPrice;

                // check if bot is a shortbot via PT API.  Losses on short bot currently showing as gains. Issue #195
                // code removed

                double soldValueRaw       = (sellLogData.SoldAmount * sellLogData.SoldPrice);
                double soldValueAfterFees = soldValueRaw - (soldValueRaw * ((double)rsld.fee / 100));
                sellLogData.SoldValue = soldValueAfterFees;
                sellLogData.Profit    = Math.Round(sellLogData.SoldValue - sellLogData.TotalCost, 8);

                //Convert Unix Timestamp to Datetime
                System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, System.DateTimeKind.Utc);
                dtDateTime = dtDateTime.AddSeconds((double)rsld.soldDate).ToUniversalTime();

                // Profit Trailer sales are saved in UTC
                DateTimeOffset ptSoldDate = DateTimeOffset.Parse(dtDateTime.Year.ToString() + "-" + dtDateTime.Month.ToString("00") + "-" + dtDateTime.Day.ToString("00") + "T" + dtDateTime.Hour.ToString("00") + ":" + dtDateTime.Minute.ToString("00") + ":" + dtDateTime.Second.ToString("00"), CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);

                // Convert UTC sales time to local offset time
                ptSoldDate = ptSoldDate.ToOffset(OffsetTimeSpan);

                sellLogData.SoldDate = ptSoldDate.DateTime;

                _sellLog.Add(sellLogData);
            }
        }