跳到主要内容

38 篇博文 含有标签「随笔」

查看所有标签

常规升级

  1. 升级 windows11 Windows11InstallationAssistant.exe 这个网站下载升级助手。双击升级。
  2. 升级 wsl,update 时建议全局。wsl --update & wsl --shutdown 目前还没研究出怎么玩 GUI。
  3. 装 wsa
    3.1 add-appxpackage MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral___8wekyb3d8bbwe.Msixbundle(tg 群 有下载)
    3.2 Windows 11 运行安卓子系统安装教程 安装酷安

升级后的一些定制化操作

  1. 个性化 > 任务栏 > 任务栏行为 - 任务栏对齐方式 左
  2. 个性化 > 颜色 > 选择模式 - 自定义 & 选择你的默认 Windows 模式 深色
  3. 重装 PowerToys,新版本建议在 microsoft store 下载。
  4. 删掉 TranslucentTB,从 microsoft store 下载。
  5. 任务栏设置 > 任务栏项 - 关闭聊天, 关闭搜索
  6. 在语言里先增加拼音输入法,然后再删掉拼音输入法,就只有 qq 输入法了。可能会造成闪屏。
  7. 左下角小组件设置一下。

win11 更新后资源管理器不断重启卡死的解决办法

关键词:wsl taskbar all icon flash windows 11 任务栏闪烁

