Вариант цепной параллельной обработки

Есть ли способ скачать цены опционов с помощью параллельной обработки?

Я пытаюсь получить все опционные контракты (~188 в цикле данных 2) в цикле для ASX200 (XJO), который занимает много времени.

FnGetOptionPx <- function(ID,symbol,securitytype,exchange,expiry,
                          strike,currency,right,multiplier){

  print(ID)

  TWSContract <-  twsContract(0,
                              symbol=as.character(symbol),
                              sectype=as.character(securitytype),
                              exch=as.character(exchange),
                              primary="",
                              expiry= as.character(expiry,"%Y%m%d"),
                              strike=as.character(strike),
                              currency=as.character(currency),
                              right=as.character(right),
                              local="",
                              multiplier = as.character(multiplier),
                              combo_legs_desc = "",
                              comboleg = "",
                              include_expired = "",
                              secIdType = "",
                              secId = "")

  Query <- reqMktData(tws,TWSContract,snapshot = TRUE)

  MidPx <-ifelse(Query$bidPrice>0 & Query$askPrice>0,
                     #bid and ask both exist
                     (Query$bidPrice+Query$askPrice)/2,
                     #no bids so use ask with a min of 1
                     Query$askPrice/2)
  return(MidPx)
}

Chain.3 <- Chain.2 %>% 
  #top_n(20) %>% 
  #need to call IB row by row therefore use rowwise
  rowwise() %>%
  mutate(MidPx=FnGetOptionPx(ID,symbol,sectype,exch,expiry,
  strike,currency,right,multiplier))

0 ответов

Другие вопросы по тегам