文章目录
hfpy架构
部署
安装docker
Docker Desktop - Max Win
https://hub.docker.com/editions/community/docker-ce-desktop-windows
系统需求
Microsoft Windows 10 Professional or Enterprise 64-bit
安装 Hyper-V virtualization
BIOS开启CPU虚拟
Docker - Linux
在线安装
curl -fsSL https://get.docker.com | bash -s docker mirror Aliyun
systemctl enable docker
systemctl start docker
docker-compose
curl -o /usr/local/bin/docker-compose -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-Linux-x86_64
离线安装
https://blog.csdn.net/along1976/article/details/106611750
部署data server
https://hub.docker.com/r/haifengat/hfpy_data_server
docker-compose.yml
version: "3.7"
services:
# 启动: docker-compose --compatibility up -d
hfpy_data_server:
image: haifengat/hfpy_data_server
container_name: hfpy_data_server
restart: always
ports:
- "15555:5055"
environment:
- TZ=Asia/Shanghai
# 数据服务端口
- port=5055
# redis 实时行情
- redis_addr=redis_real:6379
# postgres 历史K线数据
- pg_config=postgresql://postgres:123456@pg_min:5432/postgres
# 分钟数据路径
- min_csv_gz_path=/home/min_csv_gz
volumes:
- .:/home/min_csv_gz
depends_on:
- pg_min
- redis_real
deploy:
resources:
limits:
cpus: '1'
memory: 2G
reservations:
memory: 200M
# 遇到the database system is starting up错误, 配置数据文件下的postgres.conf,hot_standby=on
pg_min:
image: postgres:12
container_name: pg_min
restart: always
environment:
TZ: "Asia/Shanghai"
POSTGRES_PASSWORD: "123456"
ports:
- "25432:5432"
volumes:
- /mnt/pg_future/pgdata:/var/lib/postgresql/data
real_md:
image: haifengat/ctp_real_md
container_name: real_md
restart: always
environment:
- "TZ=Asia/Shanghai"
- "redis_addr=redis_real:6379"
- "front_trade=tcp://180.168.146.187:10101"
- "front_quote=tcp://180.168.146.187:10111"
- "login_info=008105/1/9999/simnow_client_test/0000000000000000"
deploy:
resources:
limits:
cpus: '1'
memory: 2G
reservations:
memory: 200M
depends_on:
- redis_real
redis_real:
image: redis:6.0.5
container_name: redis_real
restart: always
environment:
- TZ=Asia/Shanghai
配置
data server
- port
- 数据服务端口
- 默认 5055
- redis_addr
- 实时行情的redis库地址
- 默认 redis_real:6379
- pg_config
- 用于保存历史K线的 postgresql 数据库
- 默认 postgresql://postgres:123456@pg_min:5432/postgres
- min_csv_gz_path(可选)
分钟数据 min.csv.gz 的路径
不配置,则不启动分钟数据导入功能
将分钟数据包放在此目录中,data server会导入到postgresql中
real_md
实时行情处理,配置交易、行情前置及登录信息,订阅并接收实时行情后,合成分钟数据存于redis中。
- "redis_addr=redis_real:6379" - "front_trade=tcp://180.168.146.187:10101" - "front_quote=tcp://180.168.146.187:10111" - "login_info=008105/1/9999/simnow_client_test/0000000000000000"
启动
docker-compose --compatibility up -d
带 compatibility 参数,以便内存、CPU限制的配置生效。
部署hfpy
docker-compose.yml
version: "3.7"
services:
hfpy:
image: haifengat/hfpy
container_name: hfpy
restart: always
environment:
# config.yml所在目录
config_path: /home/config/
volumes:
# 个人策略文件夹
- ./strategies:/home/strategies
# hfpy配置文件
- ./config.yml:/home/config/config.yml
补充
xml->tick
从期货公司获得xml文件后,整理为tick数据。
version: "3.7"
services:
go_xml_tick:
image: haifengat/go_xml_tick
container_name: go_xml_tick
restart: always
environment:
- TZ=Asia/Shanghai
# xml压缩包文件路径
- xmlFilePath=/home/xml_path
# tick csv文件保存路径
- csvPath=/home/csv_path
# xml文件所在的sftp配置,不配置则不读取
- xmlSftp=192.168.111.191/22/root/123456
volumes:
- /mnt/future_xml:/home/xml_path
- /mnt/future_tick_csv_gz:/home/csv_path
tick->min
将上一步生成的tick数据合成分钟数据
version: "3.7"
services:
tick_min:
image: haifengat/tick_min
container_name: tick_min
restart: always
environment:
- TZ=Asia/Shanghai
- tick_csv_gz_path=/home/tick_csv_gz_path
- min_csv_gz_path=/home/min_csv_gz_path
volumes:
# 上一步生成的tick数据路径
- /mnt/future_tick_csv_gz:/home/tick_csv_gz_path
# 分钟数据存放路径,与data server部署结合使用,可自动导入pg库中。
- /mnt/future_min_csv_gz:/home/min_csv_gz_path