Как ... загрузить котировки etf и хеджировать их в евро - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь изменить сценарий R, который вычисляет статистику портфеля.

library(tidyquant)
library(timetk)
library(dplyr)
# Create the tickers and weights vector

tickers = c('edv', 'spy')
forex = c('EURUSD')


tiingo_api_key("XXXXX")

#wts = c(0.1,0.2,0.25,0.25,0.2)
price_data <- tq_get(tickers,
                     from = '2020-06-01',
                     to = '2020-07-31',
                     get = "tiingo")

forex_data <- tq_get(forex,
                     from = '2020-06-01',
                     to = '2020-07-31',
                     get = "tiingo")

forex_data <- forex_data[ ,c(2, 8)]

#price_data$adjusted <- price_data$adjusted/forex_data$adjusted

Я получаю объект price_data примерно так:

структура (список ( symbol = c («EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV» »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV »,« EDV », «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «EDV», «SPY», «SPY», «SPY», «SPY», «SPY». »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион », «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион», «Шпион» »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион »,« Шпион », «ШПИОН», «ШПИОН»), дата = структура (c (1590969600, 1591056000, 1591142400, 1591228800, 1591315200, 1591574400, 1591660800, 1591747200, 1591833600, 1591920000, 1592382000200, 1592265400, 1592352000200, 1592265600, 1592352000200, 1592265600, 1592352000) 4800, 1592784000, 1592870400, 1592956800, 1593043200, 1593129600, 1593388800, 1593475200, 1593561600, 1593648000, 1593993600, 1594080000, 1594166400, 1594252800, 1594339200, 1594598400, 1594684800, 1594771200, 1594857600, 1594944000, 1595203200, 1595289600, 1595376000, 1595462400, 1595548800, 1595808000, 1595894400, 1595980800, 1596067200, 1596153600, 1590969600, 1591056000, 1591142400, 1591228800, 1591315200, 1591574400, 1591660800, 1591747200, 1591833600, 1591920000, 1592179200, 1592265600, 1592352000, 1592438400, 1592524800, 1592784000, 1592870400, 1592956800, 1593043200, 1593129600, 1593388800, 1593475200, 1593561600, 1593648000, 1593993600, 1594080000, 1594166400, 1594252800, 1594339200, 1594598400, 1594684800, 1594771200, 1594857600, 1594944000, 1595203200, 1595289600, 1595376000, 1595462400, 1595548800, 1595808000, 1595894400, 1595980800, 1596067200, 1596153600), tzone = «UT C», class = c («POSIXct», «POSIXt»)), open = c (163,69, 163,08, 160,94, 159,33, 153,62, 154,1 4, 159,81, 159,94, 165,2, 164,34, 166,39, 160,17, 161,05, 163,36, 162,13, 165,07, 162,87, 162,95, 166,62, 166,53, 167,58, 167,99, 163,95, 164,18, 163,64, 165,12, 166,89, 166,39, 166,22 171,48, 168,8, 170,79, 170,72, 170,93, 170,84, 171,81, 172,98, 173,14, 174,9, 173,88, 174,66, 175,88, 174,67, 303,62, 306,55, 310,24, 311,11, 317,23, 320,22, 320,24, 321,42, 311,4 315,48, 314,07, 310,005, 314,17, 307,99, 313,4801, 309,84, 303,47, 306,16, 301,41, 303,99, 309,57, 314,24, 316,37, 315,38, 314,61, 316,84, 314,31, 320,13, 313,3, 326,41, 311,89,7 324,62, 326,47, 320,95, 321,63, 322,43, 322,12, 321,9, 325,9), высокий = c (163,94, 163,63, 161,25, 159,4, 155,75, 156,56, 160,41, 161,99, 166,48, 165,9, 166,68, 162,83, 162,34, 166,68, 162,84, 162,34 , 164.04, 165.3, 163.4, 165.14, 166.73, 168.2, 168.07, 167.99, 165.16, 165.59, 164.43, 167.52, 167.1, 170.42, 171.77, 170.39, 171.71, 170.1, 171.09, 170.76, 170.95, 171.19, 172.11, 174.3.10 , 174,9, 174,96, 174,93, 1 76,15, 176,31, 306,205, 308,13, 313,22, 313, 321,275, 323,41, 323,2849, 322,39, 312,15, 309,08, 308,28, 315,64, 314,39, 312,3, 314,38, 311,05, 314,5, 310,51, 307,64, 311,89, 310,25, 307,64, 306,89,39 315,7, 317,68, 317,52, 316,3, 317,1, 317,88, 322,71, 319,76, 323,04, 321,28, 322,57, 325,13, ​​326,93, 327,2, 327,23, 321,99, 323,41, 323,64, 325,73, 324,41, 326,6327 *, низкий = * 163 , 162,35, 159,42, 157,01, 151,58, 154,09, 158,63, 159,65, 164,09, 163,6, 163,95, 159,2, 159,96, 162,98, 162,09, 163,69, 162,35, 162,84, 165,4, 166,53, 166,83,2, 162,84, 162,8 , 165.75, 166.87, 169.1, 167.78, 170.28, 168.6, 170.18, 169.59, 170, 170.41, 171.16, 172.32, 172.9, 173.1271, 173.835, 173.25, 175.4778, 174.266, 303.06, 305.1, 309.94, 319.69, 319.69, 319.69 , 318,2209, 300,01, 298,6, 296,74, 307,67, 310,86, 309,51, 306,53, 306,75, 311,6101, 302,1, 301,28, 299,42, 298,93, 303,82, 309,07, 311,51, 315,56, 313,37, 314,27, 312,7, 312,7, 312,7 , 319. 09, 319,74, 320,62, 323,94, 324,5, 321,48, 319,246, 320,775, 320,85, 322,075, 319,64, 321,33), закрыть = c (163,87, 162,92, 160,29, 157,05, 155,69, 156,39, 158,84,96, 161,994, 161,99 , 164,45, 160,88, 161,55, 163,82, 163,76, 164,11, 162,7, 164,87, 165,6, 168,07, 167,3, 166,03, 165,12, 165,15, 164,33, 167,29, 166,5, 170,13, 169,34, 170,39, 170,44, 169,34, 170,84, 170,43 , 170,63, 171,29, 173,82, 174,2, 173,2, 174,87, 174,51, 175,85, 175,62, 305,55, 308,08, 312,18, 311,36, 319,34, 323,2, 320,79, 319, 300,61, 304,21, 307,05, 312,96, 311,78,66, 307,05, 312,96, 311,78,66, 307,05 , 312,05, 304,09, 307,35, 300,05, 304,46, 308,36, 310,52, 312,23, 317,05, 313,78, 316,18, 314,38, 317,59, 314,84, 318,92, 321,85, 320,79, 321,72, 324,32, 325,01, 326,86, 321,17, 320,22,96 , 325.12, 323.96, 326.52), объем = c (293800L, 153600L, 405800L, 231900L, 666300L, 428300L, 871200L, 194300L, 392300L, 316300L, 252400L, 431500L, 257200L, 160600L, 133900L, 93200L, 143200L, 143900L 165000Л, 299500Л, 168 000L, 240500L, 171400L, 138500L, 143200L, 246700L, 107100L, 301000L, 195900L, 815300L, 116000L, 175700L, 122000L, 384200L, 81364L, 91683L, 129757L, 164894L, 201237L, 97041L, 55296019L, 16146019L, 73635043L, 91750087L, 75471787L, 150302461L, 73310274L, 77174695L, 93944722L, 208285190L, 194450402L, 134968796L, 137048347L, 82814592L, 80355844L, 135211345L, 74007212L, 68066900L, 132067392L, 88966079L, 127811745L, 79773260L, 112828251L, 71910372L, 69214995L, 61149258L, 82583406L, 54202602L, 83079092L, 57454436L, 102549097L, 92791839L, 86921534L, 54433414L, 64421802L, 56150230L, 57245315L, 57792915L, 75737989L, 73766597L, 48292970L, 57494979L, 48454159L, 61861714L, 85210755L), скорректированный = c (+163,0818500705, +162,136419195, +159,5190684555, +156,2946515749 , 154.9411926373, 155.637825914, 158.0760423824, 161.2108921274, 165.1617979966, 163.2112248219, 163.6590604998, 160.1062307887, 160.7730083535, 163.0320905508, 162.934173201.07 04658, 164.8035294543, 167.2616497306, 166.4953531262, 165.2314613243, 165.12, 165.15, 164.33, 167.29, 166.5, 170.13, 169.34, 170.39, 170.44, 169.37, 170.43, 169.88, 170.34, 174.2, 174.2, 174.2, 174.2 175,85, 175,62, +304,2034385119, +306,72228878, 310,8042200446, 309,9878337917, 317,9326658628, 321,7756548095, 319,3762757003, +317,5941642457, +299,2852091345, 302,8693439034, +305,6968279989, +311,5807825779, +310,2865116891, +310,4059828481, 308,64, 310,62, 312,05, 304,09, 307,35, 300,05, 304,46, 308,36, 310,52, 312,23, 317,05, 313,78, 316,18, 314,38, 317,59, 314,84, 318,92, 321,85, 320,79, 321,72, 324,32, 325,01, 326,86, 322,96, 320,88, 323,22, 321,17, 325,12, 323,96, 326,52), 1013 * 82 (выс. Т. 457418725, 165.9280946009, 167.39 1024482, 167.26 176,15, 176,31, +304,8555519212, +306,7720684296, +311,8396367557, +311,6206062976, +319,8591383011, +321,9847293377, +321,8601806545, 320,9692244865, +310,7743522549, +307,7178817714, +306,9214073783, 314,2489717948, +313,0044805556, 310,9236912036, 314,38, 311,05, 314,5, 310,51, 307,64, 306,39, 304,61, 310,2, 311,89, 315,7, 317,68, 317,52, 316,3, 317,1, 317,88, 322,71, 319,76, 323,04, 321,28, 322,57, 325,13, ​​326,93, 327,2, 327,23, 321,99, 323,41, 323,64, 325,73, 324,41, 326,63 * 103275 = 16275 * 10327 (низкое), прил. , +161,5691606697, +158,6532528116, 156,2548439591, 150,8509601128, 153,3488880049, +157,8670523994, +158,8821466025, +163,3007919575, 162,8131486638, 163,1614653021, +158,4343109247, +159,1906556251, 162,1961306187, 161,310411167, 162,9027157994, +161,5691606697, 162. 0568039634, 164.6044913753, 165.7290565219, 166.0674212563, 164.8035294543, 163,28, 163,58, 162,96, 164,87, 165,75, 166,87, 169,1, 167,78, 170,28, 168,6, 170,13, 172,16, 172,16, 170,28, 168,6, 170,13, 171,32, 172,16, 169,32 175.4778, 174,266, 301,7244119634, 303,7554216658, +308,574091744, 307,7178817714, +315,7622731416, +318,2213878303, 317,9525777226, 316,8184977462, +298,6878533397, 297,2840672219, 295,4322642579, +306,3140956536, +309,490037296, +308,1459867577, 306,53, 306,75, 311,6101, 302,1, 301,28, 299,42, 298,93, 303,82, 309,07, 311,51, 315,56, 313,37, 312,7, 310,68, 312,76, 314,13, 312, 319,27, 319,09, 319,74, 320,62, 323,94, 324,5, 321,48, 319,246, 320,775, 320,85, 322,033, 319,64, 321 * 15 * 9 (1627 * 9) Т. 3, 162.1662749069, 165.8186236575, 165.7290565219, 166.7740064369, 167.182034499, 163.95, 164.18, 163.64, 165.12, 166.39, 166.89, 171.43, 168.22, 171.48, 168.84, 172.9, 170.84, 172.9, 170.84, 172.98 174,66, 175,88, 174,67, +302,2819440385, +305,1990315032, +308,8727696414, 309,7389355439, +315,831964651, +318,8087876952, 318,8884351345, +320,0034992849, +310,0873930908, +306,8815836586, 296,7066232869, 314,0896769161, +312,6858907983, 308,6388052884, 314,17, 307,99, 313,4801, 309,84, 303,47, 306,16, 301,41, 303,99, 309,57, 314,24, 316,37, 315,38, 314,61, 316,84, 314,31, 320,13, 313,3, 322,41, 319,79, 321,88, 321,43, 326,45, 324,62, 326,47, 320,95, 321,63, 322,43, 322,12, 321,9 * объем = 325,9) (293800L, 153600L, 405800L, 231900L, 666300L, 428300L, 871200L, 194300L, 392300L, 316300L, 252400L, 431500L, 257200L, 160600L, 133900L, 142600L, 93200L, 208500L, 1651400L, 149500L, 1495000L, 149500L, 1495000L, 1495000L, 1495000L , 246700Л, 107100Л, 301000Л, 195900Л, 81 5300Л, 116000Л, 175700Л, 122000Л, 384200Л, 81364Л, 91683Л, 129757Л, 164894Л, 201237Л, 97041Л, 161419Л, 250529Л, 79400Л, 95940Л, 55696013Л, 73635043Л, 91750087Л, 754761174220, 73635043Л, 91750087Л, 754761174220, 73635043Л, 91750087Л, 754761174220 134968796L, 137048347L, 82814592L, 80355844L, 135211345L, 74007212L, 68066900L, 132067392L, 88966079L, 127811745L, 79773260L, 112828251L, 71910372L, 69214995L, 61149258L, 82583406L, 54202602L, 83079092L, 57454436L, 102549097L, 92791839L, 86921534L, 54433414L, 64421802L, 56150230L, 57245315L, 57792915L, 75737989L, 73766597L, 48292970L, 57494979L, 48454159L, 61861714L, 85210755L), divCa sh = c (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.3662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), splitFactor = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)), row.names = c (NA, -88L) , class = c ("tbl_df", "tbl", "data.frame"))

