python-3.x 如何在panda Dataframe 中只返回满足特定条件的最近值

euoag5mw  于 2022-12-01  发布在  Python
关注(0)|答案(1)|浏览(143)

我正在建立一个交易机器人使用CCXT和Bybit作为我的交换。
我有一个函数可以获取已关闭的订单;问题出在bybit.fetch_closed_orders获取的交易既有已取消的,也有已关闭/已完成的。
我需要该函数只返回关闭状态的订单,更具体地说,只返回最近的订单。
下面是我的函数。

def closed_positions(symbol=symbol):
    
    index_pos = -1 
    
    closed_pos = bybit.fetch_closed_orders(symbol)
    
    closedpos_side = closed_pos[index_pos]['side']
    closedpos_size = closed_pos[index_pos]['amount']
    
    if closedpos_side == ('buy'):
        closedpos_bool = True
        long = True
    elif closedpos_side == ('sell'):
        closedpos_bool = True
        long = False
    else:
        closedpos_bool = False
        long = None
        
    print(f'closed possitions... | closedpos_bool {closedpos_bool} | closedpos_size {closedpos_size} | long {long}')
        
    return closed_pos, closedpos_bool, closedpos_size, long

index_pos变量必须返回最近交易的指数编号,其中closed_pos[index_pos]['status' == 'closed']。
df由20个字典组成。
我整个下午都在纠结这个问题非常感谢您的帮助!

dsekswqp

dsekswqp1#

经过几个小时的搜寻和反复试验,我得到了答案。
如果有人有同样的问题,这里是给他们的。

closed_pos = bybit.fetch_closed_orders(symbol)

filtered = []

for order in closed_pos:
    if order['status'] == 'closed':
        filtered.append(order)

相关问题