繁体   English   中英

Python for 循环返回第一个值

[英]Python for loop returns first value

背景:代码应该引用一个股票代码和交易时间,然后在交易时间之后拉入后续收盘价(next_price_1m 和 next_price_2m)

问题:当一个代码重复时,next_price_1m 和 next_price_2m 从该代码的先前调用中重复,即使交易时间已经改变。 我最初调用 barset 的电话正在工作,但仅适用于股票代码的第一个实例。

示例 output:

symbol | transaction_time | next price 1m | next price 2m |  
 --------|------------------|---------------|---------------|-- 
  JPM    | 10:00 a.m.       | $90           | $91           |  
  SPY    | 10:25 a.m.       | $260          | $261          |  
  JPM    | 11:37 a.m.       | $90           | $91           |  
  AAPL   | 2:25 p.m.        | $330          | $335          |  
  JPM    | 3:02 p.m.        | $90           | $91           |  

JPM 在第 2 次和第 3 次调用中应该有不同的 next_price_1m 和 next_price_2m。

代码:

trades_list = api.get_activities(date='2020-04-06')
data = []
for trade in trades_list:
  my_list_of_trade_order_ids = trade.order_id
  price = trade.price
  qty = trade.qty
  side = trade.side
  symbol = trade.symbol
  transaction_time = trade.transaction_time
  client_order_id = api.get_order(trade.order_id).client_order_id
  barset = api.get_barset(timeframe='minute',symbols=trade.symbol,limit=15,after=trade.transaction_time)
  df_bars = pd.DataFrame(barset)
  next_price_1m = df_bars.iat[0,0].c
  next_price_2m = df_bars.iat[1,0].c
  data.append({'price':price, 'qty':qty, 'side':side,'symbol':symbol,'transaction_time':transaction_time, 'client_order_id':client_order_id, 'next price 1m':next_price_1m,'next price 2m':next_price_2m})
df = pd.DataFrame(data)
df

感谢您的回复。

问题在于“after”参数正在寻找与 trade.transaction_time 提供的时间戳格式不同格式的时间戳

API 不会提供错误,而是会忽略时间参数,只返回最新数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM