Skip to content

Business Value

Having the ability to annotate every trade with a tag gives a trader insight which type of trades are working for him and which don't. Annotation gives leverage also to coaches that can guide trader in his learning process. A tag example can be that trader loses the most on News events during ECB events (European Central Bank). This means his ability to monetise his trades during ECB events is low and there is a possibility for improvement.

Business Logic

This section will demonstrate through wireframes important functionalities. These functionalities are later broken down into requirements in the Functionalities section.

Trades

By tagging a trade you are essentially adding a label on a trade. This means that we first need to be able to display a list of trades. This is how the agenda should look like.

Tagging example

This trade list has three sections:

  • trade information (red box) - contains information about the trade such as Date, Product, P&L (how much money was earned or lost), Open Time, Close Time, etc.
  • tagging (blue box) - at a first level predefined tags to start tagging. Names on labels are only for inspiration, please find chapter Tag Names to find production names.
  • action (green box) - actions one can do such as display trade detail or add description of a trade

Tags

Type Of Tags

You can add tags. You can remove tags.

Tagging will follow level dependent logic. Level dependent logic means that selection of of first level tag will dictate options for second level tags. What does it mean is displayed below.

Tagging example

There are two types of tags:

  • Fixed tags – predefined, follows level-dependent logic (parent-child logic)
  • Free tags – user-defined

There are currently three levels in tags:

  • 1st level - parent
  • 2nd level - child
  • 3rd level - grandchild

Selecting 1st level fixed tag is a single option - you can only select one tag at a 1st level.

Selecting 2nd level fixed tag is multi-optional:

  • You don't have to select any 2nd level tag, and 1st level should be still able to save
  • You can select one or many 2nd level fixed tags

User can add free tag only at 3rd level, after "Other" tag was selected on 2nd level.

Free Tags

Tagging example

Free tags are always individual to particular trader and trader can type whatever he wants.

Backend must be able to store full tree of dependencies between first level, second level and third level tag.

Tag Flow

Given we have now established the difference between free tag and fixed tag, we can have a look at the live demonstration. This is a mock prototype for inspiration purposes only.

Fixed Tags

Visit this link for Clickable Mock Prototype.

Free Tags

InLine View

From the mock animation in Tag Flow chapter it is clear that we want to make tagging as user friendly as possible. We came to a conclusion that having tags directly in the row next to each trade is more efficient than having them hidden under some tagging button.

This InLine view has a requirement that it needs to expand when first level fixed tag is clicked.

Bulk Tagging

You can add a tag on a single or multiple (bulk tagging) trades. Trade can have unlimited amount of tags.

Tagging example

Date Filters

Tagging example

Filtering of trades will be supported by date filters, see orange section "date filters section" in the image.

When user clicks into search box, search field should expand so user has more room to type. Tagging example

Functionalities

Summary

  • Location of widget in Personal Analytics (x)
  • Tabular Trade Display (x)
  • Table Column Ordering (x)
  • Actions (x)
    • Chart (x)
    • Description (x)
  • Saving And Removing Of Tags (x)
  • Tag Colors (x)
  • Date Filters (x)
  • Search (x)
  • Scrolling (x)
  • Pagination (x)
  • Tag Names (x)
  • Bulk Tagging (x)
  • Table Navigation Menu (x)
  • Smart Row Highlighting (x)
  • Hover over data (x)
  • Keyboard shortcuts (x)
  • Date picker (x)
  • Error and Warning notifications (x)
  • Currency Conventions (x)

Detail

Location

This agenda should be located in Persona Analytics. Between the charts Performance Over Time, Profit & Loss and Calendar Events Full width (like Calendar Events)

Tabular Trade Display

Trades are displayed in rows

Table Column Ordering

Each column has ascending and descending ordering capability.

Columns To Display

  • Date
  • Product
  • P&L
  • Open Time
  • Close Time
  • Side
  • Size

Actions

Each row consists of the actions:

  • Description - ability to add free description to a trade. This description is not attached to a tag, but trade itself
  • Chart - ability to see chart in which is displayed all the entries and exits of the trade

