龙听期货论坛's Archiver

C
+
+


 微信: QQ:

龙听 发表于 2019-1-16 14:26

量化投资准备工作

[color=#323e32][font=simsun][size=14px]完全的依靠计算机进行高频交易或者套利交易,或者用信号处理理论将市场看作完全的时间序列,使用小波变换,模式识别,人工智能等方法实现交易自动化,从经 验来看其成功的概率基本在50-60%左右,经常有人号称会达到75%的概率,那只是对历史的测试而已。而且涉及的理论大多比较难懂,搞清楚其中的一个都 是很难的事情,因此不打算在其中深究,也不想将其作为投资方法,虽然量化投资能稳定获利,但将胜负结果完全交个概率终究觉得不靠谱,但是将投资过程量化是 可行,所以称市场没有什么起色的这段时间,进行一下准备。[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]以前主要利用股票软件+excel进行统计分析工作,免费的股票分析软件在横向统计上功能欠缺,而且不能在盘中进行,周期上也以日为单位,不利于多周期的 分析,数据的导出也存在困难,因此希望设计一个程序能够实时进行多周期,多因素的模型统计工作。因此程序在需求上需要较高的效率,同时数据的获得不希望延 时太久,统计数据要图形化显示。[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]1、环境 windows7 x64[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]2、量化模型使用C++,参考《trading with c》[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]开发工具《Visual C++ 2010》,编码工具《Source Insight》[/size][/font][/color]


[color=#323e32][font=simsun][size=14px]3、图形等上层代码使用[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]python32-x64-windows                    多线程,分布式任务的可能[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]IDE-WingIDE 4.1-windows[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]GUI-PyQt4-Source Package[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]GUI-Builder   WingIDE建议不需要使用[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]4、WingIDE 4.1 破解[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]安装10天的试用版[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]找到\Program Files (x86)\Wing IDE 4.1\bin\2.5\src.zip内目标文件process目录下的abstract.pyo[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]下载unpyclib python库用于反汇编abstract.pyo,abstract.pyo放在unpyclib-0.8.1\unpyclib与application.py一起,使用cmd命令窗口输入path d:\python27      (这里必须使用python 2.x版本)[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]python application.py -d abstract.pyo > abstract.txt[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]打开汇编结果文件abstract.txt,通过查找关键函数_GetTermDaysLeft 找到关键地方:[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]0000523E     STR: 't\x00\x00d\x01\x00\x83\x01\x00|\x01\x00d\x02\x00[/size][/font][/color]
[color=#323e32][font=simsun][size=14px].............................................  中间省略  ........................................................[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001B9     74 - LOAD_GLOBAL         '_'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001BC     64 - LOAD_CONST          'Invalid license activation'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001BF     83 - CALL_FUNCTION[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001C2     66 - BUILD_TUPLE[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001C5     53 - RETURN_VALUE[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001C6     6E - JUMP_FORWARD        -> 000001CA[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001C9     01 - POP_TOP[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001CA     7C - LOAD_FAST           'self'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001CD     69 - LOAD_ATTR           '_GetTermDaysLeft'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001D0     7C - LOAD_FAST           'lic'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001D3     83 - CALL_FUNCTION[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001D6     7D - STORE_FAST          'daysleft'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001D9     7C - LOAD_FAST           'daysleft'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001DC     64 - LOAD_CONST          -1[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001DF     6A - COMPARE_OP          "=="       将6A改成70[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001E2     6F - JUMP_IF_FALSE       -> 000001F9  关键点在,这里为了判断时间是否不受限制。 这个地址在偏移0x5425修改这个字节[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001E5     01 - POP_TOP[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001E6     74 - LOAD_GLOBAL         '_'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]000001E9     64 - LOAD_CONST          'unlimited'[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]偏移字节是通过上面的0x523E + 0x1E2得到的。直接利用python计算:hex(0x1E2+0X523E)。有可能你计算出来的地址跟这个不一样,没关系。[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]通过Ultraedit来更改二进制文件abstract.pyo,直接用winrar打开文件编辑,然后保存按提示更新,自己制作的zip文件只有2M比原始文件6M小,在二进制编辑状态下,查找地址5420,找到要修改的地方将6A改成70。[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]5、PyQt安装-必须使用Source Package,否则有些document没有安装,用WingIDE变异qtdemo时没有界面显示[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]安装Qt4.7.4---------包含在Qt SDK 中,需要使用qmake程序(竟然要装一个1.4g的开发包)[/size][/font][/color]
[color=#323e32][font=simsun][size=14px](加入4个路径) path D:\python32;[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]D:\QtSDK\Desktop\Qt\4.7.4\mingw\bin\;  qmake.exe[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]D:\VC2010\bin;                         nmake.exe[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]D:\QtSDK\mingw\bin                     g++.exe gcc.exe[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]下载SIP4.3------简单讲就是C和python接口[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]siplib变异提示需要x64编译器,x86编译器和模块x64不匹配的问题[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]下载Microsoft Visual Studio 2010(ultimate) 试用版(2.3g)。只要x64编译工具安装上就行,使用虚拟光驱将文件拷贝出来,YCFHQ9DWCYDKV88T2TMHG7BHP,用这个key替换安装盘中setup目录中的[Product Key]的内容,重新保存即可。[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]注意:configure.py调用sipconfig模块生成的makefile,很多地方在判断windows平台是只判断了("MSVC","MSVC.NET", "BMAKE"),根本没有msvc2008。而我的平台选择的是msvc2008。修改sipconfig.py把所有 ("MSVC","MSVC.NET", "BMAKE")的地方都加上MSVC2008。[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]运行 VisualStudio x64 Win64 Command Prompt(2010),切换到Pyqt4和Sip4.3的目录下分别运行python configure.py,生成make文件,PyQt4.8.6 make失败,直接使用了二进制文件PyQt-Py3.2-x64-gpl-4.8.6-1.exe,WingIDE生成Demo与描述不太一致。[/size][/font][/color]

[color=#323e32][font=simsun][size=14px][url=http://edwardzhangxu.blog.163.com/blog/static/121632542011109111256788/]http://edwardzhangxu.blog.163.com/blog/static/121632542011109111256788/[/url][/size][/font][/color]

[color=#323e32][font=simsun][size=14px]研究方向和参考资料[/size][/font][/color]

[color=#323e32][font=simsun][size=14px]1、Python 语法熟悉                《Python基础教程》[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]2、行情数据接口                      Yahoo Finance[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]3、数据存储结构和读取方式[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]4、技术指标和交易策略[/size][/font][/color]
[color=#323e32][font=simsun][size=14px]5、PyQt图形显示方式[/size][/font][/color]

页: [1]