震惊!竟然是 wsl 的锅,解决方法:wsl --shutdown`

根据 帖子,bug 已经在 wslg-issue 里提出,并已经修复。目前有个临时解决方案。

修改 %USERPROFILE%\.wslconfig

[wsl2]
guiApplications=false

然后重启 wsl: wsl --shutdown

解决问题

MicroSoft store 慢

在国内不要开代理,速度就上去了。

win11 右键默认显示更多选项


  • 下载 Windows 11 Classic Context Menu 后,打开则可以看到三个选项,分别对应“经典右键菜单”、“默认右键菜单”和“重启 explorer.exe”。
  • 可以自由切换经典的菜单样式。
随笔阅读需 2 分钟

投资理财

  • 简单的投资方式分为

  • 高风险

    • 股票 股票型基金
  • 中风险

    • 混合型基金
  • 低风险

    • 债券
    • 理财产品 (注意看类型 也有高风险的原油宝)
    • 货币基金等
  • 日常的一份收入 , 按一定比例投入

  • 例如(比例因人而异,有的人不用付房租):

    • 30% 日常花销
    • 20% 房租
    • 30% 低风险理财
    • 15% 中风险理财
    • 05% 高风险理财
  • 日常花销或者房租占比大,其对抗失业的风险的能力就小。

做账

  • 建议每月做账
  • 目的是定期回顾下自己的资产
  • 思考一下如何改进
  • 多总总结复盘,了解自己的资金去向(了解一个 bug 的原理,就知道如何修复 bug)
  • 不是为了做账而做账。

长期收益

这方面网上教程很多,有空我再整理。

  • 博客广告
  • 外单
  • 做自媒体
  • ...
随笔阅读需 1 分钟

先设置个代理

export http_proxy="http://192.168.31.31:9999"
export https_proxy="http://192.168.31.31:9999"

安装前置依赖

yum install libevent ncurses
yum install libevent-devel ncurses-devel gcc make bison pkg-config

安装

wget https://github.com/tmux/tmux/releases/download/3.2a/tmux-3.2a.tar.gz
tar -zxf tmux-*.tar.gz
cd tmux-*/
./configure
make && sudo make install

检查

tmux -V

搞定

搞定

推荐一个使用说明(最下面有个配置推荐 放好~/.tmux.conf 然后重开就好了)

找不到 libevent 的问题

tmux: error while loading shared libraries: libevent_core-2.1.so.6: cannot open shared object file: No such file or directory

问题 1

cp /usr/local/lib/libevent-2.1.so.6 /lib64/libevent-2.1.so.6
cp /usr/local/lib/libevent_core-2.1.so.6 /lib64/libevent_core-2.1.so.6

.

随笔阅读需 1 分钟

上班总爱划水,得思考解决方案。

微信

当水友们想认真上班的时候 分享几个不用退群的几个小技巧:

1.放弃电脑端微信 改用手机登录

2.把微信藏到隐藏图标里

藏起来就想不到啦

3.把任务栏隐藏,进入专注模式

鼠标帖到任务栏就出来了,问题是钉钉也看不到了。

4.把任务栏放到不常见的位置

如图把任务栏放到不容易看见的地方,就很少会注意到期动态。

把任务栏放到左边

退群了该看微信还是会看微信,重复,退群了该看微信还是会微信的,与群聊无关。

同时,即算关了聊天,看知乎,v2ex,或者逛github,都会是另一个角度的“微信”。

本质上还是想放松一下(虽然多资讯会带来更多的决策负担,最好的方法还是啥也不做去放松)。

既然大脑想休息,建议是和读书一样,设定上下课时间,穿插休息时间,建议用番茄时间去管理自己。

专注工具

番茄时间

优缺点可以看看参考

欢迎大佬们推荐一些好用的软件。


再讲讲下午太长的问题

A:下午好长。。。
B:番茄时间咯
B:坐25分钟(摸鱼or工作) 站5分钟(上个厕所喝杯水)
B:三个循环后有15分钟的找同事聊天时间
B:四五个循环就差不多要下班了
B:这样下午就不漫长了
A:工作太紧
B:人不是机器
B:不能可专注一下午
B:会坏掉的
随笔阅读需 2 分钟

Microsoft Todo List 最近一直连接不上, 根据 这个帖子, 设置使 To Do 网络连接独立就好了,非常有用

因为安装了 Todo List 的设备很多,一个一个设置比较麻烦。 于是写了一个 python 代码来执行。

需要的同学直接运行下列代码执行:

python -c "from urllib.request import urlopen ;exec(urlopen('https://github.com/AngusWG/TestProject/raw/master/%E5%B7%A5%E5%85%B7/to_do_list_sync_error.py').read())"
  • 不能访问 github 的记得开全局翻墙

  • 写了个直接性 github 上代码的工具,用这个好看一丢丢。

pip install run_web_pycode
pyw https://github.com/AngusWG/TestProject/raw/master/%E5%B7%A5%E5%85%B7/to_do_list_sync_error.py


源码如下:

#!/usr/bin/python3
# encoding: utf-8
# @Time : 2021-06-20 11:44:27
# @author : zza
# @Email : z740713651@outlook.com
# @File : to_do_list_sync_error.py
import os
import winreg

from typing import Optional

def get_todos_key() -> Optional[str]:
reg_path = r"Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"
access_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, reg_path)
try:
n = 0
while True:
sub_key_name = winreg.EnumKey(access_key, n)
sub_key = winreg.OpenKey(access_key, sub_key_name)
display_name = winreg.QueryValueEx(sub_key, "DisplayName")[0]
# print(display_name)
n += 1
if "Todos" in display_name:
print(display_name)
print(sub_key_name)
return sub_key_name
except WindowsError:
return None

def service() -> None:
key = get_todos_key()
if key is None:
raise KeyError("Can't find Microsoft.Todos key in registry")
command = f"CheckNetIsolation.exe loopbackexempt -a -p={key}"
os.popen(command).read()
result = os.popen("CheckNetIsolation.exe LoopbackExempt -s").read()
assert key in result, "设置失败"
print("设置成功")

if __name__ == "__main__":
service()

随笔阅读需 1 分钟

随便写写

1. 监控与错误报警

  1. 普罗米修斯监控响应速率 由运维管理 grafana
  2. sentry 收集报错日志 保存错误触发条件 并报警
  3. traceback_with_variables 在日志中打印完备触发条件
  4. traceback.format_exc() 打印错误栈

2. 跟踪调试

  1. pysnooper 打印每一步
  2. IPython.embed 直接打开命令

3. 开发环境完备

  1. CI\CD 托管测试发布上线 节约时间
  2. PYPI 托管包
  3. versioneer 用 git tag 管理包版本
  4. pip-tools requirements 管理
  5. Git-hook 提交时单元测试检查

4. 偷懒

  1. cookiecutter 建立项目 单元测试 版本管理一步到位
  2. docker 自己弄个全家桶 pypi jenkins grafana sentry mongo redis mysql 一步到胃 # todo
  3. 弄个项目做为自己的脚本集入口

5. 项目结构问题

建议直接使用 cookiecutter

  1. 项目名中划线 包名下划线 避免环境疑难杂症
  2. models 文件夹 数据结构+数据库+对象行为
  3. views/apis 文件夹 视图相关只管接口
  4. env.py 定义基础组件
  5. config.py 配置管理

6.python 代码检查

Linting

  • PyCharm 需要修改格式化 jetbrains://Python/settings?name=Editor--Code+Style--Python Continuation indent = 4
flake8 # 代码检查
flake8-black # black 风格检查
flake8-import-order # import-order(isort)check
flake8-bandit # 安全代码
flake8-annotations # 函数注释检查
flake8-builtins # python builtins 是否被变量名占用
flake8-variables-names # 变量名可读性检查
flake8-functions # 函数检查 长度+参数长度+返回值长度
flake8-expression-complexity # 函数复杂性检查(层数)

# not use
flake8-bugbear # For Flake8 finding likely bugs and design problems in your program.

随笔阅读需 2 分钟

彻底不用简书了,纪念一下。

一开始我的文章内容是基于简书 (www.jianshu.com),
也是因为简书,才喜欢上 markdown 语法。 简书的编辑器有所见即所得的 markdown 预览,
对于初学者就非常的直观。

简书编辑

简书实时保存很迅速,
在多端需要都有编辑(记录)的情况下,
右上角的按钮会实时显示成保存中,
每次保存都有历史记录,
给人非常安心的感觉。

保存 历史记录

老版本的简书文章界面非常的简洁,
隐隐有点苹果的高级质感,
现存版本的简书文章旁边都是广告,眼花缭乱。

老版本简书


营销文章占领平台,随着简书做大了,
很多机器人从 csdn 搬到了简书上,
但是对我单纯放内容的人而言,问题不大。

一次明星引战引到简书,简书开始了质量审查。
“我们”有种特性,上头传达命令时,说 10 分,下头的人做事,得要求 12 分。
于是乎简书的审查非常非常严,技术文章稍微沾点边就会锁定,哪怕以前的老文章也会被锁定。

锁定

再后面简书搜索功能关闭,至今(2021-05-17)未开。

感觉到简书离凉不久了,于是全部搬运到 github 上,
确实部分还未完成发表的文章放私有仓库编辑,再贴过来不方便,
但是胜过审查不严格,技术讨论自由。

  • 掘金

偶尔试过掘金的编辑。
掘金的文章质量目前来看还是很好,
再一个文章编辑带色彩,目前来看比简书要舒服很多。
但是考虑到万一哪天突然有了敏感词,
所以还是换本地 github 来的舒服。

掘金编辑

  • OneNote

已经用了 outlook + Microsoft todo。
也想着用 OneNote 去做笔记及文章发表,
但是最新版的对 markdown 并不友好,且国内同步是个很大的问题。
所以还是选择了当前的方案。

最终还是 vs code 的方案去写,也开始尝试接触 Vue 的框架去弄 blog。 未完成的写在 github 私有项目里,写完了的文章复制过来。 用了几个插件,保证舒适度,感谢插件开发者的贡献。

  • Markdown All in One # markdown 基本需要都在里面了
  • Note Sync # 实时同步到 github 上,建议配置 dev 分支,写好了 merge 一下。
  • Mermaid Markdown Syntax Highlighting # 画图专用
  • Marp for VS Code # markdown to PPT

目前用于写博客还挺舒服的。


今天把简书的内容全部搬过来,简书彻底废弃,特此纪念一下。

_

随笔阅读需 3 分钟

记录一下一些 Pycharm 的不爽点。 多了的话就换 vscode 为主力了。

coverage

  • 在多项目下,report 是显示第一个项目的 report 导致覆盖率为 0。
  • .coveragerc 能识别不跑的代码,但是不能识别不现实,不跑会导致覆盖率下降。 目前用注释干掉了 (# pragma: no cover)。

pycharm 打不开问题

问题连接

首先确定 wsl 是否能打开

然后 WORKAROUND: run the following commands in the Administrator console (cmd.exe):

netsh int ipv4 set dynamicport tcp start=49152 num=16383 netsh int ipv4 set dynamicport udp start=49152 num=16383 If the above doesn't help, please try these commands instead:

net stop winnat net start winnat

提示 Package requirements 'traceback_with_variables’, 'sentry_sdk' are not satisfied

  • 改包名到正确包名
    • traceback-with-variables
    • sentry-sdk
  • 右下角编辑器 - manage packages - python package - 设置(小齿轮)- 增加 Package Repository

doctest 不支持

随笔阅读需 1 分钟

参考 LINK : fatal error LNK1158: cannot run 'rc.exe'

python 编译 cython 文件的时候

报错如下

    ERROR: Command errored out with exit status 1:    
command: 'd:\programdata\miniconda3\envs\py35\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'D:\\PycharmProjects\\rqalpha-mod-optimizer2\\setup.py'"'"'; __file__='"'"'D:\\PycharmProjects\\rqalpha-mo
d-optimizer2\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
cwd: D:\PycharmProjects\rqalpha-mod-optimizer2\
Complete output (38 lines):
running develop
running egg_info
writing requirements to rqalpha_mod_optimizer2.egg-info\requires.txt
writing dependency_links to rqalpha_mod_optimizer2.egg-info\dependency_links.txt
writing rqalpha_mod_optimizer2.egg-info\PKG-INFO
writing top-level names to rqalpha_mod_optimizer2.egg-info\top_level.txt
reading manifest file 'rqalpha_mod_optimizer2.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '*' found under directory 'tests'
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
writing manifest file 'rqalpha_mod_optimizer2.egg-info\SOURCES.txt'
running build_ext
cythoning rqalpha_mod_optimizer2\api.py to rqalpha_mod_optimizer2\api.c
cythoning rqalpha_mod_optimizer2\mod.py to rqalpha_mod_optimizer2\mod.c
cythoning rqalpha_mod_optimizer2\_version.py to rqalpha_mod_optimizer2\_version.c
building 'rqalpha_mod_optimizer2.api' extension
creating build
creating build\temp.win-amd64-3.5
creating build\temp.win-amd64-3.5\Release
creating build\temp.win-amd64-3.5\Release\rqalpha_mod_optimizer2
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\programdata\miniconda3\envs\py35\include -Id:\programdata\miniconda3\envs\py35\include "-IC:\Program Fil
es (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows K
its\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" /Tcrqalpha_mod_optimizer2\api.c /Fobuild\temp.win-amd64-3.5\Release\rqalpha_mod_optimizer2\api.obj
api.c
creating D:\PycharmProjects\rqalpha-mod-optimizer2\build\lib.win-amd64-3.5
creating D:\PycharmProjects\rqalpha-mod-optimizer2\build\lib.win-amd64-3.5\rqalpha_mod_optimizer2
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:d:\programdata\miniconda3\envs\py35\libs /LIBPATH:d:\programda
ta\miniconda3\envs\py35\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Wi
ndows Kits\10\lib\10.0.17763.0\um\x64" /EXPORT:PyInit_api build\temp.win-amd64-3.5\Release\rqalpha_mod_optimizer2\api.obj /OUT:build\lib.win-amd64-3.5\rqalpha_mod_optimizer2\api.cp35-win_amd64.pyd /IMPLIB:build\temp.win-amd64
-3.5\Release\rqalpha_mod_optimizer2\api.cp35-win_amd64.lib
api.obj : warning LNK4197: export 'PyInit_api' specified multiple times; using first specification
Creating library build\temp.win-amd64-3.5\Release\rqalpha_mod_optimizer2\api.cp35-win_amd64.lib and object build\temp.win-amd64-3.5\Release\rqalpha_mod_optimizer2\api.cp35-win_amd64.exp
Generating code
Finished generating code
LINK : fatal error LNK1158: cannot run 'rc.exe'
d:\programdata\miniconda3\envs\py35\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: D:\PycharmProj
ects\rqalpha-mod-optimizer2\rqalpha_mod_optimizer2\api.py
tree = Parsing.p_module(s, pxd, full_module_name)
d:\programdata\miniconda3\envs\py35\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: D:\PycharmProj
ects\rqalpha-mod-optimizer2\rqalpha_mod_optimizer2\mod.py
tree = Parsing.p_module(s, pxd, full_module_name)
d:\programdata\miniconda3\envs\py35\lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: D:\PycharmProj
ects\rqalpha-mod-optimizer2\rqalpha_mod_optimizer2\_version.py
tree = Parsing.p_module(s, pxd, full_module_name)
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1158
----------------------------------------
Rolling back uninstall of rqalpha-mod-optimizer2
Moving to d:\programdata\miniconda3\envs\py35\lib\site-packages\rqalpha_mod_optimizer2-0.2.5.dist-info\
from d:\programdata\miniconda3\envs\py35\lib\site-packages\~qalpha_mod_optimizer2-0.2.5.dist-info
Moving to d:\programdata\miniconda3\envs\py35\lib\site-packages\rqalpha_mod_optimizer2\
from d:\programdata\miniconda3\envs\py35\lib\site-packages\~qalpha_mod_optimizer2
ERROR: Command errored out with exit status 1: 'd:\programdata\miniconda3\envs\py35\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'D:\\PycharmProjects\\rqalpha-mod-optimizer2\\setup.py'"'"'; __file__='"'
"'D:\\PycharmProjects\\rqalpha-mod-optimizer2\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' dev
elop --no-deps Check the logs for full command output.

解决

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

这个目录下的 rc.exe 和 rcdll.dll 拷贝到我的 Visual C++ 的 VC/Bin 目录下:

D:\Apps\x86\Microsoft\Visual_Studio\v14.0\VC\bin

通过错误信息,我电脑的文件位置是 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\

注意我的 Visual C++ 的安装目录可能和你的不同,你需要用你自己的的 VC/Bin 目录。

哑巴日记

随笔阅读需 2 分钟

PyCharm及 VS Code 快速配置RQSDK上手

PyCharm

为什么要用PyCharm?

  • PyCharm 作为 IDE(集成开发环境),再带 python 解释器和虚拟环境管理功能,开箱即用
  • PyCharm 默认的内置功能极为丰富(Git、数据库支持、框架支持等),无需手动配置插件便可直接使用
  • PyCharm 内置了在业界无出其右的静态代码审查(code inspect)功能

PyCharm 下载

官网提供了专业版和社区版下载。

  • 专业版用于科学计算和 Web 开发。同时具有 HTML、JS 和 SQL 等支持。专业版 PyCharm 支持试用30天。

  • 社区版用于通常的 Python 开发。免费且开源。

创建 PyCharm 工程(Project)

下载且安装完成 PyCharm 后,便可打开 Pycharm 后建立一个工程。该阶段可以设置项目使用的 Python 解释器/虚拟环境,后续开发中的代码提示、调试等功能都依赖为工程配置的虚拟环境:

  1. 点击 Create New Project 按钮
  2. 展开 Project interpreter
  3. 选择虚拟环境(若没有已存在环境,则 PyCharm 会自动创建)
  4. 点击 Create 按钮

建立一个项目

如果没有python环境 ,编辑器右下角会有进度条提示python的安装进度。

工程创建完成后,亦可在设置中修改当前工程使用的虚拟环境:

  1. 点击左上角菜单栏FIle -> Settings(macOS 中为 PyCharm -> Preference)
  2. 点击 Project: **** -> Project Interpreter
  3. 点击右边小齿轮 -> Show All
  4. 点击加号(+) -> 选择虚拟环境(Virtualenv Environment) 或者 Conda 环境(Conda Environment) `

