Improve botComparisonList ...

This commit is contained in:
Matthias 2021-09-03 17:27:20 +02:00
parent 4f19e9e326
commit 4cd0a1344a
2 changed files with 35 additions and 5 deletions

View File

@ -13,8 +13,9 @@
</template>
<script lang="ts">
import { formatPrice } from '@/shared/formatters';
import { MultiBotStoreGetters } from '@/store/modules/botStoreWrapper';
import { BotDescriptors, ProfitInterface } from '@/types';
import { BotDescriptors, BotState, ProfitInterface } from '@/types';
import { Component, Vue } from 'vue-property-decorator';
import { namespace } from 'vuex-class';
@ -24,26 +25,50 @@ const ftbot = namespace('ftbot');
export default class BotComparisonList extends Vue {
@ftbot.Getter [MultiBotStoreGetters.allProfit]!: Record<string, ProfitInterface>;
@ftbot.Getter [MultiBotStoreGetters.allOpenTradeCount]!: Record<string, number>;
@ftbot.Getter [MultiBotStoreGetters.allBotState]!: Record<string, BotState>;
@ftbot.Getter [MultiBotStoreGetters.allAvailableBots]!: BotDescriptors;
get tableItems() {
const val: any[] = [];
let closedSum = 0;
let openProfitSum = 0;
let decimals = 3;
Object.entries(this.allProfit).forEach(([k, v]) => {
// TODO: handle one inactive bot ...
val.push({
botId: this.allAvailableBots[k].botName,
profitClosed: `${v.profit_closed_coin || 'N/A'} `,
profitClosedPercent: `${v.profit_closed_percent_sum || 'N/A'} %`,
trades: `${this.allOpenTradeCount[k]} / ${this.allBotState[k]?.max_open_trades}`,
profitClosed: `${
formatPrice(v.profit_closed_coin, this.allBotState[k]?.stake_currency_decimals) || 'N/A'
} `,
profitClosedPercent: `${v.profit_closed_percent_sum || 'N/A'}`,
profitOpenPercent: v.profit_all_percent_sum,
profitOpen: v.profit_all_coin,
winVsLoss: `${v.winning_trades || 'N/A'} / ${v.losing_trades || 'N/A'}`,
});
if (v.profit_closed_coin !== undefined) {
closedSum += v.profit_closed_coin;
openProfitSum += v.profit_all_coin;
decimals = this.allBotState[k]?.stake_currency_decimals || decimals;
}
});
val.push({
botId: 'Summary',
profitClosed: formatPrice(closedSum, decimals),
profitClosedPercent: '',
profitOpenPercent: '',
profitOpen: '',
winVsLoss: '',
});
return val;
}
tableFields: Record<string, string | Function>[] = [
{ key: 'botId', label: 'ID' },
{ key: 'botId', label: 'Bot' },
{ key: 'trades', label: 'Trades' },
{ key: 'profitClosed', label: 'Closed Profit' },
{ key: 'profitClosedPercent', label: 'Closed Profit %' },
{ key: 'winVsLoss', label: 'W/L' },

View File

@ -21,8 +21,11 @@ export enum MultiBotStoreGetters {
// Automatically created entries
allIsBotOnline = 'allIsBotOnline',
allAutoRefresh = 'allAutoRefresh',
allClosedTrades = 'allClosedTrades',
allProfit = 'allProfit',
allOpenTrades = 'allOpenTrades',
allOpenTradeCount = 'allOpenTradeCount',
allClosedTrades = 'allClosedTrades',
allBotState = 'allBotState',
}
const createAllGetters = [
@ -31,7 +34,9 @@ const createAllGetters = [
'closedTrades',
'profit',
'openTrades',
'openTradeCount',
'closedTrades',
'botState',
];
export default function createBotStore(store) {