2020-05-06 04:38:57 +00:00
|
|
|
<template>
|
2022-04-18 17:54:17 +00:00
|
|
|
<div v-if="botStore.activeBot.botState">
|
2020-05-25 18:41:17 +00:00
|
|
|
<p>
|
2022-04-18 17:54:17 +00:00
|
|
|
Running Freqtrade <strong>{{ botStore.activeBot.version }}</strong>
|
2020-05-25 18:41:17 +00:00
|
|
|
</p>
|
2020-05-06 04:38:57 +00:00
|
|
|
<p>
|
|
|
|
Running with
|
2020-05-06 17:38:52 +00:00
|
|
|
<strong>
|
2022-04-18 17:54:17 +00:00
|
|
|
{{ botStore.activeBot.botState.max_open_trades }}x{{
|
|
|
|
botStore.activeBot.botState.stake_amount
|
|
|
|
}}
|
|
|
|
{{ botStore.activeBot.botState.stake_currency }}
|
2020-05-06 17:38:52 +00:00
|
|
|
</strong>
|
2020-05-06 04:38:57 +00:00
|
|
|
on
|
2022-04-18 17:54:17 +00:00
|
|
|
<strong>{{ botStore.activeBot.botState.exchange }}</strong> in
|
|
|
|
<strong>{{ botStore.activeBot.botState.trading_mode || 'spot' }}</strong> markets, with
|
2023-02-08 06:08:09 +00:00
|
|
|
Strategy <strong>{{ botStore.activeBot.botState.strategy }}</strong
|
|
|
|
>.
|
|
|
|
</p>
|
|
|
|
<p v-if="'stoploss_on_exchange' in botStore.activeBot.botState">
|
|
|
|
Stoploss on exchange is
|
|
|
|
<strong>{{
|
|
|
|
botStore.activeBot.botState.stoploss_on_exchange ? 'enabled' : 'disabled'
|
|
|
|
}}</strong
|
|
|
|
>.
|
2020-05-06 04:38:57 +00:00
|
|
|
</p>
|
|
|
|
<p>
|
2022-04-18 17:54:17 +00:00
|
|
|
Currently <strong>{{ botStore.activeBot.botState.state }}</strong
|
2022-04-08 05:44:28 +00:00
|
|
|
>,
|
2023-04-22 16:29:36 +00:00
|
|
|
<strong>force entry: {{ botStore.activeBot.botState.force_entry_enable }}</strong>
|
2020-05-06 17:38:52 +00:00
|
|
|
</p>
|
|
|
|
<p>
|
2022-04-18 17:54:17 +00:00
|
|
|
<strong>{{ botStore.activeBot.botState.dry_run ? 'Dry-Run' : 'Live' }}</strong>
|
2020-05-06 04:38:57 +00:00
|
|
|
</p>
|
2022-04-09 06:48:43 +00:00
|
|
|
<hr />
|
|
|
|
<p>
|
2022-04-18 17:54:17 +00:00
|
|
|
Avg Profit {{ formatPercent(botStore.activeBot.profit.profit_all_ratio_mean) }} (∑
|
|
|
|
{{ formatPercent(botStore.activeBot.profit.profit_all_ratio_sum) }}) in
|
|
|
|
{{ botStore.activeBot.profit.trade_count }} Trades, with an average duration of
|
|
|
|
{{ botStore.activeBot.profit.avg_duration }}. Best pair:
|
|
|
|
{{ botStore.activeBot.profit.best_pair }}.
|
2022-04-09 06:48:43 +00:00
|
|
|
</p>
|
2022-04-18 17:54:17 +00:00
|
|
|
<p v-if="botStore.activeBot.profit.first_trade_timestamp">
|
2023-04-08 14:37:39 +00:00
|
|
|
<span v-if="botStore.activeBot.profit.bot_start_timestamp" class="d-block">
|
|
|
|
Bot start date:
|
|
|
|
<strong>
|
|
|
|
<DateTimeTZ :date="botStore.activeBot.profit.bot_start_timestamp" show-timezone />
|
|
|
|
</strong>
|
|
|
|
</span>
|
|
|
|
<span class="d-block">
|
|
|
|
First trade opened:
|
|
|
|
<strong>
|
|
|
|
<DateTimeTZ :date="botStore.activeBot.profit.first_trade_timestamp" show-timezone />
|
|
|
|
</strong>
|
|
|
|
</span>
|
|
|
|
<span class="d-block">
|
|
|
|
Last trade opened:
|
|
|
|
<strong>
|
|
|
|
<DateTimeTZ :date="botStore.activeBot.profit.latest_trade_timestamp" show-timezone />
|
|
|
|
</strong>
|
|
|
|
</span>
|
2022-06-18 15:14:30 +00:00
|
|
|
</p>
|
|
|
|
<p>
|
2023-04-08 14:37:39 +00:00
|
|
|
<span v-if="botStore.activeBot.profit.profit_factor" class="d-block">
|
2022-06-18 15:14:30 +00:00
|
|
|
Profit factor:
|
|
|
|
{{ botStore.activeBot.profit.profit_factor.toFixed(2) }}
|
|
|
|
</span>
|
2023-04-08 14:37:39 +00:00
|
|
|
<span v-if="botStore.activeBot.profit.trading_volume" class="d-block">
|
2022-06-18 15:14:30 +00:00
|
|
|
Trading volume:
|
|
|
|
{{
|
|
|
|
formatPriceCurrency(
|
|
|
|
botStore.activeBot.profit.trading_volume,
|
|
|
|
botStore.activeBot.botState.stake_currency,
|
|
|
|
botStore.activeBot.botState.stake_currency_decimals ?? 3,
|
|
|
|
)
|
|
|
|
}}
|
|
|
|
</span>
|
2022-04-09 06:48:43 +00:00
|
|
|
</p>
|
2023-09-05 04:53:21 +00:00
|
|
|
<b-table
|
|
|
|
v-if="botStore.activeBot.profit"
|
|
|
|
small
|
|
|
|
borderless
|
|
|
|
:items="profitItems"
|
|
|
|
:fields="profitFields"
|
|
|
|
>
|
|
|
|
</b-table>
|
2020-05-06 04:38:57 +00:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
2023-05-09 17:58:23 +00:00
|
|
|
<script setup lang="ts">
|
2023-09-05 04:53:21 +00:00
|
|
|
import { formatPercent, formatPriceCurrency, timestampms } from '@/shared/formatters';
|
2021-07-01 18:41:55 +00:00
|
|
|
import DateTimeTZ from '@/components/general/DateTimeTZ.vue';
|
2020-09-02 18:19:09 +00:00
|
|
|
|
2022-04-18 17:54:17 +00:00
|
|
|
import { useBotStore } from '@/stores/ftbotwrapper';
|
2023-09-05 04:53:21 +00:00
|
|
|
import { TableField, TableItem } from 'bootstrap-vue-next';
|
|
|
|
import { computed } from 'vue';
|
2020-08-09 13:19:16 +00:00
|
|
|
|
2023-05-09 17:58:23 +00:00
|
|
|
const botStore = useBotStore();
|
2023-09-05 04:53:21 +00:00
|
|
|
|
|
|
|
const profitFields: TableField[] = [
|
|
|
|
{ key: 'metric', label: 'Metric' },
|
|
|
|
{ key: 'value', label: 'Value' },
|
|
|
|
];
|
|
|
|
|
|
|
|
const profitItems = computed<TableItem[]>(() => {
|
|
|
|
return [
|
|
|
|
{
|
|
|
|
metric: 'Total Trade count',
|
|
|
|
value: `${botStore.activeBot.profit.trade_count}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Bot started',
|
|
|
|
value: timestampms(botStore.activeBot.profit.bot_start_timestamp ?? 0),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'First trade opened',
|
|
|
|
value: timestampms(botStore.activeBot.profit.first_trade_timestamp),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Latest trade opened',
|
|
|
|
value: timestampms(botStore.activeBot.profit.latest_trade_timestamp),
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Win / Loss',
|
|
|
|
value: `${botStore.activeBot.profit.winning_trades} / ${botStore.activeBot.profit.losing_trades}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Winrate',
|
|
|
|
value: `${
|
|
|
|
botStore.activeBot.profit.winrate ? formatPercent(botStore.activeBot.profit.winrate) : 'N/A'
|
|
|
|
}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Expectancy (ratio)',
|
|
|
|
value: `${
|
|
|
|
botStore.activeBot.profit.expectancy
|
|
|
|
? botStore.activeBot.profit.expectancy.toFixed(2)
|
|
|
|
: 'N/A'
|
|
|
|
} (${
|
|
|
|
botStore.activeBot.profit.expectancy_ratio
|
|
|
|
? botStore.activeBot.profit.expectancy_ratio.toFixed(2)
|
|
|
|
: 'N/A'
|
|
|
|
})`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Avg Duration',
|
|
|
|
value: `${botStore.activeBot.profit.avg_duration}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Best performing',
|
|
|
|
value: `${botStore.activeBot.profit.best_pair}: ${formatPercent(
|
|
|
|
botStore.activeBot.profit.best_pair_profit_ratio,
|
|
|
|
2,
|
|
|
|
)}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Trading volume',
|
|
|
|
value: `${formatPriceCurrency(
|
|
|
|
botStore.activeBot.profit.trading_volume ?? 0,
|
|
|
|
botStore.activeBot.botState.stake_currency,
|
|
|
|
botStore.activeBot.botState.stake_currency_decimals ?? 3,
|
|
|
|
)}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Profit factor',
|
|
|
|
value: `${
|
|
|
|
botStore.activeBot.profit.profit_factor
|
|
|
|
? botStore.activeBot.profit.profit_factor.toFixed(2)
|
|
|
|
: 'N/A'
|
|
|
|
}`,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
metric: 'Max Drawdown',
|
|
|
|
value: `${
|
|
|
|
botStore.activeBot.profit.max_drawdown
|
|
|
|
? formatPercent(botStore.activeBot.profit.max_drawdown, 2)
|
|
|
|
: 'N/A'
|
|
|
|
} (${
|
|
|
|
botStore.activeBot.profit.max_drawdown_abs
|
|
|
|
? formatPriceCurrency(
|
|
|
|
botStore.activeBot.profit.max_drawdown_abs,
|
|
|
|
botStore.activeBot.botState.stake_currency,
|
|
|
|
botStore.activeBot.botState.stake_currency_decimals ?? 3,
|
|
|
|
)
|
|
|
|
: 'N/A'
|
|
|
|
}) ${
|
|
|
|
botStore.activeBot.profit.max_drawdown_start_timestamp &&
|
|
|
|
botStore.activeBot.profit.max_drawdown_end_timestamp
|
|
|
|
? 'from ' +
|
|
|
|
timestampms(botStore.activeBot.profit.max_drawdown_start_timestamp) +
|
|
|
|
' to ' +
|
|
|
|
timestampms(botStore.activeBot.profit.max_drawdown_end_timestamp)
|
|
|
|
: ''
|
|
|
|
}`,
|
|
|
|
},
|
|
|
|
];
|
|
|
|
});
|
2020-05-06 04:38:57 +00:00
|
|
|
</script>
|