初始化FundingNoiseArea对象。 参数: ohlcv (pd.DataFrame): 包含 code, trade_time, close, volume 字段的DataFrame。
(self, ohlcv: pd.DataFrame)
| 91 | """ |
| 92 | |
| 93 | def __init__(self, ohlcv: pd.DataFrame) -> None: |
| 94 | """ |
| 95 | 初始化FundingNoiseArea对象。 |
| 96 | |
| 97 | 参数: |
| 98 | ohlcv (pd.DataFrame): 包含 code, trade_time, close, volume 字段的DataFrame。 |
| 99 | """ |
| 100 | required = {"code", "trade_time", "close", "volume"} |
| 101 | missing = required - set(ohlcv.columns) |
| 102 | if missing: |
| 103 | raise ValueError(f"ohlcv is missing required columns: {sorted(missing)}") |
| 104 | |
| 105 | self.ohlcv: pd.DataFrame = ohlcv.copy() |
| 106 | self.ohlcv["trade_time"] = pd.to_datetime(self.ohlcv["trade_time"]) |
| 107 | |
| 108 | self.pivot_frame: pd.DataFrame = pd.pivot_table( |
| 109 | self.ohlcv, |
| 110 | index="trade_time", |
| 111 | columns="code", |
| 112 | values=["close", "volume"], |
| 113 | ).sort_index() |
| 114 | |
| 115 | self.close: pd.DataFrame = self.pivot_frame["close"] |
| 116 | self.volume: pd.DataFrame = self.pivot_frame["volume"] |
| 117 | |
| 118 | |
| 119 | def _cycle_id_pos(self, funding_hours: int = 8, tz: str = "Asia/Shanghai") -> tuple[np.ndarray, np.ndarray]: |