Created
October 28, 2022 13:12
-
-
Save kyawswarthwin/9810640a64e5335e2680d9ec4a6d4101 to your computer and use it in GitHub Desktop.
TradingView Screener
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Data Source: https://static.tradingview.com/static/bundles/embed/57226.e5f80e0c95e53007e6fe.js | |
const data = { | |
us: { | |
title: 'USA', | |
screenerName: 'america', | |
screenerTimezone: 'America/New_York', | |
defaultExchange: 'US', | |
exchangesForHotlist: ['AMEX', 'NASDAQ', 'NYSE', 'OTC', 'US'], | |
exchangesStocks: ['NASDAQ', 'NYSE', 'NYSE ARCA', 'OTC'], | |
group: 'North America' | |
}, | |
ae: { | |
title: 'United Arab Emirates', | |
screenerName: 'uae', | |
screenerTimezone: 'Asia/Dubai', | |
exchangesStocks: ['DFM', 'ADX'], | |
group: 'Middle East / Africa' | |
}, | |
ar: { | |
title: 'Argentina', | |
screenerName: 'argentina', | |
screenerTimezone: 'America/Argentina/Buenos_Aires', | |
exchangesForHotlist: ['BCBA'], | |
exchangesStocks: ['BYMA'], | |
defaultExchange: 'BCBA', | |
group: 'Mexico and South America' | |
}, | |
at: { title: 'Austria' }, | |
au: { | |
title: 'Australia', | |
screenerName: 'australia', | |
screenerTimezone: 'Australia/Sydney', | |
exchangesStocks: ['ASX'], | |
group: 'Asia / Pacific' | |
}, | |
be: { | |
title: 'Belgium', | |
screenerName: 'belgium', | |
screenerTimezone: 'Europe/Brussels', | |
exchangesForHotlist: ['EURONEXT_BRU'], | |
exchangesStocks: ['EURONEXTBRU'], | |
defaultExchange: 'EURONEXT_BRU', | |
group: 'Europe' | |
}, | |
bh: { | |
title: 'Bahrain', | |
screenerName: 'bahrain', | |
screenerTimezone: 'Asia/Bahrain', | |
exchangesStocks: ['BAHRAIN'], | |
group: 'Middle East / Africa' | |
}, | |
br: { | |
title: 'Brazil', | |
screenerName: 'brazil', | |
screenerTimezone: 'America/Sao_Paulo', | |
exchangesStocks: ['BMFBOVESPA'], | |
group: 'Mexico and South America' | |
}, | |
ca: { | |
title: 'Canada', | |
screenerName: 'canada', | |
screenerTimezone: 'America/Toronto', | |
exchangesStocks: ['TSX', 'TSXV', 'CSE', 'NEO'], | |
group: 'North America' | |
}, | |
ch: { | |
title: 'Switzerland', | |
screenerName: 'switzerland', | |
screenerTimezone: 'Europe/Zurich', | |
exchangesStocks: ['SIX', 'BX'], | |
group: 'Europe' | |
}, | |
cl: { | |
title: 'Chile', | |
screenerName: 'chile', | |
screenerTimezone: 'America/Santiago', | |
exchangesStocks: ['BCS'], | |
group: 'Mexico and South America' | |
}, | |
cn: { | |
title: 'China', | |
tvLocale: 'zh_CN', | |
screenerName: 'china', | |
screenerTimezone: 'Asia/Hong_Kong', | |
exchangesStocks: ['SSE', 'SZSE'], | |
group: 'Asia / Pacific' | |
}, | |
co: { | |
title: 'Colombia', | |
screenerName: 'colombia', | |
screenerTimezone: 'America/Bogota', | |
exchangesStocks: ['BVC'], | |
group: 'Mexico and South America' | |
}, | |
cz: { title: 'Czech Republic' }, | |
de: { | |
title: 'Germany', | |
tvLocale: 'de_DE', | |
screenerName: 'germany', | |
screenerTimezone: 'Europe/Berlin', | |
defaultExchange: 'XETR', | |
exchangesStocks: [ | |
'FWB', | |
'SWB', | |
'XETR', | |
'BER', | |
'DUS', | |
'HAM', | |
'HAN', | |
'MUN', | |
'TRADEGATE' | |
], | |
group: 'Europe' | |
}, | |
dk: { | |
title: 'Denmark', | |
screenerName: 'denmark', | |
screenerTimezone: 'Europe/Copenhagen', | |
exchangesStocks: ['OMXCOP'], | |
group: 'Europe' | |
}, | |
ee: { | |
title: 'Estonia', | |
screenerName: 'estonia', | |
screenerTimezone: 'Europe/Tallinn', | |
exchangesStocks: ['OMXTSE'], | |
group: 'Europe' | |
}, | |
eg: { | |
title: 'Egypt', | |
screenerName: 'egypt', | |
screenerTimezone: 'Africa/Cairo', | |
exchangesStocks: ['EGX'], | |
group: 'Middle East / Africa' | |
}, | |
es: { | |
title: 'Spain', | |
screenerName: 'spain', | |
screenerTimezone: 'Europe/Madrid', | |
exchangesStocks: ['BME'], | |
group: 'Europe' | |
}, | |
eu: { | |
title: 'European Union', | |
screenerName: 'euronext', | |
screenerTimezone: 'Europe/Paris', | |
exchangesForHotlist: [], | |
exchangesStocks: ['EURONEXT'] | |
}, | |
fi: { | |
title: 'Finland', | |
screenerName: 'finland', | |
screenerTimezone: 'Europe/Helsinki', | |
exchangesStocks: ['OMXHEX'], | |
group: 'Europe' | |
}, | |
fr: { | |
title: 'France', | |
screenerName: 'france', | |
screenerTimezone: 'Europe/Paris', | |
exchangesForHotlist: ['EURONEXT_PAR'], | |
exchangesStocks: ['EURONEXTPAR'], | |
defaultExchange: 'EURONEXT_PAR', | |
group: 'Europe' | |
}, | |
ge: { title: 'Georgia' }, | |
gr: { | |
title: 'Greece', | |
screenerName: 'greece', | |
screenerTimezone: 'Europe/Athens', | |
exchangesStocks: ['ATHEX'], | |
group: 'Europe' | |
}, | |
hk: { | |
title: 'Hong Kong', | |
screenerName: 'hongkong', | |
screenerTimezone: 'Asia/Hong_Kong', | |
exchangesStocks: ['HKEX'], | |
group: 'Asia / Pacific' | |
}, | |
hu: { | |
title: 'Hungary', | |
screenerName: 'hungary', | |
screenerTimezone: 'Europe/Budapest', | |
exchangesStocks: ['BET'], | |
exchangesForHotlist: ['BET'], | |
defaultExchange: 'BET', | |
group: 'Europe' | |
}, | |
id: { | |
title: 'Indonesia', | |
screenerName: 'indonesia', | |
screenerTimezone: 'Asia/Jakarta', | |
exchangesStocks: ['IDX'], | |
group: 'Asia / Pacific' | |
}, | |
ie: { title: 'Ireland' }, | |
il: { | |
title: 'Israel', | |
screenerName: 'israel', | |
screenerTimezone: 'Asia/Jerusalem', | |
exchangesStocks: ['TASE'], | |
group: 'Middle East / Africa' | |
}, | |
in: { | |
title: 'India', | |
screenerName: 'india', | |
screenerTimezone: 'Asia/Kolkata', | |
exchangesStocks: ['BSE', 'NSE'], | |
group: 'Asia / Pacific' | |
}, | |
ir: { title: 'Iran' }, | |
is: { | |
title: 'Iceland', | |
screenerName: 'iceland', | |
screenerTimezone: 'Atlantic/Reykjavik', | |
exchangesStocks: ['OMXICE'], | |
group: 'Europe' | |
}, | |
it: { | |
title: 'Italy', | |
screenerName: 'italy', | |
screenerTimezone: 'Europe/Rome', | |
exchangesForHotlist: ['MIL'], | |
exchangesStocks: ['MIL'], | |
group: 'Europe' | |
}, | |
jp: { | |
title: 'Japan', | |
tvLocale: 'ja', | |
screenerName: 'japan', | |
screenerTimezone: 'Asia/Tokyo', | |
defaultExchange: 'TSE', | |
exchangesForHotlist: ['NAG', 'TSE'], | |
exchangesStocks: ['TSE', 'NAG', 'FSE', 'SAPSE'], | |
group: 'Asia / Pacific' | |
}, | |
kp: { title: 'Noth Korea' }, | |
kr: { | |
title: 'South Korea', | |
tvLocale: 'kr', | |
screenerName: 'korea', | |
screenerTimezone: 'Asia/Seoul', | |
exchangesStocks: ['KRX'], | |
group: 'Asia / Pacific' | |
}, | |
lt: { | |
title: 'Lithuania', | |
screenerName: 'lithuania', | |
screenerTimezone: 'Europe/Vilnius', | |
exchangesStocks: ['OMXVSE'], | |
group: 'Europe' | |
}, | |
lv: { | |
title: 'Latvia', | |
screenerName: 'latvia', | |
screenerTimezone: 'Europe/Riga', | |
exchangesStocks: ['OMXRSE'], | |
group: 'Europe' | |
}, | |
lu: { | |
title: 'Luxembourg', | |
screenerName: 'luxembourg', | |
screenerTimezone: 'Europe/Luxembourg', | |
exchangesStocks: ['LUXSE'], | |
exchangesForHotlist: ['LUXSE'], | |
defaultExchange: 'LUXSE', | |
group: 'Europe' | |
}, | |
mx: { | |
title: 'Mexico', | |
screenerName: 'mexico', | |
screenerTimezone: 'America/Mexico_City', | |
exchangesStocks: ['BMV'], | |
group: 'Mexico and South America' | |
}, | |
my: { | |
title: 'Malaysia', | |
tvLocale: 'ms_MY', | |
screenerName: 'malaysia', | |
screenerTimezone: 'Asia/Singapore', | |
exchangesStocks: ['MYX'], | |
group: 'Asia / Pacific' | |
}, | |
ng: { | |
title: 'Nigeria', | |
screenerName: 'nigeria', | |
screenerTimezone: 'Africa/Lagos', | |
exchangesStocks: ['NSENG'], | |
group: 'Middle East / Africa' | |
}, | |
nl: { | |
title: 'Netherlands', | |
screenerName: 'netherlands', | |
screenerTimezone: 'Europe/Amsterdam', | |
exchangesForHotlist: ['EURONEXT_AMS'], | |
exchangesStocks: ['EURONEXTAMS'], | |
defaultExchange: 'EURONEXT_AMS', | |
group: 'Europe' | |
}, | |
no: { | |
title: 'Norway', | |
screenerName: 'norway', | |
screenerTimezone: 'Europe/Oslo', | |
exchangesForHotlist: ['OSL'], | |
exchangesStocks: ['EURONEXTOSE'], | |
defaultExchange: 'OSL', | |
group: 'Europe' | |
}, | |
nz: { | |
title: 'New Zealand', | |
screenerName: 'newzealand', | |
screenerTimezone: 'Pacific/Auckland', | |
exchangesStocks: ['NZX'], | |
group: 'Asia / Pacific' | |
}, | |
pe: { | |
title: 'Peru', | |
screenerName: 'peru', | |
screenerTimezone: 'America/Lima', | |
exchangesStocks: ['BVL'], | |
group: 'Mexico and South America' | |
}, | |
ph: { | |
title: 'Philippines', | |
screenerName: 'philippines', | |
screenerTimezone: 'Philippines/Manila', | |
exchangesStocks: ['PSE'], | |
group: 'Asia / Pacific' | |
}, | |
pl: { | |
title: 'Poland', | |
screenerName: 'poland', | |
screenerTimezone: 'Europe/Warsaw', | |
exchangesStocks: ['GPW', 'NEWCONNECT'], | |
group: 'Europe' | |
}, | |
pt: { | |
title: 'Portugal', | |
screenerName: 'portugal', | |
screenerTimezone: 'Europe/Lisbon', | |
exchangesForHotlist: ['EURONEXT_LIS'], | |
exchangesStocks: ['EURONEXTLIS'], | |
defaultExchange: 'EURONEXT_LIS', | |
group: 'Europe' | |
}, | |
qa: { | |
title: 'Qatar', | |
screenerName: 'qatar', | |
screenerTimezone: 'Asia/Qatar', | |
exchangesStocks: ['QSE'], | |
group: 'Middle East / Africa' | |
}, | |
ro: { | |
title: 'Romania', | |
screenerName: 'romania', | |
screenerTimezone: 'Europe/Bucharest', | |
exchangesStocks: ['BVB'], | |
exchangesForHotlist: ['BVB'], | |
defaultExchange: 'BVB', | |
group: 'Europe' | |
}, | |
rs: { | |
title: 'Serbia', | |
screenerName: 'serbia', | |
screenerTimezone: 'Europe/Belgrade', | |
exchangesStocks: ['BELEX'], | |
group: 'Europe' | |
}, | |
ru: { | |
title: 'Russia', | |
screenerName: 'russia', | |
screenerTimezone: 'Europe/Moscow', | |
exchangesStocks: ['MOEX'], | |
group: 'Europe' | |
}, | |
sa: { | |
title: 'Saudi Arabia', | |
tvLocale: 'ar_AE', | |
screenerName: 'ksa', | |
screenerTimezone: 'Asia/Riyadh', | |
exchangesStocks: ['TADAWUL'], | |
group: 'Middle East / Africa' | |
}, | |
se: { | |
title: 'Sweden', | |
tvLocale: 'sv_SE', | |
screenerName: 'sweden', | |
screenerTimezone: 'Europe/Stockholm', | |
exchangesStocks: ['NGM', 'OMXSTO'], | |
exchangesForHotlist: ['NGM', 'OMXSTO'], | |
group: 'Europe' | |
}, | |
sg: { | |
title: 'Singapore', | |
screenerName: 'singapore', | |
screenerTimezone: 'Asia/Singapore', | |
exchangesStocks: ['SGX'], | |
group: 'Asia / Pacific' | |
}, | |
sk: { | |
title: 'Slovakia', | |
screenerName: 'slovakia', | |
screenerTimezone: 'Europe/Bratislava', | |
exchangesStocks: ['BSSE'], | |
group: 'Europe' | |
}, | |
th: { | |
title: 'Thailand', | |
tvLocale: 'th_TH', | |
screenerName: 'thailand', | |
screenerTimezone: 'Asia/Bangkok', | |
exchangesStocks: ['SET'], | |
group: 'Asia / Pacific' | |
}, | |
tr: { | |
title: 'Turkey', | |
screenerName: 'turkey', | |
screenerTimezone: 'Europe/Istanbul', | |
exchangesStocks: ['BIST'], | |
group: 'Europe' | |
}, | |
tw: { | |
title: 'Taiwan', | |
tvLocale: 'zh_TW', | |
screenerName: 'taiwan', | |
screenerTimezone: 'Asia/Taipei', | |
exchangesStocks: ['TWSE', 'TPEX'], | |
group: 'Asia / Pacific' | |
}, | |
uk: { | |
title: 'United Kingdom', | |
screenerName: 'uk', | |
screenerTimezone: 'Europe/London', | |
defaultExchange: 'LSE', | |
exchangesStocks: ['LSE', 'LSIN'], | |
group: 'Europe' | |
}, | |
ve: { | |
title: 'Venezuela', | |
screenerName: 'venezuela', | |
screenerTimezone: 'America/Caracas', | |
exchangesStocks: ['BVCV'], | |
group: 'Mexico and South America' | |
}, | |
vn: { | |
title: 'Vietnam', | |
tvLocale: 'vi_VN', | |
screenerName: 'vietnam', | |
screenerTimezone: 'Asia/Ho_Chi_Minh', | |
exchangesStocks: ['HOSE', 'HNX', 'UPCOM'], | |
group: 'Asia / Pacific' | |
}, | |
za: { | |
title: 'South Africa', | |
screenerName: 'rsa', | |
screenerTimezone: 'Africa/Johannesburg', | |
exchangesStocks: ['JSE'], | |
group: 'Middle East / Africa' | |
}, | |
ww: { title: 'Worldwide' } | |
}; | |
const result = {}; | |
Object.keys(data).forEach((country) => { | |
const { screenerName } = data[country]; | |
if (screenerName) { | |
result[country.toUpperCase()] = screenerName; | |
} | |
}); | |
const sortObject = (o) => | |
Object.keys(o) | |
.sort() | |
.reduce((r, k) => ((r[k] = o[k]), r), {}); | |
console.log(sortObject(result)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment