diff options
Diffstat (limited to 'app/trading/models.py')
-rw-r--r-- | app/trading/models.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/app/trading/models.py b/app/trading/models.py index 720b834..d96970f 100644 --- a/app/trading/models.py +++ b/app/trading/models.py @@ -223,8 +223,21 @@ class LuxOptionPurchase(models.Model): def __str__(self): return str(self.symbol) + def get_absolute_url(self): + return reverse('luxtrade:option-update', kwargs={"pk": self.pk}) + def get_contract_count(self): - return self.luxoptioncontact_set.count() + return self.luxoptioncontract_set.count() + + def profit_loss(self): + total = 0 + for option in self.luxoptioncontract_set.all(): + if option.contract_close_price: + pl = option.contract_close_price - option.contract_open_price + else: + pl = 0 + total = total + pl + return total*100 @property def stop_price(self): @@ -232,7 +245,7 @@ class LuxOptionPurchase(models.Model): @property def total_invested(self): - return round(self.get_contract_count()*(self.luxoptioncontact_set.first().contract_open_price*100)) + return round(self.get_contract_count()*(self.luxoptioncontract_set.first().contract_open_price*100)) @property def trade_risk(self): @@ -244,11 +257,11 @@ class LuxOptionPurchase(models.Model): @property def sell_half_at(self): - return self.luxoptioncontact_set.first().contract_open_price*1.25 + return self.luxoptioncontract_set.first().contract_open_price*1.25 @property def contract_price(self): - return self.luxoptioncontact_set.first().contract_open_price + return self.luxoptioncontract_set.first().contract_open_price def save(self, *args, **kwargs): if self.status == 1 and not self.close_date: @@ -259,7 +272,7 @@ class LuxOptionPurchase(models.Model): super(LuxOptionPurchase, self).save() -class LuxOptionContact(models.Model): +class LuxOptionContract(models.Model): symbol = models.CharField(max_length=256) strike_price = models.FloatField() expiration_date = models.DateField() |