买入卖出股票的优雅实现

使用Python非常优雅地实现买入和卖出股票的计算,如下。

stocks = set(context.stocks) 

holdings = set(get_holdings(context)) 

to_buy = stocks - holdings 

to_sell = holdings - stocks

利用集合的+ -法可以很方便计算当前持仓与目标持仓间需要买入和卖出的股票。

 

集合是无序无重复的元素集,不支持索引和切片,重复值自动剔除。集合支持 x in set, len(set),和 for x in set等操作。

创建集合

1)b=set([6,3,9,15,21]) #set()方法创建

2)a = {‘a’,’i’}  #{}方式创建,但不能为空,否则会默认创建字典

 

增加集合元素

1)add方法。b.add(45) #add方法支持增加单个元素

2)update方法。b.update(a) #update方法支持集合合并

 

删除集合元素

b.remove(9) #原集合删除了元素 9

 

集合的运算

a|b    #求a,b的并集

a&b    #求a,b的交集

a-b    #元素在a中,不在b中

a^b    #集合a除去a&b的交集元素