首先要安装python,vnpy4.1建议安装python3.13,建议使用pyenv进行安装,比较好进行多版本管理
1、安装pyenv
首先我们要已经安装brew,如果没有安装,安装方法如下:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装pyenv,可以用brew进行安装:
brew update
brew install pyenv
配置pyenv环境变量:
如果用的自带shell工具,则在Terminal执行:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
如果个人安装了zshell,则在Terminal执行:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
exec $SHELL -l
2、安装python
执行命令查看可安装的python版本:
pyenv install --list
安装python3.13
pyenv install 3.13.3 -v
3、python版本管理
安装完成之后需要对数据库进行更新:
pyenv rehash
查看当前已安装的python版本(如果执行pyenv version则直接显示当前版本):
$ pyenv versions
* system (set by /home/seisman/.pyenv/version)
3.13.3
其中的星号表示当前正在使用的是系统自带的python。
设置全局的Python版本:
pyenv global 3.13.3
可以再次执行python global system再重新切换回系统自带版本。
另外python切换版本有三种形式global、local、shell:
// 不同 python 版本之间切换
// 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式
pyenv global 2.7.16
// 设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高
pyenv local 2.7.16
// 设置 Shell 当前会话,智慧影响当前会话的Python版本,一旦关掉当前Terminal或者另开一个Terminal就失效了
pyenv shell 2.7.16
// 优先级:shell>local>global
4、安装vnpy
(1)安装vnpy4.1
首先,新建一个vnpy的文件夹
到这里下载源码https://github.com/vnpy/vnpy/releases/tag/4.1.0
解压到vnpy的文件夹里
然后执行bash install_osx.sh命令进行安装
(2)安装CTP,建议在vnpy4.1的文件夹内
git clone https://github.com/vnpy/vnpy_ctp.git
cd vnpy_ctp
pip3 install .
(3)安装各类量化策略的交易应用(app):
pip install vnpy_ctastrategy vnpy_ctabacktester vnpy_spreadtrading vnpy_optionmaster vnpy_portfoliostrategy vnpy_algotrading vnpy_scripttrader vnpy_paperaccount vnpy_chartwizard vnpy_portfoliomanager vnpy_rpcservice vnpy_datamanager vnpy_datarecorder vnpy_excelrtd vnpy_riskmanager vnpy_webtrader pip install vnpy_mysql pip install vnpy_sqlite
(4)运行vnpy
在vnpy4.1文件夹里自建run.py文件,然后python run.py运行,文件内容如下
import os
# 启用高 DPI 缩放
os.environ["QT_ENABLE_HIGHDPI_SCALING"] = "1"
# 禁用特定警告
os.environ["QT_LOGGING_RULES"] = "qt.core.qobject.connect=false"
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
from vnpy_spreadtrading import SpreadTradingApp
from vnpy_optionmaster import OptionMasterApp
from vnpy_portfoliostrategy import PortfolioStrategyApp
from vnpy_algotrading import AlgoTradingApp
from vnpy_scripttrader import ScriptTraderApp
from vnpy_paperaccount import PaperAccountApp
from vnpy_datarecorder import DataRecorderApp
from vnpy_datamanager import DataManagerApp
from vnpy_riskmanager import RiskManagerApp
# from vnpy_rpcservice import RpcServiceApp
from vnpy_chartwizard import ChartWizardApp
# from vnpy_portfoliomanager import PortfolioManagerApp
from vnpy_webtrader import WebTraderApp
def main():
"""Start VeighNa Trader"""
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
main_engine.add_app(SpreadTradingApp)
main_engine.add_app(OptionMasterApp)
main_engine.add_app(PortfolioStrategyApp)
main_engine.add_app(AlgoTradingApp)
main_engine.add_app(ScriptTraderApp)
main_engine.add_app(PaperAccountApp)
main_engine.add_app(DataRecorderApp)
main_engine.add_app(DataManagerApp)
main_engine.add_app(RiskManagerApp)
# main_engine.add_app(RpcServiceApp)
main_engine.add_app(ChartWizardApp)
# main_engine.add_app(PortfolioManagerApp)
main_engine.add_app(WebTraderApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
if __name__ == "__main__":
main()
转载请注明:八度生活 » MAC 安装vnpy 4.1 量化系统