Add indicators fetcher, rich dashboard renderer, and remove trade executor/status
This commit is contained in:
90
WIKI/dashboard_configuration.md
Normal file
90
WIKI/dashboard_configuration.md
Normal file
@ -0,0 +1,90 @@
|
||||
# Dashboard Configuration Guide
|
||||
|
||||
This guide explains how to configure which tables are displayed on the live terminal dashboard.
|
||||
|
||||
## Overview
|
||||
|
||||
The dashboard is rendered by the `DashboardRenderer` class in `dashboard.py`. It currently supports two tables:
|
||||
|
||||
| Table Key | Title | Description |
|
||||
|-----------|-------|-------------|
|
||||
| `market` | Market Dashboard | Live prices, best bid/ask, gap, and direction for watched coins |
|
||||
| `strategies` | Strategies | Signal, signal price, last change, timeframe, and size for each enabled strategy |
|
||||
|
||||
Each table can be independently enabled or disabled. When only one table is visible, it takes the full terminal width. When both are visible, they split side-by-side.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Default Visibility
|
||||
|
||||
The default table visibility is set when `DashboardRenderer` is instantiated in `main_app.py` (`MainApp.__init__`):
|
||||
|
||||
```python
|
||||
self.renderer = DashboardRenderer(table_visibility={
|
||||
"market": True,
|
||||
"strategies": False,
|
||||
})
|
||||
```
|
||||
|
||||
By default, the **market table is enabled** and the **strategies table is disabled**.
|
||||
|
||||
### Changing Default Visibility
|
||||
|
||||
To change which tables are shown by default, edit the `table_visibility` dict in `main_app.py` (`MainApp.__init__`, line 349):
|
||||
|
||||
```python
|
||||
self.renderer = DashboardRenderer(table_visibility={
|
||||
"market": True,
|
||||
"strategies": True, # enable strategies table
|
||||
})
|
||||
```
|
||||
|
||||
### Runtime Toggling
|
||||
|
||||
Tables can be toggled at runtime through the `MainApp.toggle_table()` method, which delegates to `DashboardRenderer.toggle_table()`:
|
||||
|
||||
```python
|
||||
# Flip the strategies table on/off
|
||||
app.toggle_table("strategies")
|
||||
|
||||
# Explicitly enable
|
||||
app.toggle_table("strategies", enabled=True)
|
||||
|
||||
# Explicitly disable
|
||||
app.toggle_table("strategies", enabled=False)
|
||||
```
|
||||
|
||||
The same methods are available directly on the renderer:
|
||||
|
||||
```python
|
||||
renderer = DashboardRenderer()
|
||||
renderer.toggle_table("market") # flip
|
||||
renderer.toggle_table("strategies", False) # disable
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
### DashboardRenderer (`dashboard.py`)
|
||||
|
||||
- `__init__(console=None, table_visibility=None)` — accepts an optional `table_visibility` dict. If not provided, defaults to `{"market": True, "strategies": False}`.
|
||||
- `toggle_table(table_name, enabled=None)` — flips the visibility state when `enabled` is `None`, or sets it to the given boolean. Raises `ValueError` for unknown table names.
|
||||
- `build_layout(...)` — conditionally builds only the tables that are enabled, then arranges them:
|
||||
- **One table:** `Layout(table)` — full width
|
||||
- **Two tables:** `Layout.split_row(Layout(t1), Layout(t2))` — side-by-side
|
||||
- **Zero tables:** empty `Layout`
|
||||
|
||||
### MainApp (`main_app.py`)
|
||||
|
||||
- `MainApp.__init__` creates the `DashboardRenderer` with the `table_visibility` config.
|
||||
- `MainApp.toggle_table(table_name, enabled=None)` delegates to the renderer for runtime toggling.
|
||||
- `MainApp.display_dashboard()` calls `renderer.build_layout()` which respects the current visibility settings.
|
||||
|
||||
## File Reference
|
||||
|
||||
| File | Line | Description |
|
||||
|------|------|-------------|
|
||||
| `dashboard.py` | 22 | `DashboardRenderer.__init__` — accepts `table_visibility` parameter |
|
||||
| `dashboard.py` | 32 | `toggle_table()` method — flips or sets table visibility |
|
||||
| `dashboard.py` | 172 | `build_layout()` — conditionally includes tables based on visibility |
|
||||
| `main_app.py` | 349 | `MainApp.__init__` — sets default `table_visibility` |
|
||||
| `main_app.py` | 385 | `MainApp.toggle_table()` — runtime toggle method |
|
||||
Reference in New Issue
Block a user