Configure Alerts vs Fills Matching
Matching settings define which records are eligible to pair. They are an investigation boundary, not a quality score. Record them with every saved result.
Define a comparable scope
Section titled “Define a comparable scope”In Alerts vs Fills:
- Select one Alpaca connection.
- Enter one symbol. The page starts with
TSLA, so replace it when reviewing a different instrument. - Choose a date and time range that contains both alert and fill records.
- Choose Webhook or CSV as the TradingView source.
- For a CSV with timestamps that do not include a timezone, select the timezone
that produced those timestamps.
localmeans the browser timezone.
Start with a single trading session when diagnosing a new mismatch. A smaller scope makes timezone errors, missing legs, and duplicate records easier to see.
Choose the TradingView source
Section titled “Choose the TradingView source”| Source | Use it when | Check before matching |
|---|---|---|
| Webhook | Algo Trade Analytics captured the live alert payloads | The endpoint was active and the selected window contains those records |
| CSV | You are reviewing an exported TradingView trade list | The header row parsed, timestamps use the selected timezone, and the symbol matches the Alpaca records |
CSV import preserves the source columns. Use a TradingView export rather than a hand-authored five-column example; see the TradingView CSV workflow.
Current starting values
Section titled “Current starting values”The page resets matching controls when it opens:
| Setting | Starting value | Meaning |
|---|---|---|
| Maximum Time Difference | 200 seconds | The latest eligible broker record after the TradingView event |
| Max Price Diff | 5% | Maximum absolute percentage difference between alert and broker prices |
| Time unit | Seconds | The time control can also be expressed in milliseconds |
CSV timestamps can have minute-level precision. The matcher therefore applies at least a 60-second window to CSV input, even if the visible time setting is lower.
These values are neutral product defaults, not recommended limits for a market, strategy, or order type.
What must match
Section titled “What must match”For each TradingView row, the matcher:
-
Uses the selected Alpaca symbol. If the TradingView row names a different symbol, that row is rejected; rows without a symbol inherit the loaded symbol.
-
Maps the TradingView entry or exit and long or short direction to the corresponding broker position intent.
-
Rejects broker candidates whose matching timestamp is before the TradingView event.
-
Chooses the closest remaining candidate by time within the configured window.
-
Accepts the pair only if its type, direction, time difference, and price difference satisfy the configured boundary. A broker record is consumed once it is successfully paired.
The matcher uses the broker submission timestamp when it exists and otherwise the fill timestamp. The page also reports fill timing and quantity differences, but quantity is not currently a match criterion.
Tune from known records
Section titled “Tune from known records”-
Pick one alert and broker record that you can verify outside the aggregate metrics.
-
Correct the symbol, timestamp timezone, and entry/exit direction before changing tolerances.
-
Use the smallest time and price boundaries that include the explainable pair.
-
Widen one dimension at a time. After each change, inspect whether unrelated records began pairing.
-
Repeat with several records from the same execution context. Save the chosen settings and window with the result.
If everything remains unmatched, do not keep widening indefinitely. Compare raw source rows for missing alerts, missing fills, symbol aliases, reversed direction, or records outside the selected range.
Understand the result groups
Section titled “Understand the result groups”| Group | What it establishes |
|---|---|
| Full Match | Both entry and exit rows for the trade number paired successfully |
| Entry Only | An entry paired; no paired exit is present in the comparison |
| Exit Only | An exit paired; no paired entry is present in the comparison |
| Unmatched alert | A TradingView row did not find an eligible broker record |
| Unmatched fill | A broker record remained after TradingView rows were processed |
These groups identify records to investigate. They do not by themselves prove why an order was absent, delayed, or filled at a different price.