def save_data1(df,time_id):
database_name = 'is_data_test'
df.open.rename(time_id).to_frame().T.to_hdf(database_name,mode='a',append=True,key='open')
df.close.rename(time_id).to_frame().T.to_hdf(database_name,mode='a',append=True,key='close')
df.high.rename(time_id).to_frame().T.to_hdf(database_name,mode='a',append=True,key='high')
df.low.rename(time_id).to_frame().T.to_hdf(database_name,mode='a',append=True,key='low')
df.vol.rename(time_id).to_frame().T.to_hdf(database_name,mode='a',append=True,key='vol')
def save_data(df,time_id):
database_name = 'is_data_test'
for i in ['open','high','low','close','vol']:
df[i].rename(time_id).to_frame().T.to_hdf(database_name,mode='a',append=True,key= i )
begin = 1
data_old = pd.DataFrame()
while begin:
sleep(1)
try:
login_info = Solution.login()
session_key = login_info.session_key
login_info.success
begin = 0
except:
continue
all_data = []
pnl_data = []
old_seq = -1
print('begin save data')
while 1:
try:
get_data = Solution.question()
except:
sleep(0.5)
continue
current_sequence = get_data.sequence
if current_sequence == old_seq:
sleep(0.5)
continue
data = pd.DataFrame([x.values for x in get_data.dailystk],columns=['sequence_id','code','open','high','low','close','vol'])
save_data(data,current_sequence)
if data_old.shape[0] ==0:
data_old = data
all_data.append(data)
pnl = get_data.capital
print('pnl:',pnl,'time:',current_sequence)
pnl_data.append((current_sequence,pnl))
# pd.DataFrame(pnl_data).to_pickle('pnl_int_1.pkl')
## alpha
if current_sequence > 0:
# alpha1 = ((data['vol']-data_old['vol'])/data_old['vol']).rank()
alpha1 = -data['vol']
alpha2 = (data['close']-data_old['close'])/data_old['close']
positions = factor_scale(alpha1) + factor_scale(alpha2)
# positions = alpha1.pct_change().iloc[current_sequence+1]
positions = (positions - positions.mean())
positions = positions/abs(positions).sum()
positions = np.array([ max(-0.08,min(x,0.08)) for x in positions])
pos_vol = pnl*positions/(data['close'])*0.9
pos_vol = [int(x) for x in pos_vol]
msg = Solution.submit_answer(session_key,current_sequence,pos_vol)
print(msg)
data_old = data
##
old_seq = current_sequence
if current_sequence == 599:
break
sleep(0.5)
test
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 作为开发人员,我们需要编写必要的单元测试以验证程序的稳定性,而且单元测试也可以用来验证重构的结果。 Andr...
- 本次笔记内容:cor.test()和cor()rcorr() {Hmisc}corr.test() {psych}...
- 在项目中写JunitTest类时,test的运行顺序默认是指定的,不变的,但是这个顺序是无法预估的。有时候我们想要...
- [作者提醒:从Visual Studio 2015 RC 版本开始,“Smart Unit Tests”已经更名为...
- 最简单确认数据分布的方式是检查数据本身,两种相对不同的汇总:summary和fivenum以及通过图像呈现 a d...