Description

When Description Action icon is clicked on, there are two options (or more) how to display it.

Tagging example

Description has the ability to:

  • Save - save only available after at least one character was typed
  • Delete - delete button only appears when the description was saved

Description Demo

Chart

Chart execution area will display chart integrated from TradingView using, TradingView libraries When icon for Chart Execution is clicked, the area with a chart rolls out (see Entries And Exits)

Entries And Exits

Each trade will receive object from backend with all entries and exits for that particular trade. If trade has more than one entry and one exit, those entries and exits will be displayed on the chart (see image below). If a trade consists of one entry and one exit, that will be displayed on the chart as well.

Tagging example

Exception

If for some reason TradingView is not returning a chart, there should be "Something went wrong." message following the design principles of skyll.

Saving And Removing Of Tags

  • Saving level dependent tags should be done by selecting a tag, NO need to add button "Save".
  • Removing of tags should be done via some visible, clickable x type of a button that is inside the tag itself.

Tag Colors

Each level dependent tag has defined fixed color.

Free tag has also fixed color.

Please design most suitable color map given the tag names. If you feel the tags should not have any color not to disturb user in the table view, please let us know.

Date Filters

There will be these filters:

  • Today - filters out only trades with todays date
  • Yesterday - filters out only yesterday trades
  • Week To Date - filters out trades that started on Sunday until todays date

There will be "Start date - End date" calendar date picker like we are already using with selected dates, including the ability to pick time, not just date. So for today it will look like this:

  • Start date: 10.9.2025, 00:00:00 (UTC)
  • End date: 10.9.2025, :23:59:00 (UTC)

Please follow this exact format.

Custom date selection User can select start and end date directly in the date picker. He can pick start of the year until today for example.

The selection of days should follow same visual logic like we already have for date pickers

Search

  • search single keyword
  • ability to search multiple keywords
  • search is performed by hitting ENTER or clicking on a lens icon at the end of the search box
  • when two keywords are written, AND operation is performed. Example: I type GC fear. I am looking for "GC" keyword AND "fear" keyword
  • search box expands when clicked into, in a minimal state looks like a small lens
  • keywords are NOT case sensitive

Scrolling

When inside the table, internal scrollbar within table should be introduced if there is more than 10 trades displayed.

Default is 10 trades for display.

User can have the ability to choose selection of displaying more 25 or 50 trades to display at once. This should also adjust pagination.

This option is not remembered after logout.

This option should be presented in the bottom right of the trades table.

If more rows is added, the top row displaying the column names, is always visible on top. Like in Google Sheets when you use Freeze row option.

Pagination

Backend should return the ability to display trades by:

  • 10
  • 25
  • 50

Tag Names

1st Level

  • Tech
  • Data
  • Flow
  • CBank
  • News

2nd Level

If one of the below categories is selected, these options are displayed

Tech
  • Candlesticks  
  • Profile  
  • DOM  
  • Footprint  
  • Other  
Data
  • Unemployment  
  • Inflation  
  • Growth  
  • Sentiment  
  • Inventory  
  • Earnings  
  • Other  
Flow
  • MOC  
  • OPEX  
  • Auctions  
  • Opens  
  • Other  
CBank
  • Decision  
  • Presser  
  • Speakers  
  • Sources  
  • Opinion  
  • Other  
News
  • DeltaOne  
  • Bloomberg  
  • Xenith  
  • X  
  • Telegram  
  • Truth  
  • Other

Each category consists of Other section, that leads to 3rd level free tag

Bulk Tagging

User must be able to select multiple trades from the list and bulk tag it at once.

Bulk tagging should follow same tagging logic (levels, free tags, fix tags) principles.

Bulk tagging should provide: "summary" information after tagging. After user selects multiple trades and starts tagging, there should be information about how many trades will be modified.

User should have flexibility to bulk untag the trades as well.

Table Navigation Menu

Tagging example Table navigation menu should consist of:

  • Predefined Date Filters such as Today, Yesterday and Week To Date
  • Search
  • Date Picker (linked to Predefined Date Filters options)

Smart Row Highlighting

