use Decimal for profit calculation

This commit is contained in:
gcarq 2017-11-01 02:51:10 +01:00
parent cd18629433
commit 99724e2458

View File

@ -3,6 +3,7 @@ from datetime import datetime
from typing import Optional, Dict from typing import Optional, Dict
import arrow import arrow
from decimal import Decimal, getcontext
from sqlalchemy import Boolean, Column, DateTime, Float, Integer, String, create_engine from sqlalchemy import Boolean, Column, DateTime, Float, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm.scoping import scoped_session from sqlalchemy.orm.scoping import scoped_session
@ -103,4 +104,6 @@ class Trade(Base):
If rate is not set self.close_rate will be used If rate is not set self.close_rate will be used
:return: profit in percentage as float :return: profit in percentage as float
""" """
return (rate or self.close_rate - self.open_rate) / self.open_rate - self.fee getcontext().prec = 8
return float((Decimal(rate or self.close_rate) - Decimal(self.open_rate))
/ Decimal(self.open_rate) - Decimal(self.fee))