Я пытаюсь узнать цену акций на Токийской бирже, используя VBA. Я искал довольно много API, но ни у одного из них нет данных по Токийскому обмену, кроме finance.google.com. Но Google Финансы перестали работать и больше не возвращают данные в формате JSON, поэтому я должен использовать то, что осталось, чтобы извлечь данные из возвращенной строки.
Ниже приведен пример возвращаемой строки.
EXCHANGE%3DTYO
MARKET_OPEN_MINUTE=540
MARKET_CLOSE_MINUTE=900
INTERVAL=86400
COLUMNS=DATE,CLOSE,HIGH,LOW
DATA_SESSIONS=[MORNING,540,690],[AFTERNOON,750,900]
DATA=
TIMEZONE_OFFSET=540
a1522216800,2313,2324,2240
1,2298,2350,2242
2,2325,2336,2300
5,2252,2333,2246
6,2229,2257,2216 <--
7,2222,2238,2214
8,2262,2267,2220
9,2293,2313,2249
12,2338,2351,2300
13,2373,2392,2351
14,2386,2396,2323
15,2368,2395,2335
16,2391,2398,2375
19,2420,2439,2389
20,2378,2419,2363
21,2411,2428,2389
22,2384,2422,2381
23,2407,2426,2386
26,2437,2438,2389
27,2454,2468,2443
28,2453,2456,2418
29,2437,2422,2443 <<--
URL для вашей ссылки
http://finance.google.com/finance/getprices?x=TYO&q=9143&i=86400&f=d,c,h,l
a1522216800 - это отметка времени, а первое число следующих строк - это интервалы в днях. 1 после 1 дня после 1522216800 Временная метка после алфавита «а», кажется, меняется с днями, когда я называю этот URL.
Я использую InStr()
в поисках «a» и Mid()
, чтобы извлечь метку времени, преобразовать ее в формат даты и добавить интервал дня к извлеченной дате, чтобы получить конкретную дату.
Вот проблема, например, я хочу получить 29 дней из отметки времени, обозначенной << -, когда я использую тот же <code>InStr() для поиска «29», VBA вернула строковую позицию в <-, так как они имеют те же «29» в этой строке. Как я могу получить запланированную дату? </p>
Моя жизнь была бы проще, если бы ответ от finance.google.com был в формате json. Я не думаю, что есть способ конвертировать эти строки в JSON, они?