使用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的交集元素