我试图实现 WorldQuant 发布的 101 个量化交易因子 ( https://arxiv.org/pdf/1601.00991.pdf )。
\n一个典型的因素是处理股票的价格和数量信息以及时间维度和股票维度。以 alpha 因子 #4 为例:(-1 * Ts_Rank(rank(low), 9))。这是动量阿尔法信号。最低价是一组股票在一定时期内的最低价。Rank 是对每行 panel\xe2\x80\x99s 进行排名的横截面过程(时间快照)。Ts_Rank 是在指定窗口内移动_rank panel\xe2\x80\x99s 每列(一只股票)的时间序列过程。
\n直观上,Pandas 数据框或NumPy矩阵应该适合 101 个 alpha 因子的实现。下面是我迄今为止使用NumPy得到的最佳实现。然而,性能太低了。在我的 Intel core i7 Windows 机器上,以 5000(交易日期)× 200(股票)矩阵作为输入运行 alpha #4 因子大约需要 45 秒。
\n我还遇到了 DolphinDB,一个具有内置分析功能的时间序列数据库(https://www.dolphindb.com/downloads.html)。对于相同的因子 Alpha#4,DolphinDB 的运行时间仅为 0.04 秒,比 NumPy 快 1000倍版本快 1000 倍。然而,DolphinDB 是商业软件。有人知道更好的 python 实现吗?或者有什么技巧可以改进我当前的 python 代码以实现与 DolphinDB 相当的性能?
\nNumpy实现(基于https://github.com/yli188/WorldQuant_alpha101_code)
\nimport …Run Code Online (Sandbox Code Playgroud) 我有这个代码myname.py:
# myname.py
def get_name():
return "Jim"
Run Code Online (Sandbox Code Playgroud)
这在hello.py:
# hello.py
import myname
name = myname.get_name()
print("hello {}".format(name))
Run Code Online (Sandbox Code Playgroud)
当我尝试hello.py在 MINGW64 shell 中执行时,会发生以下错误:
b2b@DESKTOP-5QEK604 MINGW64 ~/Desktop/Python moje projekty/Dev/apiarena_django/git (master)
$ ./hello.py
./hello.py: line 2: import: command not found
./hello.py: line 4: syntax error near unexpected token `('
./hello.py: line 4: `name = m.get_name()'
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我正在寻找如何manage.py dbshell在虚拟环境中运行而不出现错误的解决方案:CommandError:您似乎没有安装“sqlite3”程序或在您的路径上。
我已经在venv. 我添加了环境变量的路径。我可以在 Django 项目中填充数据库,所以这不是MySQL不工作的情况。类似问题的答案在某种程度上不适用于我的情况。Windows 10、Python 3.x
python ×2
command-line ×1
django ×1
dolphindb ×1
mingw-w64 ×1
numpy ×1
pandas ×1
python-3.x ×1
virtualenv ×1
windows ×1