Я пытаюсь создать приложение для портфеля акций, но у меня возникают проблемы при создании обзора истории c эффективности портфеля. У меня есть четыре модели на моем django сайте:
Одна для деталей компании
class CompanyDetail(models.Model):
ticker = models.CharField(max_length=100)
name = models.CharField(max_length=250)
description = models.TextField()
def __str__(self):
return self.ticker
Одна для истории c цены для каждой компании:
class EquityEOD(models.Model):
equity = models.ForeignKey(
'asset_details.CompanyDetail',
on_delete=models.CASCADE,
)
date = models.DateField(default=date.today)
close = models.DecimalField(decimal_places=4, max_digits=15, default=0)
def __str__(self):
return self.equity.ticker
Один для информации о портфеле:
class Portfolio(models.Model):
portfolio_name = models.CharField(max_length=200)
def __str__(self):
return self.portfolio_name
И, наконец, модель для каждой сделки
class Trade(models.Model):
portfolio = models.ForeignKey(
Portfolio,
on_delete=models.CASCADE,
)
equity = models.ForeignKey(
'asset_details.CompanyDetail',
on_delete=models.CASCADE,
)
trade_date = models.DateField(default=date.today)
amount = models.IntegerField(default=0)
buy_price = models.DecimalField(decimal_places=2, max_digits=15, default=0)
def totalcost (self):
totalcost = self.buy_price*self.amount
return totalcost
def lastEOD (self):
lastEOD = EquityEOD.objects.filter(equity=self.equity).order_by('-date')[0]
return lastEOD
def holdingvalue(self):
holdingvalue = self.lastEOD().close*self.amount
return holdingvalue
def __str__(self):
return self.equity
Теперь я пытаюсь взять EquityEOD за последние годы (конец капитала цены закрытия дня) для каждого портфеля и сложения их вместе, чтобы получить представление о том, как весь портфель работал в течение года.
Но я полностью застрял в том, как решить эту проблему.