# Pine Script to Python 通用转换规则

## 1. 数据结构映射

| Pine Script | Python (pandas) | 说明 |
|-------------|-----------------|------|
| `close` | `df["Close"]` | 收盘价序列 |
| `open` | `df["Open"]` | 开盘价序列 |
| `high` | `df["High"]` | 最高价序列 |
| `low` | `df["Low"]` | 最低价序列 |
| `volume` | `df["Volume"]` | 成交量序列 |
| `time` | `df.index` (datetime index) | 时间戳 |

## 2. 常用指标函数映射

### 移动平均 (Moving Averages)

| Pine Script | Python (pandas-ta) | 说明 |
|-------------|---------------------|------|
| `ta.sma(close, length)` | `ta.sma(df["Close"], length=5)` | 简单移动平均 |
| `ta.ema(close, length)` | `ta.ema(df["Close"], length=20)` | 指数移动平均 |
| `ta.wma(close, length)` | `ta.wma(df["Close"], length=10)` | 加权移动平均 |

### 动量指标 (Momentum)

| Pine Script | Python (pandas-ta) | 说明 |
|-------------|---------------------|------|
| `ta.rsi(close, length)` | `ta.rsi(df["Close"], length=14)` | 相对强弱指标 |
| `ta.macd(close, fast, slow, signal)` | `ta.macd(df["Close"], fast=12, slow=26, signal=9)` | MACD指标 |

## 3. 变量和状态管理

- Pine Script 是**向量式语言**，每根K线执行一次
- Python 使用 pandas 进行向量化操作，效率更高
- 对于需要状态记忆的变量（如跨K线的累加值），在 pandas 中使用 `cumsum()`、`shift()` 等方法

## 4. 推荐库

- **pandas**: 数据处理和分析
- **pandas-ta**: Pine Script风格的技术指标库
- **numpy**: 数值计算
- **yfinance**: 获取历史数据（可选）
- **matplotlib**: 可视化（可选）
