Metadata-Version: 2.1
Name: aiwang-indicator
Version: 0.1.6
Summary: aiwang-indicator 是一个采用通达信指标接口的 Python 技术指标编辑公式库。用户可以像在通达信中一样,使用简洁的TDX style语法进行各类技术指标的编写与回测,非常适合量化研究和策略开发。
Author: aiwangwang
Keywords: 通达信指标,TDX,技术指标,量化
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: akshare


**aiwang-indicator** 是一个采用类似通达信指标接口的 Python 技术指标编辑公式库。用户可以像在通达信中一样，使用简洁的TDX style语法进行各类技术指标的编写与回测，非常适合量化研究和策略开发。



> **说明：本项目中的部分代码来自开源项目 [MyTT](https://github.com/mpquant/MyTT)，特此致谢。**



---



## 目录



- [特性](#特性)

- [安装](#安装)

- [快速开始](#快速开始)

- [进阶用法](#进阶用法)

- [贡献与反馈](#贡献与反馈)



---



## 特性



- 通达信风格的指标函数接口，极易上手

- 支持主流金融数据加载（默认采用AkShare）

- 丰富的常用指标函数，支持自定义扩展

- 兼容 numpy/pandas，便于数据分析



---



## 安装 aiwang-indicator



```bash

pip install aiwang-indicator

```



---



## 快速开始



以下是一个简单示例，演示如何使用 **aiwang-indicator** 加载数据并计算指标：



### 1. 数据加载与环境初始化



```python

from aiwang_indicator import set_data_loader

from aiwang_indicator.data.loader.ak_loader import AkLoader



# 初始化数据加载器

data_loader = AkLoader(start_date='20240101')

set_data_loader(data_loader, default_stock_id="600900", default_freq='daily')

```



### 2. 常用行情数据序列变量



#### 默认行情数据序列



| 变量        | 含义         |

|-------------|--------------|

| `CLOSE()`/`C` | 默认收盘价序列 |

| `OPEN()`/`O`  | 默认开盘价序列 |

| `HIGH()`/`H`  | 默认最高价序列 |

| `LOW()`/`L`   | 默认最低价序列 |

| `DATE()`/`D`  | 默认日期序列      |



#### 带参数行情数据序列



| 函数         | 说明                         |

|--------------|------------------------------|

| `CLOSE('代码')` | 获取指定股票的收盘价序列 |

| `OPEN('代码')`  | 获取指定股票的开盘价序列 |

| `HIGH('代码')`  | 获取指定股票的最高价序列 |

| `LOW('代码')`   | 获取指定股票的最低价序列 |

| `DATE('代码')`  | 获取指定股票的日期序列   |

| `CLOSE('周期')` | 获取指定周期的收盘价序列 |

| `OPEN('周期')`  | 获取指定周期的开盘价序列 |

| `HIGH('周期')`  | 获取指定周期的最高价序列 |

| `LOW('周期')`   | 获取指定周期的最低价序列 |

| `DATE('周期')`  | 获取指定周期的日期序列   |

| `CLOSE('代码', '周期')`          | 获取指定股票指定周期的收盘价序列<br>如：`CLOSE('600519', 'weekly')` 获取600519的周线收盘价 |

| `OPEN('代码', '周期')`           | 获取指定股票指定周期的开盘价序列<br>如：`OPEN('600519', 'weekly')` 获取600519的周线开盘价   |

| `HIGH('代码', '周期')`           | 获取指定股票指定周期的最高价序列<br>如：`HIGH('600519', 'weekly')` 获取600519的周线最高价   |

| `LOW('代码', '周期')`            | 获取指定股票指定周期的最低价序列<br>如：`LOW('600519', 'weekly')` 获取600519的周线最低价     |

| `DATE('代码', '周期')`           | 获取指定股票指定周期的日期序列<br>如：`DATE('600519', 'weekly')` 获取600519的周线日期       |





### 3. 指标函数示例



**计算指数化序列**



```python

from aiwang_indicator import *



idx = INDEX(C)  # 将收盘价序列指数化，首日为1000

```



**计算 KDJ 指标**



```python

from aiwang_indicator import *



N = 9

M1 = 3

M2 = 3



RSV = (C - LLV(L, N)) / (HHV(H, N) - LLV(L, N)) * 100

K = SMA(RSV, M1, 1)

D = SMA(K, M2, 1)

J = 3 * K - 2 * D

```



**直接获取数据序列**



```python

from aiwang_indicator import *



close_prices = CLOSE()           # 获取默认股票的收盘价序列

open_prices = OPEN('600519')     # 获取指定股票的开盘价序列

close_prices = CLOSE('600519', 'weekly')        #获取600519的周线收盘价

```



---



## 进阶用法



- 支持自定义数据加载器

- 支持多周期、多标的切换

- 可与 pandas/numpy 等生态无缝结合



---



## 贡献与反馈



欢迎提交 Issue 或 PR，完善指标库与文档！
