0%

Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。

Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。

TUNA 还提供了 Anaconda 仓库的镜像,运行以下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --set show_channel_urls yes

说明:

conda-forge:

A community led collection of recipes, build infrastructure and distributions for the conda package manager.

Python量化交易实战
欢迎您扫码订阅我的微信公众号: pyquant

搭建github博客,参考如下步骤

https://pages.github.com/

注册域名,修改域名DNS地址

找个域名服务商注册个域名,我使用的是godaddy,如果以后需要指向国内空间,建议在国内域名服务商注册。

注册好域名后,可以直接将域名cname到github博客地址,也可以使用dnspod.com的dns解析域名,在域名管理中把dns地址修改dnspod的dns:

    a.dnspod.com
    b.dnspod.com
    c.dnspod.com

然后需要在github上做个设置,把域名绑定到github账号上,否则直接访问域名会报404,具体设置步骤如下:

https://help.github.com/articles/adding-or-removing-a-custom-domain-for-your-github-pages-site/

使用hexo管理博客

Hexo是一个简单、快速、强大的基于 Github Pages 的博客发布工具,支持Markdown格式,有众多优秀插件和主题。

hexo安装步骤参考:

https://hexo.io/

推荐next博客主题,我的博客就是使用的这个主题,地址是:

https://github.com/iissnan/hexo-theme-next

设置_config.yml和github sshkey

deploy:
  type: git
  repo: https://github.com/YourgithubName/YourgithubName.github.io.git
  branch: master

hexo发布时会把更新提交到仓库,所以需要设置github sshkey

发布文章

基本命令如下:

进入blog目录下,执行如下命令创建一篇博客

hexo new post 文章标题

创建好后可以在markdown工具中编写文章,macbook下推荐用MWeb来写博客,MWeb有两种模式:文档库和外部模式,使用外部模式到blog目录下就可以编写了

编写好博客后发布:

hexo d -g

等待几秒中后刷新博客地址就可以看到更新了。

Python量化交易实战
欢迎您扫码订阅我的微信公众号: pyquant

