Metadata-Version: 2.4
Name: vnpy_webtrader
Version: 1.1.0
Summary: Web trader application for VeighNa quant trading framework.
Project-URL: Homepage, https://www.vnpy.com
Project-URL: Documentation, https://www.vnpy.com/docs
Project-URL: Changes, https://github.com/vnpy/vnpy_webtrader/blob/master/CHANGELOG.md
Project-URL: Source, https://github.com/vnpy/vnpy_webtrader/
Project-URL: Forum, https://www.vnpy.com/forum
Author-email: Xiaoyou Chen <xiaoyou.chen@mail.vnpy.com>
License: MIT
License-File: LICENSE
Keywords: algotrading,investment,quant,quantitative,trading
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: fastapi>=0.115.12
Requires-Dist: passlib>=1.7.4
Requires-Dist: pydantic>=1.0.1
Requires-Dist: python-jose>=3.4.0
Requires-Dist: python-multipart>=0.0.20
Requires-Dist: uvicorn>=0.34.2
Requires-Dist: vnpy>=4.0.0
Requires-Dist: websockets>=15.0.1
Description-Content-Type: text/markdown

# VeighNa框架的Web服务模块

<p align="center">
  <img src ="https://vnpy.oss-cn-shanghai.aliyuncs.com/vnpy-logo.png"/>
</p>

<p align="center">
    <img src ="https://img.shields.io/badge/version-1.1.0-blueviolet.svg"/>
    <img src ="https://img.shields.io/badge/platform-windows|linux|macos-yellow.svg"/>
    <img src ="https://img.shields.io/badge/python-3.10|3.11|3.12|3.13-blue.svg" />
    <img src ="https://img.shields.io/github/license/vnpy/vnpy.svg?color=orange"/>
</p>

## 说明

针对B-S架构需求设计的Web服务应用模块，实现了提供主动函数调用（REST）和被动数据推送（Websocket）的Web服务器。

目前仅提供了基础的交易和管理接口，用户根据自己的需求扩展支持其他VeighNa应用模块的Web接口（如CTA策略自动交易等）。

## 安装

安装环境推荐基于4.0.0版本以上的【[**VeighNa Studio**](https://www.vnpy.com)】。

直接使用pip命令：

```
pip install vnpy_webtrader
```


或者下载源代码后，解压后在cmd中运行：

```
pip install .
```


## 架构

* 基于Fastapi-Restful实现的主动函数调用功能，数据流程：
	1. 用户点击浏览器中的某个按钮，发起Restful功能调用；
	2. Web服务器收到Restful请求，将其转化为RPC功能调用发送给交易服务器；
	3. 交易服务器收到RPC请求，执行具体的功能逻辑，并返回结果；
	4. Web服务器返回Restful请求的结果给浏览器。

* 基于Fastapi-Websocket实现的被动数据推送功能，数据流程：
	1. 交易服务器的事件引擎转发某个事件推送，并推送给RPC客户端（Web服务器）；
	2. Web服务器收到事件推送后，将其转化为json格式，并通过Websocket发出；
	3. 浏览器通过Websocket收到推送的数据，并渲染在Web前端界面上。

* 将程序分为两个进程的主要原因包括：
	1. 交易服务器中的策略运行和数据计算的运算压力较大，需要保证尽可能保证低延时效率；
	2. Web服务器需要面对互联网访问，将交易相关的逻辑剥离能更好保证安全性。