配置python环境

在 PyCharm 中安装 RQSDK

若当前工程配置的虚拟环境中还未安装 RQSDK,可以直接在 PyCharm 中调用终端(terminal)安装,PyCharm 会自动在改终端激活先前配置好的虚拟环境。 若点击左下角 Terminal 以激活终端,输入以下代码以安装 RQSDK

pip install -i https://pypi.douban.com/simple rqsdk     

使用 PyCharm 编写代码

  • 创建 Python 模块(module)鼠标右键项目文件夹 -> New -> Python File -> 输入文件名

  • 若当前工程正确配置了虚拟环境,且虚拟环境中安装了 RQSDK,在 py 文件中输入“rq”时便可以看到 PyCharm 给出的代码提示 image.png

  • 在 py 文件中输入代码,如使用 RQDatac 调取日线数据:

import rqdatac    

rqdatac.init()
print(rqdatac.get_price("000001.XSHE"))
  • 在编辑区域点击右键执行 Run... 便可以运行当前模块,注意,上述代码的运行要求事先使用 rqsdk license 命令配置好 license。

  • 当用了 rqsdk install rqalpha_plus 后,当前python环境也会有 rqoptimizer 和 rqfactor

使用 PyCharm 运行回测

回测在终端中需要通过 rqalpha-plus 命令而非 python 命令运行,故在 PyCharm 中运行回测需要进行一些额外的配置,以简单的 buy-and-hold 回测策略为例。

