Объединение полей для исторического c обзора эффективности портфеля акций - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь создать приложение для портфеля акций, но у меня возникают проблемы при создании обзора истории 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 за последние годы (конец капитала цены закрытия дня) для каждого портфеля и сложения их вместе, чтобы получить представление о том, как весь портфель работал в течение года.

Но я полностью застрял в том, как решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...