新的vn.py社区论坛( https://www. vnpy.com/forum/ )已经上线差不多大半年的时间,许多社区用户都贡献了非常高质量的量化交易相关内容。接下来我们计划每周整理一篇论坛中的精华文章,制作为一个《vn.py社区精选》系列。
每篇文章我们会先争得作者的转载同意,同时支付200元的稿费。稿费金额数字不大,更多是对每位作者为vn.py社区做出贡献的一份感谢,也欢迎大家在论坛上更多分享自己的使用经验!
Python资源共享群:484031800
为什么要加密?
从执行方式上,编程语言可分为2类, 编译型语言 和 解释型语言 :
- 编译型语言(如C++等),在程序执行之前,会先通过编译器对程序源代码执行进行编译,将其转变为机器语言后(如.dll 或者.exe),再由机器语言负责最后的运行操作;
- 解释型语言(如Python等),则省去了编译的过程,而是选择在程序运行的时候,通过解释器对程序逐行做出解释,然后直接运行。
尽管在分类上属于解释型语言,Python在实际运行时为了提高效率,同样会先从源代码(py文件)编译为字节码文件(pyc文件),而后在运行时通过解释器再来解释为机器指令执行。第二次运行该Python文件时,解释器会在硬盘中寻找到事先编译过的pyc文件,若找到则直接载入,否则就重新生成pyc文件。
但无论是py文件还是pyc文件,都有极高的风险泄露源代码:
- py文件:Python程序的可读源代码;
- pyc文件:作为字节码,可以通过某些工具(如uncompyle6)还原为.py文件。
无论是谁,都不会希望自己辛辛苦苦开发的量化策略被任何第三方窃取,因此自然而然就产生了对策略文件进行加密的需求:对py文件加密,生成可以正常加载运行,但无法被反编译的pyd文件(在Linux上为.so文件)。
解决方案Cython
作为Python语言的子集,Cython

本文介绍了如何使用Cython对Python量化策略进行加密,保护源代码不被泄露。通过Cython,Python源代码可以编译成无法被反编译的pyd文件,实现代码的安全运行。文章提供了一个详细的步骤教程,包括安装Visual Studio Community 2017,配置Python环境,使用Cython编译策略文件,以及在VN Trader中加载加密策略。
最低0.47元/天 解锁文章
1164

被折叠的 条评论
为什么被折叠?



