sync: ml-ui-connection delta specs to main specs
This commit is contained in:
parent
9a549b8c7a
commit
c0f5654450
15 changed files with 369 additions and 6 deletions
61
openspec/specs/talib-pattern-ui/spec.md
Normal file
61
openspec/specs/talib-pattern-ui/spec.md
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
## Purpose
|
||||
|
||||
Provide a UI panel for detecting TA-Lib candlestick patterns on the current chart and managing the resulting annotations.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: TA-Lib pattern selection panel
|
||||
The system SHALL display a collapsible "TA-Lib Patterns" panel in the sidebar. The panel SHALL list all available CDL pattern functions grouped by category (single-candle, multi-candle). Each pattern SHALL have a checkbox for selection. The panel SHALL include a "Select All" / "Deselect All" toggle and a "Detect Patterns" action button.
|
||||
|
||||
#### Scenario: Display available patterns
|
||||
- **WHEN** the user expands the TA-Lib Patterns panel
|
||||
- **THEN** all available CDL pattern names are listed with checkboxes, grouped by category, all unchecked by default
|
||||
|
||||
#### Scenario: Select specific patterns
|
||||
- **WHEN** the user checks "Engulfing" and "Hammer" checkboxes
|
||||
- **THEN** those two patterns are selected and the "Detect Patterns" button shows the count "(2 selected)"
|
||||
|
||||
#### Scenario: Select all patterns
|
||||
- **WHEN** the user clicks "Select All"
|
||||
- **THEN** all pattern checkboxes become checked
|
||||
|
||||
### Requirement: Pattern detection execution
|
||||
The system SHALL send selected patterns and current chart candles to the backend for detection when the user clicks "Detect Patterns". The system SHALL display a loading state during detection and show results as span annotations on the chart upon completion.
|
||||
|
||||
#### Scenario: Run pattern detection
|
||||
- **WHEN** the user has selected patterns and clicks "Detect Patterns"
|
||||
- **THEN** the system sends current chart candles and selected pattern names to `POST /api/patterns/detect`, shows a loading spinner, and upon response saves returned annotations to the database via `POST /api/span-annotations`
|
||||
|
||||
#### Scenario: No patterns selected
|
||||
- **WHEN** the user clicks "Detect Patterns" with no patterns selected
|
||||
- **THEN** the button is disabled and nothing happens
|
||||
|
||||
#### Scenario: No chart loaded
|
||||
- **WHEN** the user clicks "Detect Patterns" with no chart loaded
|
||||
- **THEN** the system shows an error message "Load a chart first"
|
||||
|
||||
### Requirement: Pattern results as span annotations
|
||||
The system SHALL save detected patterns as span annotations with `source: "talib"`. Each annotation SHALL include the pattern label (e.g., "Bullish Engulfing"), confidence from TA-Lib, start_time, and end_time. The annotations SHALL appear immediately on the chart after detection.
|
||||
|
||||
#### Scenario: Pattern saved as span annotation
|
||||
- **WHEN** TA-Lib detects a "Bullish Engulfing" pattern at candles T10-T12
|
||||
- **THEN** a span annotation is created with `label: "Bullish Engulfing"`, `source: "talib"`, `start_time: T10`, `end_time: T12`, and it renders on the chart
|
||||
|
||||
#### Scenario: Multiple patterns detected
|
||||
- **WHEN** detection finds 5 Engulfing and 3 Hammer patterns
|
||||
- **THEN** 8 span annotations are created, each with appropriate label and timestamps
|
||||
|
||||
### Requirement: TA-Lib annotation management
|
||||
The system SHALL allow users to bulk delete all TA-Lib-generated annotations or delete them by pattern type. The panel SHALL show a count of detected patterns and a "Clear All TA-Lib" button. Individual TA-Lib annotations SHALL also be deletable from the SpanAnnotationList.
|
||||
|
||||
#### Scenario: Bulk delete all TA-Lib annotations
|
||||
- **WHEN** the user clicks "Clear All TA-Lib"
|
||||
- **THEN** all span annotations with `source: "talib"` for the current chart are deleted
|
||||
|
||||
#### Scenario: Delete by pattern type
|
||||
- **WHEN** the user clicks the delete icon next to "Engulfing" in the results summary
|
||||
- **THEN** all span annotations with `source: "talib"` and label containing "Engulfing" for the current chart are deleted
|
||||
|
||||
#### Scenario: Detection results summary
|
||||
- **WHEN** pattern detection completes with results
|
||||
- **THEN** the panel shows a summary: total patterns found, grouped by pattern name with counts (e.g., "Engulfing: 5, Hammer: 3")
|
||||
Loading…
Add table
Add a link
Reference in a new issue