我正在进行数据处理以过滤和排序等...
for stock in context.timeSeriesData:
try:
if context.timeSeriesData.iloc[1,:][stock][2] > 0 and context.timeSeriesData.iloc[0,:][stock][2] > 0:
if context.timeSeriesData.iloc[1,:][stock][2] > context.timeSeriesData.iloc[0,:][stock][2]:
context.tradingList[stock] = []
increment = context.timeSeriesData.iloc[1,:][stock][2] / context.timeSeriesData.iloc[0,:][stock][2]
context.tradingList[stock].append(increment)
except:
pass
try:
sorted_tradingList = sorted(context.tradingList.items(), key = lambda x: x[1], reverse = True)
except:
pass
try:
sorted_tradingList.clear()
except:
pass
for x,stock in sorted_tradingList:
if len(context.tradingBook) < (1.25/context.weightLong):
if stock in data and 'price' in data[stock]:
context.tradingBook[stock] = []
context.tradingBook[stock].append(0.0)
order_target_percent(stock, context.weightLong)
for k, v in context.tradingBook.iteritems():
v[0] +=1
timeToSell = {k:v for (k,v) in context.tradingBook.iteritems() if v[0] == 10}
for stock in timeToSell:
if stock in data and 'price' in data[stock]:
TargetHedge = (len(context.tradingBook) - 1) * context.weightShort
order_target_percent(stock, 0.0)
del context.tradingBook[stock]
if len(timeToSell)>0:
timeToSell.clear()
TargetHedge = (len(context.tradingBook)) * context.weightShort
order_target_percent(sid(8554), TargetHedge)
在第一个循环中,context.timeSeriesData将生成许多具有三个数据元素的公司集。例如,前两个如下所示。让我们看看AAPL,311是一个行业代码(我现在不在乎使用它),第二个元素18024000000是净收入,3.08是每股收益(我想操纵)
DataFrame:
Equity(24 [AAPL])
1 [311.0, 18024000000.0, 3.08]
2 [311.0, 18024000000.0, 3.08]
在上面的数据中,第一行表示前一天收到的数据,第二行表示刚刚到达的数据。因此将来如果DataFrame:更改为如下所示。计算机应该将其放入context.tradingBook
DataFrame:
Equity(24 [AAPL])
1 [311.0, 18024000000.0, 3.08]
2 [311.0, 19033000000.0, 3.79]
所以目的是当收到新数据并且每股收益得到改善时,它将被存储到context.tradingList中。然后它以最高&#34;增量&#34;
短路sorted_tradingList = sorted(context.tradingList.items(), key = lambda x: x[1], reverse = True)
然后是代码
for k, v in context.tradingBook.iteritems():
v[0] +=1
每次处理整个代码块(每天一次)时,将添加一天。你可以看到它从0天开始,context.tradingBook [stock] .append(0.0),但每天它会增加一天直到10天过去,此时,我会尝试卖掉它们。
order_target_percent(stock,context.weightLong)是买卖股票的代码,对我的系统来说是独一无二的,所以不要担心。我的问题是......为什么不加几天。我遇到了问题
for k, v in context.tradingBook.iteritems():
v[0] +=1
目前还没有添加天数。我究竟做错了什么。如果你有兴趣沿着这个目标前进,我还有另外一个问题。但是,一旦我们迈出第一步,我会通知你。非常感谢。
答案 0 :(得分:0)
问题出在
try:
sorted_tradingList.clear()
except:
pass
它没有用,我也没有意识到这一点。