Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ptim/9af60989e22512038eda2cb2306f44f9 to your computer and use it in GitHub Desktop.
Save ptim/9af60989e22512038eda2cb2306f44f9 to your computer and use it in GitHub Desktop.
Extract your tradingview paper trade journal into a csv file
trs = $($(".paper_trading table.balances")[2]).find(".tv-data-table__tbody tr").map((_, value) => $(value).find("td").map((_, value) => value.innerText))
trades = Object.values(trs.map((_, tr) => [Object.values(tr).slice(0,5)]))
var toTimestamp = val => {
var parts = val.split(' ')
switch(parts[1]) {
case "Minutes":
var d = new Date(new Date().getTime() - (parts[0] * 60 * 60))
break;
case "Hours":
var d = new Date(new Date().getTime() - (parts[0] * 60))
break;
case "Hour":
var d = new Date(new Date().getTime() - (60 * 60))
break;
default:
var d = new Date(`${val} ${new Date().getFullYear()}`)
break;
}
return `${d.getMonth()}/${d.getDate()}/${d.getFullYear()}`
}
trades = trades.slice(0, trades.length-3).map(trade => [toTimestamp(trade[0]), trade[1], trade[2], trade[3], trade[4]])
var csvContent = "data:text/csv;charset=utf-8,"
csvContent += ["Date", "Balance before", "Balance after", "Profit", "Notes"].join(', ') + "\r\n"
trades.forEach(rowArray => {
if(Array.isArray(rowArray)) {
var row = rowArray.join(",")
csvContent += row + "\r\n"
}
})
var encodedUri = encodeURI(csvContent)
window.open(encodedUri)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment