## 分型（FX）
----

分型是缠论最基础的识别单元，由连续三根**去包含后**的K线构成。

### 去包含处理

相邻两根K线存在包含关系（一根K线高低完全被另一根覆盖）时，需合并为一根：

- **上升方向**：取两根K线中较大的高点和较大的低点
- **下降方向**：取较小的高点和较小的低点

### 顶分型（Mark.G）

```
    ██
  ██  ██
██      ██
```

条件：`k1.high < k2.high > k3.high` 且 `k1.low < k2.low > k3.low`

表示上涨力量衰竭，可能转跌。

### 底分型（Mark.D）

```
██      ██
  ██  ██
    ██
```

条件：`k1.high > k2.high < k3.high` 且 `k1.low > k2.low < k3.low`

表示下跌力量衰竭，可能转涨。

### czsc 数据结构

```python
@dataclass
class FX:
    symbol: str          # 标的代码
    dt: datetime         # 分型时间（取中间K线时间）
    mark: Mark           # Mark.G（顶）/ Mark.D（底）
    high: float          # 分型最高价
    low: float           # 分型最低价
    fx: float            # 分型值（顶取high，底取low）
    elements: List[NewBar]  # 构成分型的三根去包含K线
```

### 使用示例

```python
from czsc import CZSC

c = CZSC(bars)
# 笔的端点就是分型
for bi in c.bi_list:
    print(f"起点分型: {bi.fx_a.mark.value} {bi.fx_a.dt}")
    print(f"终点分型: {bi.fx_b.mark.value} {bi.fx_b.dt}")
```