基础概念

  • 证券市场的交易机制

    分为报价驱动市场(Quote-driven Market 和订单驱动市场(Order-driven Market)两类,前者依赖做市商提供流动性,后者通过限价单订单提供流动性,交易通过投资者的买进委托和卖出委托竞价所形成。中国的证券市场属于订单驱动市场,包括股票市场和期货市场。

  • 金融市场微观结构理论

    是对金融市场上金融资产的交易机制及其价格形成过程和原因进行分析。一般认为该理论产生于1960年代末,德姆塞茨1968年发表的论文《交易成本》奠定了其基础。

  • 订单簿(order book)

  • 信息簿(MessageBook)

    包括最明细的订单撮合数据,包括每个订单的下单量、成交价、订单类型等信息

  • 对冲

金融学上,对冲(hedge)指特意减低另一项投资的风险的投资。它是一种在减低商业风险的同时仍然能在投资中获利的手法。一般对冲是同时进行两笔行情相关、方向相反、数量相当、盈亏相抵的交易。行情相关是指影响两种商品价格行情的市场供求关系存在同一性,供求关系若发生变化,同时会影响两种商品的价格,且价格变化的方向大体一致。方向相反指两笔交易的买卖方向相反,这样无论价格向什么方向变化,总是一盈一亏。当然要做到盈亏相抵,两笔交易的数量大小须根据各自价格变动的幅度来确定,大体做到数量相当。

期货

  • 合约

指由期货交易所统一制订的、规定在将来某一特定的时间和地点交割一定数量和质量实物商品或金融商品的标准化合约。通常所说的期货就是指期货合约。

  • 主力合约

指的是成交量最大的合约。因为它是市场上最活跃的合约,所有投机者基本上都在参与这个合约。也有说法是主力合约是持仓量最大的合约,因为通常来讲,持仓量最大的合约也是成交量最大的合约。

  • IF、IH、IC

IF:(share price)Index Future,直译就是股指期货,标的物是沪深300指数。命名来自英文。
IH:I表示股指期货,H是“沪”的拼音第一个字母。标的物是上证50。命名中英混杂。
IC:I表示股指期货,C是China的第一个字母,标的物是中证500。命名更是不伦不类。

  • Open Interest

未平仓合约,持仓兴趣

Python量化交易实战
欢迎您扫码订阅我的微信公众号: pyquant

执行命令:

pip install pymssql

报错信息如下:

  Running setup.py install for pymssql ... error
    Complete output from command /home/lthpc/anaconda3/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-cpwncwyq/pymssql/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-4l_hdx9q-record/install-record.txt --single-version-externally-managed --compile:
    setup.py: platform.system() => 'Linux'
    setup.py: platform.architecture() => ('64bit', 'ELF')
    setup.py: platform.linux_distribution() => ('debian', 'stretch/sid', '')
    setup.py: platform.libc_ver() => ('glibc', '2.2.5')
    setup.py: Not using bundled FreeTDS
    setup.py: include_dirs = ['/usr/local/include']
    setup.py: library_dirs = ['/usr/local/lib']
    running install
    running build
    running build_ext
    cythoning _mssql.pyx to _mssql.c
    warning: _mssql.pyx:143:4: Exception already a builtin Cython type
    building '_mssql' extension
    creating build
    creating build/temp.linux-x86_64-3.6
    gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I/home/lthpc/anaconda3/include/python3.6m -c _mssql.c -o build/temp.linux-x86_64-3.6/_mssql.o -DMSDBLIB
    _mssql.c:435:22: fatal error: sqlfront.h: No such file or directory
    compilation terminated.
    error: command 'gcc' failed with exit status 1

google得到以下解决办法:

https://stackoverflow.com/questions/17368964/trying-to-install-pymssql-on-ubuntu-12-04-using-pip

尝试执行命令安装FreeTDS依赖包:

sudo apt-get install freetds-dev

如果安装过程出现依赖包版本的问题请先更新ubuntu软件源

sudo apt-get update

再次执行pymssql,安装成功:

$ pip install pymssql
Collecting pymssql
  Using cached pymssql-2.1.3.tar.gz
Building wheels for collected packages: pymssql
  Running setup.py bdist_wheel for pymssql ... done
  Stored in directory: /home/lthpc/.cache/pip/wheels/c1/1e/75/bc600eb8a5c9ed77fb1edf15ae5a48b5b427b0390c9a7c9dff
Successfully built pymssql
Installing collected packages: pymssql
Successfully installed pymssql-2.1.3
Python量化交易实战
欢迎您扫码订阅我的微信公众号: pyquant

docker启动Grafana + Influexdb

docker run -d \
  --name docker-statsd-influxdb-grafana \
  -p 3003:3003 \
  -p 8083:8083 \
  -p 8086:8086 \
  -p 22022:22 \
  -p 8125:8125/udp \
  samuelebistoletti/docker-statsd-influxdb-grafana:latest

设置InfluxDB

打开 http:localhost:8083,设置用户名密码

Username: root
Password: root
Port: 8086

设置Grafana

打开http:localhost:3003,登录用户名密码为

Username: root
Password: root

登录之后按步骤设置数据源

Url: http://localhost:8086
Database:	telegraf
User: telegraf
Password:	telegraf

安装并设置TeleGraf

下载地址:https://portal.influxdata.com/downloads

设置

/etc/telegraf/telegraf.conf
修改influxdb地址,用户名及密码,设置hostname

重启服务

service telegraf restart

导入Grafana Dashboard

下载最新版本的dashboard配置:
https://grafana.com/dashboards/1443/revisions

在grafana的新建dashboard并导入配置,完成。

注意

docker内部已经启动了telegraf,如果不需要的话可以停掉,在多台服务器上安装并配置Telegraf写入同一Influxdb就可以实现对集群进行系统监控。

参考

  1. 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
  2. docker-statsd-influxdb-grafana
  3. Send CollectD metrics to InfluxDB
Python量化交易实战
欢迎您扫码订阅我的微信公众号: pyquant