├── 000001.csv ├── Order.dll ├── README.md ├── StockOrder.py ├── StockOrderApi.py ├── hikyuu.py ├── panda always MUST RESTART 建议用ipython .ipynb ├── pyopencl_array_sum.py ├── 关于新版通达信和同花顺兼容性问题应对办法.doc ├── 新版通达信和同花顺关联说明V3.doc ├── 无标题文档 ├── 股票自助手2.9.9.8破解版.zip └── 说明.txt /Order.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoliu1706/test/656d59a05721caa8729878b100e67aeacba679ff/Order.dll -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2 | 3 | !!!!!!!!!!!!!!!!!!!!!! 4 | 5 | ###### 6 | 7 | 这是通达信技术指标编程 编程的参考 8 | 9 | http://www.gupiaohelp.com/help/13_4.html 10 | python 可以参考调试 详细请官网 11 | 1.运行股票自动交易软件助手 前 ,,, 前提关闭360等,管理员运行 股票自动交易软件助手破解版 连接交易客户端 12 | 2.调用 py api 自己测试 写策 一切风险自担 13 | 14 | ############# 15 | qq群 : 561573421 16 | ############# 17 | 通达信自动交易函数 18 | ############## 19 | 1.只支持32位Python 20 | 2.Order.dll 要放在当前目录 21 | 3.助手和交易软件要打开 22 | 23 | 软件是下载别人破解的 风险自己承担 24 | 25 | #股票自动交易助手 Python 自动下单使用 例子 26 | #把此脚本和 StockOrderApi.py Order.dll 放到你自己编写的脚本同一目录 27 | 28 | from StockOrderApi import * 29 | 30 | #买入测试 31 | #Buy(u"600000" , 100, 0, 1, 0) 32 | 33 | #卖出测试,是持仓股才会有动作 34 | #Sell(u"000100" , 100, 0, 1, 0) 35 | 36 | #账户信息 37 | print("股票自动交易接口测试") 38 | print("账户信息") 39 | print("--------------------------------") 40 | 41 | arrAccountInfo = ["总资产", "可用资金", "持仓总市值", "总盈利金额", "持仓数量"]; 42 | for i in range(0, len(arrAccountInfo)): 43 | value = GetAccountInfo( u"" , i, 0) 44 | print ("%s %f "%(arrAccountInfo[i], value)) 45 | 46 | print("--------------------------------") 47 | print(" ") 48 | 49 | print("股票持仓") 50 | print("--------------------------------") 51 | #取出所有的持仓股票代码,结果以 ','隔开的 52 | allStockCode = GetAllPositionCode(0) 53 | allStockCodeArray = allStockCode.split(',') 54 | for i in range(0, len(allStockCodeArray)): 55 | vol = GetPosInfo( allStockCodeArray[i] , 0 , 0) 56 | changeP = GetPosInfo( allStockCodeArray[i] , 4 , 0) 57 | print ("%s %d %.2f%%"%(allStockCodeArray[i], vol, changeP)) 58 | 59 | print("--------------------------------") 60 | 股票自动交易软件助手提供了Order.dll , 扩展了大智慧,飞狐,通达信等公式语言的函数。利用这些函数,可以在公式里精细控制下单逻辑和交易策略。比如读取持仓数据,可用资金,指定下单数量等等。 61 | 62 | 需要注意的是,一般情况下,并不需要在公式里调用这些函数就能实现股票程序化的交易策略。对于一般用户,或者对大部分常用指标来说,使用公式预警条件单更加方便,简单,而不需要在公式里调用下单函数。只需要建立对应的助手预警条件单,并在大智慧,通达信等软件中设置好预警指标即可。只有在使用股票池自动交易或者图表交易,纯公式下单的情况下才需要这些函数。 63 | 64 | 要使用股票自动交易软件助手提供的交易函数,先把 order.dll 复制到 通达信目录 T0002\dlls 下面,然后还要绑定DLL,查看如何绑定DLL。通达信调用过Order.dll后,助手会在通达信目录下生成 “助手日志” 目录,里面有调用函数的日志信息,可以查看这个日志信息来确定调用是否正确,条件是否成立等等。一般条件成立了但是助手没反应,可以看这个日志来找出原因。如果这日志的显示是正常的,你可以进一步去助手的安装目录里查看助手日志进一步确定原因。 65 | 66 | 重要提示 67 | 股票自动交易软件助手提供的有些函数的参数,是 条件和变量的乘积,如 买入 函数的最后个参数就是 条件*数量。表示在条件为1(即成立的情况下),买入对应数量的股票。比如 条件*1000, 条件成立的情况下,条件就是1,乘以1000结果就是1000股,助手就会买入1000股,在条件不成立的情况下条件的数值就会等于0,乘以1000结果也是0,代表条件不成立,因此助手不会买入。注意:条件只能是逻辑判断值,1或者0,不能是其他运算的结果,例如 条件:=C >0;不要条件:=C;或条件:=MA(C,5)这样,前者是逻辑判断值,后面是数值计算。 68 | 69 | 重要提示2 70 | 通达信的调用外部dll函数的方式比较特别,首先需要绑定dll,绑定到第几号dll,函数调用的函数名就是 TDXDLL数字 ,我们一般绑定助手Order.dll为第一个dll,因此调用助手提供的函数的名字都是 TDXDLL1,表示调用第一个绑定的dll,也就是Order.dll。此外每个调用都必须指定调用的是dll里的第几个函数,Order.dll提供的买入函数是第一个函数,因此调用买入函数就像这样:买入股票:=TDXDLL1(1, STR2CON(CODE), 1, 100);其中第一个参数1,表示第一个函数就是买入函数。同理,卖出股票函数是第二个函数,因此调用卖出函数就像这样:卖出股票:TDXDLL1(2, STR2CON(CODE), 2, 100);其他函数余此类推。 71 | 72 | 另外,通达信的函数最多只能有4个参数,并且参数不能省略,而有些助手函数不需要那么多参数的,这时候只要填0就行。并且通达信的参数只能传递数值,因此股票要传递股票代码的时候调用 STR2CON(CODE), 这样来传递。由于最多只能传递4个参数,因此不能像大智慧一样指定助手编号,如果要指定助手编号,需要调用 选择账户1:=TDXDLL1(7, 1, 0, 0); 这样来调用。大部分情况下可以忽略不管助手编号。只有在对不同的助手(对应的不同交易软件的交易账户)使用不同的下单数量时才需要用到。如果你从来没改过助手设置里的助手编号,所有助手都会执行下单动作,在这种情况下,即使开了多个助手,也不需理会这个参数。 73 | 74 | 助手函数列表 75 | 买入函数 TDXDLL1(1, 股票代码, 公式编号,条件*数量) 76 | 条件成立时(即 条件:=1),买入指定数量的股票 77 | 卖出函数 TDXDLL1(2, 股票代码, 公式编号,条件*数量) 78 | 条件成立时(即 条件:=1),卖出指定数量的股票 79 | 查询持仓数量 TDXDLL1(3, 股票代码, 类型, 0) 80 | 查询当前股票持仓数量,单位(股) 81 | 查询可卖数量 TDXDLL1(3, 股票代码, 类型, 0) 82 | 查询当前股票可卖数量,单位(股) 83 | 查询成本价 TDXDLL1(3, 股票代码, 类型, 0) 84 | 查询当前股票的成本价 85 | 查询盈利金额 TDXDLL1(3, 股票代码, 类型, 0) 86 | 查询当前股票的盈利金额(元) 87 | 查询盈利百分比 TDXDLL1(3, 股票代码, 类型, 0) 88 | 查询当前股票的盈利百分比(%),盈利5.5%,返回5.5 89 | 查询持仓市值 TDXDLL1(3, 股票代码, 类型, 0) 90 | 查询当前股票的持仓市值 91 | 下单天数 TDXDLL1(3, 股票代码, 类型, 0) 92 | 查询当前股票的下单天数,即上次助手下单离现在的天数 93 | 持仓天数 TDXDLL1(3, 股票代码, 类型, 0) 94 | 查询当前股票的持仓天数 95 | 上次买入价 TDXDLL1(3, 股票代码, 类型, 0) 96 | 查询当前股票的上次买入价 97 | 查询可撤买单 TDXDLL1(4, 股票代码,下单类型, 查询类型) 98 | 查询当前股票的可撤买单数量(股) 99 | 查询可撤买单时间 TDXDLL1(4, 股票代码,下单类型, 查询类型) 100 | 查询当前股票的可撤买单的时间离现在的秒数(秒) 101 | 查询可撤卖单 TDXDLL1(4, 股票代码,下单类型, 查询类型) 102 | 查询当前股票的可撤卖单数量(股) 103 | 查询可撤卖单时间 TDXDLL1(4, 股票代码,下单类型, 查询类型) 104 | 查询当前股票的可撤卖单的时间离现在的秒数(秒) 105 | 撤买单 TDXDLL1(6, 股票代码, 条件*类型) 106 | 条件成立时撤销当前股票的买入单 107 | 撤卖单 TDXDLL1(6, 股票代码, 条件*类型) 108 | 条件成立时撤销当前股票的卖出单 109 | 账户总资产 TDXDLL1(5, 类型) 110 | 查询当前账户的总资产(元) 111 | 账户可用资金 TDXDLL1(5, 类型) 112 | 查询当前账户的可用资金(元) 113 | 账户持仓市值 TDXDLL1(5, 类型) 114 | 查询当前账户的账户持仓总市值(元) 115 | 账户总盈利 TDXDLL1(5, 类型) 116 | 查询当前账户的账户总盈利(元) 117 | 持仓个数 TDXDLL1(5, 类型) 118 | 查询当前账户的持仓股票数量 119 | 清仓 TDXDLL1(9, 股票代码, 条件*清仓类型) 120 | 条件成立时执行清仓操作 121 | 清半仓 TDXDLL1(9, 股票代码, 条件*清仓类型) 122 | 条件成立时执行清半仓操作 123 | 启动交易 TDXDLL1(12, 股票代码, 条件) 124 | 条件成立时启动助手自动交易,相当于按下启动按钮 125 | 停止交易 TDXDLL1(13, 股票代码, 条件) 126 | 条件成立时停止助手自动交易,相当于按下停止按钮 127 | 启用条件 TDXDLL1(10, 股票代码, 条件) 128 | 条件成立时启用当前股票的条件单或止损设置 129 | 禁止条件 TDXDLL1(11, 股票代码, 条件) 130 | 条件成立时禁用当前股票的条件单或止损设置 131 | 刷新持仓 TDXDLL1(14, 股票代码, 条件) 132 | 条件成立时刷新持仓数据 133 | 设置买入价 TDXDLL1(15, 股票代码, 类型, 价格) 134 | 如果要指定买入价需在调用买入函数前调用 135 | 设置卖出价 TDXDLL1(15, 股票代码, 类型, 价格) 136 | 如果要指定卖出入价需在调用买入函数前调用 137 | 日志函数 TDXDLL1(16, 股票代码, 数值) 138 | 把数值写到当前日志文件里,方便调试 139 | MsgBox函数 TDXDLL1(16, 股票代码, 数值) 140 | 把数值以消息框的形式弹出来,方便调试 141 | 指定助手编号和账户编号 TDXDLL1(7, 助手编号, 账号编号) 142 | 指定助手编号和账户编号 143 | 发送邮件,QQ信息 TDXDLL1(18, 股票代码, 发送方式, 条件*消息类型) 144 | 条件成立时(即 条件:=1),以指定的发送方式发送指定类型的消息 145 | 更多函数将完善 146 | 函数说明 147 | TDXDLL1(1, 股票代码, 公式编号,条件*数量) 148 | 条件成立时(即 条件:=1),买入指定数量的股票 149 | 150 | 参数 151 | 1 1,第一个函数是买入函数,因此填1 152 | 股票代码 股票代码,一般写成 STR2CON(CODE) 就行 153 | 公式编号 用来区分是哪个公式或者转移条件买入的,买入和卖出的编号不要相同 154 | 条件*数量 条件,条件变量;数量,买入数量,如果填1,按助手条件单里的指定量买入 155 | 例子 156 | {上穿5日均线买入1000股} 157 | 条件:Cross(C, MA(C,5)); 158 | 买入股票:=TDXDLL1(1, STR2CON(CODE), 1, 条件*1000); 159 | TDXDLL1(2, 股票代码, 公式编号,条件*数量) 160 | 条件成立时(即 条件:=1),卖出指定数量的股票 161 | 162 | -------------------------------------------------------------------------------- /StockOrder.py: -------------------------------------------------------------------------------- 1 | #股票自动交易助手 Python 自动下单使用 例子 2 | #把此脚本和 StockOrderApi.py Order.dll 放到你自己编写的脚本同一目录 3 | 4 | from StockOrderApi import * 5 | 6 | #买入测试 7 | #Buy(u"600000" , 100, 0, 1, 0) 8 | 9 | #卖出测试,是持仓股才会有动作 10 | #Sell(u"000100" , 100, 0, 1, 0) 11 | 12 | #账户信息 13 | print("股票自动交易接口测试") 14 | print("账户信息") 15 | print("--------------------------------") 16 | 17 | arrAccountInfo = ["总资产", "可用资金", "持仓总市值", "总盈利金额", "持仓数量"]; 18 | for i in range(0, len(arrAccountInfo)): 19 | value = GetAccountInfo( u"" , i, 0) 20 | print ("%s %f "%(arrAccountInfo[i], value)) 21 | 22 | print("--------------------------------") 23 | print(" ") 24 | 25 | print("股票持仓") 26 | print("--------------------------------") 27 | #取出所有的持仓股票代码,结果以 ','隔开的 28 | allStockCode = GetAllPositionCode(0) 29 | allStockCodeArray = allStockCode.split(',') 30 | for i in range(0, len(allStockCodeArray)): 31 | vol = GetPosInfo( allStockCodeArray[i] , 0 , 0) 32 | changeP = GetPosInfo( allStockCodeArray[i] , 4 , 0) 33 | print ("%s %d %.2f%%"%(allStockCodeArray[i], vol, changeP)) 34 | 35 | print("--------------------------------") 36 | 37 | print("可撤买单") 38 | print("--------------------------------") 39 | allStockCode = GetAllOrderCode(0,1) 40 | allStockCodeArray = allStockCode.split(',') 41 | for i in range(0, len(allStockCodeArray)): 42 | vol = GetOrderInfo( allStockCodeArray[i] , 0 , 0, 0) 43 | seconds = GetOrderInfo( allStockCodeArray[i] , 0 , 1, 0) 44 | print ("%s %d %d"%(allStockCodeArray[i], vol, seconds)) 45 | 46 | print("--------------------------------") 47 | 48 | print("可撤卖单") 49 | print("--------------------------------") 50 | allStockCode = GetAllOrderCode(0,2) 51 | allStockCodeArray = allStockCode.split(',') 52 | for i in range(0, len(allStockCodeArray)): 53 | vol = GetOrderInfo( allStockCodeArray[i] , 1 , 0, 0) 54 | seconds = GetOrderInfo( allStockCodeArray[i] , 1 , 1, 0) 55 | print ("%s %d %d"%(allStockCodeArray[i], vol, seconds)) 56 | 57 | print("--------------------------------") 58 | 59 | #撤买 60 | CancelOrder("600036", 1, 0); 61 | #撤卖 62 | CancelOrder("600018", 2, 0); 63 | -------------------------------------------------------------------------------- /StockOrderApi.py: -------------------------------------------------------------------------------- 1 | #股票自动交易助手 Python 自动下单接口 2 | #把此脚本和 Order.dll 放到你自己编写的脚本同一目录 3 | #如何使用请参考 StockOrder.py 4 | 5 | from ctypes import * 6 | 7 | #加载API库 8 | api = windll.LoadLibrary( 'Order.dll' ) 9 | 10 | #初始化函数的参数类型 11 | api.Buy1.argtypes=[c_wchar_p, c_int, c_float, c_int, c_int] 12 | 13 | api.Sell1.argtypes=[c_wchar_p, c_int, c_float, c_int, c_int] 14 | 15 | api.GetPosInfo.restype = c_float 16 | api.GetPosInfo.argtypes=[c_wchar_p, c_int, c_int] 17 | 18 | api.GetAccountInfo.restype = c_float 19 | api.GetAccountInfo.argtypes=[c_wchar_p, c_int, c_int] 20 | 21 | api.GetAllPositionCode.restype = c_wchar_p 22 | api.GetAllPositionCode.argtypes=[c_int] 23 | 24 | api.GetAllOrderCode.restype = c_wchar_p 25 | api.GetAllOrderCode.argtypes=[c_int, c_int] 26 | 27 | api.GetOrderInfo.restype = c_float 28 | api.GetOrderInfo.argtypes=[c_wchar_p, c_int, c_int, c_int] 29 | 30 | api.CancelOrder1.restype = c_int 31 | api.CancelOrder1.argtypes=[c_wchar_p, c_int, c_int] 32 | 33 | #以下是股票自动交易下单和查持仓等相关函数 34 | def Buy(stkCode, vol, price, formulaNum, ZhuShouHao): 35 | api.Buy1(stkCode, vol, price, formulaNum, ZhuShouHao) 36 | 37 | def Sell(stkCode, vol, price, formulaNum, ZhuShouHao): 38 | api.Sell1(stkCode, vol, price, formulaNum, ZhuShouHao) 39 | 40 | def GetPosInfo(stkCode, nType, nZhuShouHao): 41 | return api.GetPosInfo(stkCode, nType, nZhuShouHao) 42 | 43 | def GetAccountInfo(stkCode, nType, nZhuShouHao): 44 | return api.GetAccountInfo(stkCode, nType, nZhuShouHao) 45 | 46 | def GetAllPositionCode(nZhuShouHao): 47 | return api.GetAllPositionCode(nZhuShouHao) 48 | 49 | def GetAllOrderCode(nZhuShouHao, orderType): 50 | return api.GetAllOrderCode(nZhuShouHao, orderType) 51 | 52 | def GetOrderInfo(stkCode, orderType, infoType, nZhuShouHao): 53 | return api.GetOrderInfo(stkCode, orderType, infoType, nZhuShouHao) 54 | 55 | def CancelOrder(stkCode, orderType, nZhuShouHao): 56 | return api.CancelOrder1(stkCode, orderType, nZhuShouHao) -------------------------------------------------------------------------------- /hikyuu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoliu1706/test/656d59a05721caa8729878b100e67aeacba679ff/hikyuu.py -------------------------------------------------------------------------------- /pyopencl_array_sum.py: -------------------------------------------------------------------------------- 1 | # Use OpenCL To Add Two Random Arrays (This Way Hides Details) 2 | from time import time 3 | import pyopencl as cl # Import the OpenCL GPU computing API 4 | import pyopencl.array as pycl_array # Import PyOpenCL Array (a Numpy array plus an OpenCL buffer object) 5 | import numpy as np # Import Numpy number tools 6 | 7 | context = cl.create_some_context() # Initialize the Context 8 | queue = cl.CommandQueue(context) # Instantiate a Queue 9 | a1=np.random.rand(50000).astype(np.float64) 10 | b1=np.random.rand(50000).astype(np.float64) 11 | a = pycl_array.to_device(queue, a1) 12 | b = pycl_array.to_device(queue, b1) 13 | # Create two random pyopencl arrays 14 | c = pycl_array.empty_like(a) # Create an empty pyopencl destination array 15 | 16 | program = cl.Program(context, """ 17 | __kernel void sum(__global const float *a, __global const float *b, __global float *c) 18 | { 19 | int i = get_global_id(0); 20 | c[i] = a[i] + b[i]; 21 | }""").build() # Create the OpenCL program 22 | time1 = time() 23 | program.sum(queue, a.shape, None, a.data, b.data, c.data) # Enqueue the program for execution and store the result in c 24 | 25 | print("a: {}".format(a)) 26 | print("b: {}".format(b)) 27 | print("c: {}".format(c)) 28 | # Print all three arrays, to show sum() worked OpenCL: 0.0075032711029052734 s 29 | 30 | time2 = time() 31 | 32 | print("OpenCL: ", time2 - time1, "s") 33 | -------------------------------------------------------------------------------- /关于新版通达信和同花顺兼容性问题应对办法.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoliu1706/test/656d59a05721caa8729878b100e67aeacba679ff/关于新版通达信和同花顺兼容性问题应对办法.doc -------------------------------------------------------------------------------- /新版通达信和同花顺关联说明V3.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoliu1706/test/656d59a05721caa8729878b100e67aeacba679ff/新版通达信和同花顺关联说明V3.doc -------------------------------------------------------------------------------- /无标题文档: -------------------------------------------------------------------------------- 1 | 虚拟机密码为:zipline 2 | 3 | 111.. . service mongodb start 4 | ################################ 5 | 6 | 222. source zipline/zip_env/bin/activate 7 | ##############################3##### 8 | 333.. cd /zipline 9 | 10 | 11 | ###############################3 12 | 4444 sudo bash vagrant_init.sh 13 | 14 | ################################# 15 | 16 | 17 | 555 jupyter notebook 18 | ############################## 19 | 20 | 21 | 666 http://192.168.1.120:8888 22 | #########################33##### 23 | 24 | google了后,发现果然如我的所料…. 新系统有个叫sip的机制。 你暂时不能直接在终端进行 csrutil disable 会出现错误提示,引导你去mac osx的恢复模式进行操作。 25 | 26 | 27 | 28 | 由于El Capitan引入了SIP机制(System Integrity Protection),默认下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程限制对系统目录的写操作。 这也是我们安装ipython失败的原因…. 29 | 30 | 现在的解决办法是取消SIP机制,具体做法是: 31 | 32 | 重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式) 33 | 左上角菜单里找到实用工具 -> 终端 34 | 输入csrutil disable回车 35 | 重启Mac即可 36 | 如果想重新启动SIP机制重复上述步骤改用csrutil enable即可 37 | 38 | 我们现在再看看sip的状态, 这样再安装ipython、gevent再也不会提示无法写入的权限提示了/ 39 | 运行环境:Ubuntu16.04+Python2.7 40 | 执行如下代码修改Jupyter的一部分文件的权限(执行完之后重新启动即可): 41 | 42 | sudo chmod 777 ~/.local/share/jupyter/ 43 | cd ~/.local/share/jupyter/ 44 | ls 45 | sudo chmod 777 runtime/ 46 | cd runtime/ 47 | ls 48 | 49 | 改完之后就没有问题啦! 50 | 51 | 今天用Jupyter又出问题了,过程是这样的,我复制了之前制作的一个模板文件夹,cd进去之后运行Jupyter.py文件,自动打开浏览器之后显示如下错误: 52 | 53 | an error occurred while creating a new notebook 54 | 55 | Create Untitled.ipynb [Errno 13] Permission denied: 56 | 57 | 当你点击浏览器上的python2或者python3来创建新的Untitled.ipynb时,就会提示你Permission denied:,权限不足~ 58 | 59 | 好吧,既然你说权限不足,那我们就用sudo指令看看会怎样吧(结果如下): 60 | 61 | 好,提示我你不要用sudo,没用的,就是创建不了,接着想:会不会是应为文件夹的权限问题导致我没有权限写数据到问价夹当中呢?于是我检查了之前能创建性的notebook的文件夹的权限:l 62 | 63 | 上图是我已经修改过之后的结果(修改指令:chmod改权限 chown改归属者 chgrp改归属组): 64 | 65 | 文件夹的权限应该为:drwxrwxr-x 66 | 67 | 文件的组应该属于:ubuntu-mm 68 | 69 | 文件的归属者应该为:ubuntu-mm 70 | 71 | 同样的内部的文件的权限如下: 72 | 73 | 如果你的文件夹或者文件夹或者文件不是上面你的权限情况,那你可是改成上面的情况适宜时,说不定这样你就能用啦~ 74 | 75 | 76 | 77 | 78 | 79 | 80 | 1 81 | 2 82 | 83 | $ csrutil status 84 | System Integrity Protection status: disabled. 85 | 86 | 87 | 具体使用方法:打开virtual box ,输入以下命令 88 | 89 | service mongodb start 90 | source zipline/zip_env/bin/activate 91 | sudo jupyter notebook 92 | ifconfig 93 | 94 | 得到虚拟机的IP 地址,例如IP为:192.168.1.120,则在windows浏览器输入 192.168.1.120:8888 95 | 96 | (2)对于本地安装,以ubuntu 为例: 97 | 98 | git clone https://github.com/zhanghan1990/zipline 99 | cd zipline 100 | sudo apt-get install python-pip 101 | sudo apt-get install mongodb 102 | sudo pip install virtualenv 103 | sudo apt-get install python-tk 104 | virtualenv zipline_env 105 | source zipline_env/bin/activate 106 | pip install -r requirements.txt 107 | python setup.py install 108 | sudo service mongodb start 109 | pip install xlrd 110 | pip3 install jupyter 111 | 112 | -------------------------------------------------------------------------------- /股票自助手2.9.9.8破解版.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoliu1706/test/656d59a05721caa8729878b100e67aeacba679ff/股票自助手2.9.9.8破解版.zip -------------------------------------------------------------------------------- /说明.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/haoliu1706/test/656d59a05721caa8729878b100e67aeacba679ff/说明.txt --------------------------------------------------------------------------------