Add absolute Profit to apiserver
This commit is contained in:
parent
2ecb42a639
commit
6b2a38ccfb
@ -815,18 +815,20 @@ class Trade(_DECL_BASE, LocalTrade):
|
|||||||
pair_rates = Trade.query.with_entities(
|
pair_rates = Trade.query.with_entities(
|
||||||
Trade.pair,
|
Trade.pair,
|
||||||
func.sum(Trade.close_profit).label('profit_sum'),
|
func.sum(Trade.close_profit).label('profit_sum'),
|
||||||
|
func.sum(Trade.close_profit_abs).label('profit_sum_abs'),
|
||||||
func.count(Trade.pair).label('count')
|
func.count(Trade.pair).label('count')
|
||||||
).filter(Trade.is_open.is_(False))\
|
).filter(Trade.is_open.is_(False))\
|
||||||
.group_by(Trade.pair) \
|
.group_by(Trade.pair) \
|
||||||
.order_by(desc('profit_sum')) \
|
.order_by(desc('profit_sum_abs')) \
|
||||||
.all()
|
.all()
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
'pair': pair,
|
'pair': pair,
|
||||||
'profit': rate,
|
'profit': profit,
|
||||||
|
'profit_abs': profit_abs,
|
||||||
'count': count
|
'count': count
|
||||||
}
|
}
|
||||||
for pair, rate, count in pair_rates
|
for pair, profit, profit_abs, count in pair_rates
|
||||||
]
|
]
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -57,6 +57,7 @@ class Count(BaseModel):
|
|||||||
class PerformanceEntry(BaseModel):
|
class PerformanceEntry(BaseModel):
|
||||||
pair: str
|
pair: str
|
||||||
profit: float
|
profit: float
|
||||||
|
profit_abs: float
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
|
@ -710,7 +710,7 @@ def test_api_stats(botclient, mocker, ticker, fee, markets,):
|
|||||||
assert 'draws' in rc.json()['durations']
|
assert 'draws' in rc.json()['durations']
|
||||||
|
|
||||||
|
|
||||||
def test_api_performance(botclient, mocker, ticker, fee):
|
def test_api_performance(botclient, fee):
|
||||||
ftbot, client = botclient
|
ftbot, client = botclient
|
||||||
patch_get_signal(ftbot, (True, False))
|
patch_get_signal(ftbot, (True, False))
|
||||||
|
|
||||||
@ -728,6 +728,7 @@ def test_api_performance(botclient, mocker, ticker, fee):
|
|||||||
|
|
||||||
)
|
)
|
||||||
trade.close_profit = trade.calc_profit_ratio()
|
trade.close_profit = trade.calc_profit_ratio()
|
||||||
|
trade.close_profit_abs = trade.calc_profit()
|
||||||
Trade.query.session.add(trade)
|
Trade.query.session.add(trade)
|
||||||
|
|
||||||
trade = Trade(
|
trade = Trade(
|
||||||
@ -743,14 +744,16 @@ def test_api_performance(botclient, mocker, ticker, fee):
|
|||||||
close_rate=0.391
|
close_rate=0.391
|
||||||
)
|
)
|
||||||
trade.close_profit = trade.calc_profit_ratio()
|
trade.close_profit = trade.calc_profit_ratio()
|
||||||
|
trade.close_profit_abs = trade.calc_profit()
|
||||||
|
|
||||||
Trade.query.session.add(trade)
|
Trade.query.session.add(trade)
|
||||||
Trade.query.session.flush()
|
Trade.query.session.flush()
|
||||||
|
|
||||||
rc = client_get(client, f"{BASE_URI}/performance")
|
rc = client_get(client, f"{BASE_URI}/performance")
|
||||||
assert_response(rc)
|
assert_response(rc)
|
||||||
assert len(rc.json()) == 2
|
assert len(rc.json()) == 2
|
||||||
assert rc.json() == [{'count': 1, 'pair': 'LTC/ETH', 'profit': 7.61},
|
assert rc.json() == [{'count': 1, 'pair': 'LTC/ETH', 'profit': 7.61, 'profit_abs': 0.01872279},
|
||||||
{'count': 1, 'pair': 'XRP/ETH', 'profit': -5.57}]
|
{'count': 1, 'pair': 'XRP/ETH', 'profit': -5.57, 'profit_abs': -0.1150375}]
|
||||||
|
|
||||||
|
|
||||||
def test_api_status(botclient, mocker, ticker, fee, markets):
|
def test_api_status(botclient, mocker, ticker, fee, markets):
|
||||||
|
Loading…
Reference in New Issue
Block a user