QuickFixJ代码功能主要有两大部分,一部分是Fix协议数据的解析,另外一部分是客户端跟服务器端建立连接并维持回话,传输数据。
QuickFix/J传输功能部分
QuickFix/J的连接管理和传输功能是基于MINA[3] 框架实现的。MINA是Apache旗下的一个网络应用框架,能够帮助大家轻松的开发高性能、高扩展性的网络程序。它使用NIO在传输协议(比如TCP/IP,UDP/IP)之上提供了抽象的、事件驱动的、异步处理的API。
1. 如果还需要Deep Learning方面的东西的话,可以考虑Theano或者Keras。这两个东西可能会用在分析新闻数据方面。不过不是很推荐使用这类方法去做量化模型,因为计算量实在是太大,成本很高。2. 交易框架方面,除了vn.py,还推荐PyAlgoTrade框架,github上可以搜到。私以为这个框架比vn.py牛逼太多了,毕竟是一个在金融IT领域混迹近20年的老妖的作品,架构设计不是一般的优秀。
3. 国内的话,ricequant是个不错的选择,虽然使用的是Java,但是团队我见过,都是做金融IT出身的,基本上都有7、8年以上经验,底层功底非常扎实,做事情都很靠谱。现在他们也在考虑把SDK扩展到Python这边。
4. 国内的行情和交易接口,使用的是自己的协议(比如CTP接口使用的是FTD协议),而不是国际上广泛使用的FIX协议,并且都不开源。如果需要连接行情,还需要考虑将接口SDK为python封装一下。(修改:评论中有人提到很多券商也开放了FIX接口,不过似乎是在内网使用)
5. 有人谈到数据库了,这里我也说一下,对于高频tick级别的数据,其量级可以达到每天TB级别,普通的关系数据库是扛不住的。如果试图使用传统的关系数据库,比如Oracle之类的可以省省了。对付这种级别的数据,采用文件系统+内存索引会更好。不过这种场景,一般也就是机构里面能碰到了,个人quant可以不用考虑。
import randomcount = input("Ask a question:")
if count == 1:
print("It is certain")
if count == 2:
print("It is decidedly so")
if count == 3:
print("Without a doubt")
if count == 4:
print("Yes fefinitely")
if count == 5:
print("You may rely on it")
if count == 6:
print("As i see it, yes")
if count == 7:
print("Most likely")
if count == 8:
print("Outlook good")
if count == 9:
print("Yes")
if count == 10:
print("Signs point to yes")
if count == 11:
print("Reply hazy try again")
if count == 12:
print("Ask again later")
if count == 13:
print("Better not tell you now")
if count == 14:
print("Cannot predict now")
if count == 15:
print("Concentrate and ask again")
if count == 16:
print("Don't count on it")
if count == 17:
print("My reply is no")
if count == 18:
print("My sources say no")
if count == 19:
print("Outlook not so good")
if count == 20:
print("Very doubtful")
count=input("press enter to exit")