Fill data actions
Press one button in the extension to copy prices, direction, and other trade details from the page into your trading journal form.
What you get
Fill data actions read values already shown on a chart or broker page you enabled, then populate matching fields on the open or close trade form — so you spend less time retyping.
How to set one up
In the web app, create an action and map each form field (symbol, direction, entry price, and so on) to the spot on the page that shows that value. Direction and similar choice fields can translate page wording (for example buy/sell) into journal values (long/short).
Site pattern
The site field must match an enabled-site entry in extension settings exactly (for example *.example.com). Actions only load on sites you allow.
Multiple steps
Content can be one object or a JSON array. Use an array to click a control, wait, then fill fields. Each step can set action, content, and optional waitMs. If a step omits action, it uses this fillData type.
Field tips
Text is trimmed. Numbers are parsed from cell text. Timestamps map to opened or closed local times. Optional close fields include profit/loss and excursion values.
Examples
Reads entry price and side from the TradingView positions table, mapping buy/sell to long/short. Import this as a full journal action, or copy the content object into an existing fillData action.
{
"name": "Positions entry price and direction",
"site": "*.tradingview.com",
"location": "openPosition",
"action": "fillData",
"iconId": "text",
"content": {
"entryPrice": "[data-account-manager-page-id=\"positions\"] td[data-label=\"Avg Fill Price\"]",
"direction": {
"selector": "td[data-label=\"Side\"]",
"map": {
"buy": "long",
"sell": "short"
}
}
},
"enabled": true,
"sortOrder": 0
}Reads the symbol from a positions table cell using a plain CSS selector string. Import this as a full journal action, or copy the content object into an existing fillData action.
{
"name": "Positions symbol",
"site": "*.tradingview.com",
"location": "openPosition",
"action": "fillData",
"iconId": "text",
"content": {
"symbol": "[data-account-manager-page-id=\"positions\"] td[data-label=\"Symbol\"]"
},
"enabled": true,
"sortOrder": 0
}Reads the latest row from the bar-replay list-of-trades table and maps open/close cells into journal form fields. Import this as a full journal action, or copy the content object into an existing fillData action.
{
"name": "Replay open position",
"site": "*.tradingview.com",
"location": "openPosition",
"action": "fillData",
"iconId": "forward",
"content": {
"symbol": {
"selector": "div[class*=\"searchButton\"] button[title^=\"Symbol\"] span"
},
"timeframe": {
"selector": "div[data-is-fake-main-panel=\"true\"] div[role*=\"radiogroup\"] button[aria-checked=true] div[class^=value]"
},
"direction": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td[class*=\"tradeNumber\"] span:nth-child(2)",
"map": {
"long": "long",
"short": "short"
}
},
"positionSize": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td div[class*=\"positionSize\"] div:nth-child(1)"
},
"entryPrice": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(6) div[data-part=\"1\"] div[class*=\"value-\"]"
},
"entryMethod": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(5) div[data-part=\"1\"] div[class*=\"rowContent\"]",
"map": {
"Buy market order": "marketorder",
"Sell market order": "marketorder",
"Buy limit order": "limitorder",
"Sell limit order": "limitorder",
"Buy stop order": "stoporder",
"Sell stop order": "stoporder",
"Buy stop-limit order": "stoplimitorder",
"Sell stop-limit order": "stoplimitorder"
}
},
"entryTimestamp": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(4) div[data-part=\"1\"]"
}
},
"enabled": true,
"sortOrder": 0
}Reads the latest row from the bar-replay list-of-trades table and maps exit price, P/L, run-up (MFE), and drawdown (MAE) into the close-position journal form. Import this as a full journal action, or copy the content object into an existing fillData action.
{
"name": "Replay close position",
"site": "*.tradingview.com",
"location": "closePosition",
"action": "fillData",
"iconId": "forward",
"content": {
"exitPrice": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(6) div[data-part=\"0\"] div[class*=\"value-\"]"
},
"exitTimestamp": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(4) div[data-part=\"0\"]"
},
"exitMethod": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(5) div[data-part=\"0\"] div[class*=\"rowContent\"]",
"map": {
"Bracket Stop Loss": "stoploss",
"Bracket Take Profit": "takeprofit",
"Sell market order": "manual",
"Buy market order": "manual"
}
},
"profitLoss": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(8) div[class*=value]"
},
"favorableExcursion": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(10) div[class*=value]"
},
"adverseExcursion": {
"selector": "#bottom-area .replay_trading table.ka-table tbody tr[class*=\"ka-row\"] td:nth-child(11) div[class*=value]"
}
},
"enabled": true,
"sortOrder": 0
}Content is a JSON array: click List of Trades, wait 300ms, then copy entry price and direction. The action type is fillData so omitted step actions inherit fill. Import this as a full journal action, or paste the content array onto any existing action.
{
"name": "Open list of trades then fill",
"site": "*.tradingview.com",
"location": "openPosition",
"action": "fillData",
"iconId": "play",
"content": [
{
"action": "click",
"content": {
"selector": "#bottom-area button[id=\"List of Trades\"]"
},
"waitMs": 300
},
{
"action": "fillData",
"content": {
"entryPrice": "[data-account-manager-page-id=\"positions\"] td[data-label=\"Avg Fill Price\"]",
"direction": {
"selector": "td[data-label=\"Side\"]",
"map": {
"buy": "long",
"sell": "short"
}
}
}
}
],
"enabled": true,
"sortOrder": 0
}