Board logo

标题: 量化投资准备工作 [打印本页]

作者: 龙听    时间: 2019-1-16 14:26     标题: 量化投资准备工作

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

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

1、环境 windows7 x64

2、量化模型使用C++,参考《trading with c》

开发工具《Visual C++ 2010》,编码工具《Source Insight》


3、图形等上层代码使用
python32-x64-windows                    多线程,分布式任务的可能
IDE-WingIDE 4.1-windows
GUI-PyQt4-Source Package
GUI-Builder   WingIDE建议不需要使用

4、WingIDE 4.1 破解

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

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

下载SIP4.3------简单讲就是C和python接口
siplib变异提示需要x64编译器,x86编译器和模块x64不匹配的问题
下载Microsoft Visual Studio 2010(ultimate) 试用版(2.3g)。只要x64编译工具安装上就行,使用虚拟光驱将文件拷贝出来,YCFHQ9DWCYDKV88T2TMHG7BHP,用这个key替换安装盘中setup目录中的[Product Key]的内容,重新保存即可。
注意:configure.py调用sipconfig模块生成的makefile,很多地方在判断windows平台是只判断了("MSVC","MSVC.NET", "BMAKE"),根本没有msvc2008。而我的平台选择的是msvc2008。修改sipconfig.py把所有 ("MSVC","MSVC.NET", "BMAKE")的地方都加上MSVC2008。
运行 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与描述不太一致。

http://edwardzhangxu.blog.163.com/blog/static/121632542011109111256788/

研究方向和参考资料

1、Python 语法熟悉                《Python基础教程》
2、行情数据接口                      Yahoo Finance
3、数据存储结构和读取方式
4、技术指标和交易策略
5、PyQt图形显示方式




欢迎光临 龙听期货论坛 (http://qhlt.club/) Powered by Discuz! 7.2