写点代码-分级基金的套利交易

分级基金一般分为母基金和A/B份额的子基金。母基金可以通过拆分转换成A/B份额的子基金,A/B份额的子基金也可以通过合并方式转换成母基金。A/B份额的子基金可以进行场内交易,A/B份额的交易价格和它的净值价格不同,也就是会有折/溢价。根据A/B份额子基金的交易价格可以计算出母基金的净值,如果与母基金公布的净值相差较大,则可以通过合并、拆分进行套利交易。

于是想写个小程序监视每天分级基金的净值和交易价格,并且计算出净值差,判断是否存在套利机会。思路也比较简单,通过sinajs提供的股票数据接口获取每天的交易行情数据,然后解析出自己关注的数据,计算结果。

#-*- coding:utf-8 -*-

import urllib2

def download_html(url):
	f = urllib2.urlopen(url)
	return f.read()

def parse_line(line):
	context = line.split('"')
	return context[1].split(',')

def parse_html(html):
	lines = html.split('\n')
	items = []
	for line in lines:
		if len(line.strip()) == 0:
			continue
		item = parse_line(line)
		items.append(item)
	return items

def parse_items(items):
	sa = float(items[0][2])
	fa = float(items[1][1])
	sb = float(items[2][2])
	fb = float(items[3][1])
	fc = float(items[4][1])
	sda = items[0][-3]
	fda = items[1][-2]
	sdb = items[2][-3]
	fdb = items[3][-2]
	fdc = items[4][-2]
	assert(sda == sdb)
	assert(fda == fdb)
	assert(fda == fdc)
	sc = (sa + sb) / 2
	pp = 100.0 * (sc - fc) / fc
	return (fda, sa, fa, sb, fb, fc, sc, pp)

def parse_fund(a, b, c):
	url = 'http://hq.sinajs.cn/list=sz%s,f_%s,sz%s,f_%s,f_%s' % (a, a, b, b, c)
	html = download_html(url)
	items = parse_html(html)
	return parse_items(items)

def play_game():
	a = '150018'
	b = '150019'
	c = '161812'
	fund = parse_fund(a, b, c)
	print '%s : %5.3f, %5.3f, %5.3f, %5.3f, %5.3f, %5.3f, %5.3f%%' % (fund[0], fund[1], fund[2], fund[3], fund[4], fund[5], fund[6], fund[7])

def test_download_html():
	#url = 'http://www.baidu.com'
	a = '150018'
	b = '150019'
	c = '161812'
	url = 'http://hq.sinajs.cn/list=sz%s,f_%s,sz%s,f_%s,f_%s' % (a, a, b, b, c)
	data = download_html(url)
	assert(not data is None)
	print data.decode('gb2312').encode('utf-8')

def test_parse_line():
	line = 'var hq_str_sz150018="银华稳进,0.920,0.920,0.926,0.927,0.917,0.926,0.927,252350769,232719342.807,1568101,0.926,3017105,0.925,171000,0.924,110372,0.923,377600,0.922,952500,0.927,2176743,0.928,4024900,0.929,748300,0.930,136000,0.931,2013-01-18,15:45:52,00";'	
	item = parse_line(line)	
	assert(not item is None)
	print item


def test_parse_html():
	test_html = '''
	var hq_str_sz150018="银华稳进,0.920,0.920,0.926,0.927,0.917,0.926,0.927,252350769,232719342.807,1568101,0.926,3017105,0.925,171000,0.924,110372,0.923,377600,0.922,952500,0.927,2176743,0.928,4024900,0.929,748300,0.930,136000,0.931,2013-01-18,15:45:52,00";
	var hq_str_f_150018="银华稳进,1.003,1.16,1.003,2013-01-17,78.5548";
	var hq_str_sz150019="银华锐进,0.692,0.685,0.703,0.715,0.683,0.702,0.703,994795375,697633497.324,3654630,0.702,4710800,0.701,7029806,0.700,388100,0.699,2360200,0.698,2244363,0.703,16549500,0.704,4911900,0.705,7603137,0.706,5983500,0.707,2013-01-18,15:45:52,00";
	var hq_str_f_150019="银华锐进,0.605,0.605,0.615,2013-01-17,78.5548";
	var hq_str_f_161812="银华深证100指数分级,0.804,0.883,0.809,2013-01-17,21.8818";
	'''
	items = parse_html(test_html)
	assert(not items is None)
	for item in items:
		print item

if __name__ == '__main__':
	play_game()
	#test_download_html()
	#test_parse_line()
	#test_parse_html()


转载于:https://my.oschina.net/u/187416/blog/103335

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值