и объект forex_data, например:

структура (список (Дата = структура (c (1590969600, 1591056000, 1591142400, 1591228800, 1591315200, 1591574400, 1591660800, 1591747200, 1591833600, 1591920000, 1592179200, 1592265600, 1592352000, 15927524009000, 1592840080009 , 1593475200, 1593561600, 1593648000, 1593734400, 1593993600, 1594080000, 1594166400, 1594252800, 1594339200, 1594598400, 1594684800, 1594771200, 1594857600, 1594944000, 1594771200, 1594857600, 1594944000, 1595203200, 159537009809, 159537009809 ), tzone = "UT C", class = c ("POSIXct", "POSIXt")), настроено = c (1.1137097672, 1.1183180497, 1.1218308279, 1.1345586567, 1.1313497002, 1.1299435028, 1.135350174292, 1.135350174292, 1.135350174292 , 1,1246063878, 1,1268875366, 1,1257458066, 1,1223344557, 1,1220825853, 1,1179429849, 1,1252391133, 1,1330160888, 1,1275228323, 1,1214534036, 1,1203226529, 1,1247328759, 1,123343069, 1,1261261261, 1,1228385358, 1,1241007194, 1,1318619128, 1,1285407967, 1,1328877308, 1,1294330246, 1,1318619128, 1,1367511652, 1,139860937, 1,1418131994, 1,1431184271 , 1.1423349326, 1.1440338634, 1.1488970588, 1.1592858799, 1.159554731, 1.1626555052, 1.1774402449, 1.1728829463, 1.1774402449, 1.179245283, 1.1828720132)), row_names = c (NA, * 45) tbl »,« data.frame »))

Я хочу получить объект price_data, в котором значения в столбце 'отрегулировано' даны старыми значениями, разделенными на значения в столбце с корректировкой forex_data.

Сначала мне нужно знать, какой оператор мне нужно использовать (возможно% /%?). Но в целом очевидно, что я буду работать с двумя объектами, имеющими разное количество строк. Что делать с НП и отсутствующими значениями? Что делать, если в строке forex_data 2020/06/03 указано значение 0 или NA? Что делать, если в forex_data 2020/06/03 строка отсутствует?

Спасибо за каждое предложение

...