1 创建名为 buy_and_hold 的 python 模块并键入以下代码:

# buy_and_hold.py    

def init(context):
context.s = "000001.XSHE"
context.fired = False

def handle_bar(context, bar_dict):
if not context.fired:
order_shares(context.s, 1000)
context.fired = True

2 点击右上角的 Add Configuration

打开配置启动参数窗口

3 在打开的窗口中将第一项左侧默认的运行方式由 Script path 修改为 Module name 4 设置 Module namerqalpha_plus,设置 Parameters 为回测运行的子命令 run 及其参数,如:

run -f buy_and_hold.py -s 20190101 -e 20191231 -a stock 20000 --plot    

配置启动命令

5 点击 OK 按钮以完成配置 6 点击右上角的三角形按钮以运行回测,或点击虫子按钮以调试(debug)代码

运行策略


Visual Studio Code (VS Code)

为什么要用 VS Code?

  1. 轻量化,下载安装更快;资源占用低,对配置相对不足的计算机更友好
  2. 启动快速,首次创建工程时没有漫长等待创建索引的过程
  3. 生态健全,有着丰富的第三方主题和插件

Visual Studio Code官网可以下载标准版。

安装 Python 插件(Extensions)

VScode 不是 python 专用的编辑器,故使用其开发 python 需要安装专门的插件支持才能获得代码提示、审查、调试等功能:

  • 在左侧栏点击 Extensions 后,搜索 python,选择搜索到的第一项并点击 install 按钮安装。

