Отправка POST в API с httr для каждого элемента в списке - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть список символов, с которыми я хотел бы размещать заказы через API.

toorder<-list("AAPL","CBS","NVDA","STZ")

Когда я использую:

for (i in toorder)
{
POST("https://paper-api.alpaca.markets/v1/orders",body = list("symbol" = paste0('"', i, '"',sep=""), "qty" = 1, "side" = "buy", "type" = "market", "time_in_force" = "day"), encode = "json",
             add_headers("APCA-API-KEY-ID" = "mykeyishere"),
add_headers("APCA-API-SECRET-KEY" = "mysecretkeyishere"),
accept_json()
             )}

Заказы не размещаются.Тем не менее,

POST("https://paper-api.alpaca.markets/v1/orders",body = list("symbol" = "AAPL", "qty" = 1, "side" = "buy", "type" = "market", "time_in_force" = "day"), encode = "json",
             add_headers("APCA-API-KEY-ID" = "mykeyisenteredhere"),
add_headers("APCA-API-SECRET-KEY" = "mysecretkeyisenteredhere"),
accept_json()
             )

работает просто отлично.

Каков наилучший способ для меня создать код, который будет POST один раз для каждого символа в моем списке?

Спасибозаранее!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Я сделал цикл for с аспектом Sys.sleep(), чтобы мой код работал в ситуациях, когда мои POSTS были слишком быстрыми.

Используемый код приведен ниже:

for(i in toorder$body){
 POST("https://paper-api.alpaca.markets/v1/orders",body = list("symbol" = i, "qty" = 1, "side" = "buy", "type" = "market", "time_in_force" = "day"), encode = "json",
   add_headers("APCA-API-KEY-ID" = "mykeyishere"),
   add_headers("APCA-API-SECRET-KEY" = "mysecretkeyishere"),
   accept_json()
)
Sys.sleep(time=1)

}
0 голосов
/ 07 декабря 2018

Подумайте о том, чтобы обернуть ваш вызов POST в функцию и использовать lappy:

PostFunciton <- function (Symbol)
{
  POST("https://paper-api.alpaca.markets/v1/orders",body = list("symbol" = Symbol), "qty" = 1, "side" = "buy", "type" = "market", "time_in_force" = "day"), encode = "json",
       add_headers("APCA-API-KEY-ID" = "mykeyishere"),
       add_headers("APCA-API-SECRET-KEY" = "mysecretkeyishere"),
       accept_json()
  )
}

Results <- lapply(toorder, PostFunciton)
...