Table should have the ability to enable/disable (with one click) smart highlighting directly from the table of trades through ordering of columns, specifically in this case column P&L. What is smart highlighting?

How Does It Work?

Example BEFORE enabling smart highlighting:

Date Product P&L
19.7.2025 FGBL $500
18.7.2025 ES -$1250
17.7.2025 GC -$330
17.7.2025 ES $50
18.7.2025 CL $5000
19.7.2025 ES -$45

Example AFTER enabling smart highlighting:

Date Product P&L
18.7.2025 CL $5000
19.7.2025 FGBL $500
17.7.2025 ES $50
19.7.2025 ES -$45
17.7.2025 GC -$330
18.7.2025 ES -$1250

As you can see, there are two distinct things that happened:

  • table was reordered from highest number to the lowest by P&L
  • biggest winners and biggest losers must stand out
    • some sort of gradient on the number should be applied (ideally color gradient)
  • This disabled/enabled feature should be remembered with every user after logout.

User must have the ability to switch this feature off.

Hover over data

Hover over:

  • "Open Time" and "Close Time" column displays Timezone (in our case UTC)
  • Action icons displays their names, for example hover over a description button would display "Describe your trade" text, or hover over Chart button would read "Display your trade in chart"
  • Product name (such as FGBL, or ES) displays full contract name received from backend
  • P&L column name hover should display: "Gross P&L (USD)"
  • Tag column can say information: "Use key / followed by left or right arrow to select different tags"

Keyboard shortcuts

Step 1:

  • 1) User presses key (forward slash): /
  • 2) Cursor jumps to the first fixed 1st level tag AND becomes visibly highlighted.

Step 2:

  • Arrow keys ←/→ move across tags

Step 3:

  • Hitting enter means selecting the first level tag AND expanding the second level
  • No shortcuts are needed at the second and third level

Date Picker

Has always Start And End date received from backend based on the user action

Selection of dates is at follows:

  • If the Date Picker source is predefined by Filter, in our case, user clicks on button "Yesterday". Date picker selects yesterdays date with the timezone of a trader starting at 00:00:00 and neding at 23:59:59
  • If the date picker is defined by the user, user must have the ability to click into a date picker and selects start and also an end to create a custom range

Only days are allowed to select, no time (hour or minute) selection is needed unless it comes out of the box.

Follows the visual principle of showing which dates have been selected we are currently using.

Error and Warning notifications

There should be one distinct location where we communicate error and warning messages.

Warnings:

  • Backend is not responding in saving or loading trades information, description information or tags information
  • TradingView server is not responding
  • Description
    • Description cannot be saved. Please type at least one character.
    • Failed to save description. Try again later.
    • Failed to delete description. Please refresh and try again.
    • Unsaved changes. Do you want to leave without saving?
  • Search
    • Search failed. Please check your connection.
    • Invalid search input.
    • No results found for your search.
  • No trades found for selected date range.
  • Invalid date range. Start date must be before end date.
  • Unable to load trades. Please refresh the page.
  • Connection lost. Please check your internet and try again.
  • Large number of trades loaded, performance may be affected. (pagination warning)
  • Changes saved, but may take a few moments to update. (when large amount of trades for bulk save have been selected)

Currency Conventions

P&L column must always capture values in this format:
$100
$1,000
$10,000
$100,000
$1,000,000
$10,000,000

or (for mobile or other charts)
$1K
$10K
$100K
$1M
$1.5M

User Roles & Permissions

Tags can be created my account owners only.

When Administrator access personal analytics and selects a trader, he must see this tagging manager as if trader is looking at it (Individual Coach View is applied)

Exceptions

  • Export into CSV is not allowed
  • Fixed tags are only managed in the backend database
  • Bulk edits have no rollback option, changes in the tags are not audited

Pitfalls (What Not To Forget)

  • unlimited amount of free tags can create an overload on UI. UI must be able to handle through some grid logic how adding many tags is stacking tags next to each other without overflowing from screen
  • most be optimised for mobile as well

TODO

  • product mapping between TradingView and Skyll, served from backend