image.png

设置虚拟环境/Python 解释器

  • 使用 Ctrl+Shift+P 快捷键(macOS 为 Command+Shift+P)打开 command palette 窗口
  • 输入关键字 python select 并找到 Python: Select Interpreter 一项, 点击该项并在随后弹出的 Python 解释器列表中选择目标虚拟环境中的解释器(若目标虚拟环境未列出,则需要手工输入解释器的路径)

使用 VS Code 编写代码

  • 新建一个文件夹
  • 将文件夹拖入到VS code 窗口
  • 创建py文件 open folder -> new file 文件名:demo_rqdatac.py

创建py文件

VS code 代码补全功能

  • 使用rqdatac 查看平安银行日线数据

文件中输入以下代码:

import rqdatac    

rqdatac.init()
print(rqdatac.get_price("000001.XSHE"))

vs code demo

  • 运行rqalpha-plus 生成样例策略并运行

image.png

运行样例策略需要的命令如下 (假设conda环境名为py35)

conda activate py35    
pip install rqsdk -i https://pypi.douban.com/simple/
rqsdk install rqalpha-plus
rqsdk download-data
rqalpha-plus examples
rqalpha-plus run -f examples/buy_and_hold.py -s 2018-01-01 -e 2018-05-31 -fq 1m --plot --account stock 1000000

命令对应作用如下:

  • 激活名为 py35 的 conda环境,如果没有则输入conda create -n py35
  • 安装 rqsdk和rqalpha-plus
  • 生成样例策略文件夹
  • 使用 examples 的 buy_and_hold.py 策略启动回测

用debug方式运行回测

选择python解释器 1

选择python解释器 2

launch.json配置如下

{    
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 模块",
"type": "python",
"request": "launch",
"module": "rqalpha-plus",
"args": ["run", "-f", "examples\\buy_and_hold.py", "-s", "2018-01-01", "-e", "2018-05-31", "-fq", "1m", "--plot", "--account", "stock", "1000000"]
}
]
}

debug 运行buy_and_hold.py 1

debug 运行buy_and_hold.py 2

随笔阅读需 6 分钟