# openctp-ctpopt-python
**Repository Path**: yongfuxie/openctp-ctpopt-python
## Basic Information
- **Project Name**: openctp-ctpopt-python
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-09-08
- **Last Updated**: 2024-09-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
openctp-ctpopt
openctp-ctpopt是由 [**openctp**](https://github.com/openctp) 使用Swig技术制作的CTP股票期权Python版接口。
简化了对接CTP股票期权API的过程,节省精力,快速上手 :rocket:
---
* [支持版本](#支持版本)
* [快速使用](#快速使用)
* [方式一 pip](#方式一-pip)
* [方式二 手动配置](#方式二-手动配置)
* [代码示例](#代码示例)
* [编码增强](#编码增强)
* [字符集问题](#字符集问题)
* [说明](#说明)
---
## 支持版本
| CTPAPI(C++) | openctp-ctpopt(python) | win x86 | win x64 | linux x64 |
| ----------- | ---------------------- | ------------------ | ------------------ | ------------------ |
| 3.7.0 | 3.7.0.* | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| 3.6.7 | 3.6.7.* | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| 3.6.3 | 3.6.3.* | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| 3.5.8 | 3.5.8.* | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## 用法
提供了两种安装方式: pip install安装、手动下载安装。
### 方式一:pip install方式
选择一个版本,如 3.7.0
```shell
pip install openctp-ctpopt==3.7.0.* -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host=pypi.tuna.tsinghua.edu.cn
```
引用方法:
```python
from openctp_ctpopt import tdapi, mdapi
```
### 方式二: 手动下载方式
手动下载指定版本的动态库文件,并配置库路径。
- Windows
因为 windows 下,不同的 python 版本编译的动态库之间不可共用,所以不同的 python 版本需要下载指定版本对应的动态库。
如: 3.7.0-x64, python 3.10
从目录 `3.7.0/win64` 和 `3.7.0/win64/py310` 下载库文件
将下载的文件放在本地同一个目录下
```PowerShell
# 下载文件
_thosttraderapi.pyd
_thostmduserapi.pyd
thosttraderapi.py
thostmduserapi.py
soptthosttraderapi_se.dll
soptthostmduserapi_se.dll
```
- Linux
选择一个期权ctpapi版本,如: 3.7.0
从目录`3.7.0/linux64`下载所有的文件
将下载的文件放在同一目录下
```bash
_thosttraderapi.so
_thostmduserapi.so
thosttraderapi.py
thostmduserapi.py
libsoptthosttraderapi_se.so
libsoptthostmduserapi_se.so
```
将文件所在路径配置库路径(specify_path填写自己的路径)
```bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:
```
## 代码示例
参考 td_demo.py / md_demo.py
*通过pip安装的可以直接使用代码示例;手动安装配置的,需要修改一下引入方式, 是`import thosttraderapi`
而不是`import openctp_ctpopt`*
## 编码增强
在高级编辑器或IDE中,可以方便的查看接口说明及各字段含义。如下(Pycharm)
.
.
## 字符集问题
Linux下安装后,需要安装中文字符集,否则导入时报错:
```text
>>> import openctp_ctpopt
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
Aborted
```
需要安装 `GB18030` 字符集,这里提供 ubuntu/debian/centos 的方案:
```bash
# Ubuntu (20.04)
sudo apt-get install -y locales
sudo locale-gen zh_CN.GB18030
# Debian (11)
sudo apt install locales-all
sudo localedef -c -f GB18030 -i zh_CN zh_CN.GB18030
# CentOS (7)
sudo yum install -y kde-l10n-Chinese
sudo yum reinstall -y glibc-common
```
## 说明
- openctp-ctp库默认只支持CTP柜台,如需连接TTS、XTP、TORA等柜台,可以使用openctp的CTPAPI兼容接口方式,将CTP的dll(如thosttraderapi_se.dll)替换为相应柜台的版本即可,具体见[openctp](http://github.com/openctp/openctp)
- CTPAPI-Python制作攻略: [swig转换CTPAPI为Python攻略](https://www.jedore.top/blog/post/ctpapi-swig-python/)。
- **用于实盘前请充分测试相应的功能,openctp不对此承担任何责任。**