TAStatistics
TA.TSF() - 时间序列预测
时间序列预测 (Time Series Forecast)
使用线性回归预测下一个周期的价格值。
语法
python
TA.TSF(close, timeperiod=14)参数
| 参数名 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| close | any | 否 | - | 收盘价数组 |
| timeperiod | any | 否 | - | 回归周期,默认 14 |
返回值
返回预测值数组,表示基于线性回归的未来一期预测。
计算方法
TSF 使用线性回归外推预测下一个值:
plaintext
TSF[t] = LINEARREG[t-1] + SLOPE[t-1]
即:当前回归值 + 一个周期的斜率增量信号解读
- 价格 > TSF:价格高于预测,可能超买
- 价格 < TSF:价格低于预测,可能超卖
- 价格向TSF靠拢:均值回归倾向
基础示例
预测值与实际值对比
python
def main():
while True:
records = exchange.GetRecords()
if len(records) < 50:
Sleep(1000)
continue
closes = [r['Close'] for r in records]
# 计算预测值
forecast = TA.TSF(closes, 14)
# 预测值 vs 实际值
predicted = forecast[-2] # 上一期的预测
actual = closes[-1] # 实际值
error = ((actual - predicted) / predicted) * 100
Log(f"上期预测: {predicted:.2f}")
Log(f"实际价格: {actual:.2f}")
Log(f"预测误差: {error:.2f}%")
# 当前预测下一期
next_predicted = forecast[-1]
current_price = closes[-1]
Log(f"当前价格: {current_price:.2f}")
Log(f"预测下期: {next_predicted:.2f}")
if next_predicted > current_price:
Log("📈 预测上涨")
else:
Log("📉 预测下跌")
Sleep(60000)高级应用
TSF 偏离交易
python
def main():
while True:
records = exchange.GetRecords()
if len(records) < 100:
Sleep(1000)
continue
closes = [r['Close'] for r in records]
current_price = closes[-1]
# 预测值和标准差
forecast = TA.TSF(closes, 20)
stddev = TA.STDDEV(closes, 20)
# 价格偏离预测值的程度
deviation = (current_price - forecast[-1]) / stddev[-1]
Log(f"TSF 预测: {forecast[-1]:.2f}")
Log(f"当前价格: {current_price:.2f}")
Log(f"偏离: {deviation:.2f}σ")
# 均值回归策略
if deviation < -2:
Log("✅ 价格远低于预测(< -2σ),买入")
elif deviation > 2:
Log("❌ 价格远高于预测(> +2σ),卖出")
Sleep(60000)参数优化建议
| 周期 | 推荐值 | 适用场景 |
|---|---|---|
| 短期 | 7-10 | 短线预测 |
| 中期 | 14-20 | 波段预测 |
| 长期 | 30-50 | 趋势预测 |
注意事项
- 线性假设:TSF基于线性回归,无法预测非线性变化
- 突发事件:重大新闻会使预测失效
- 趋势市场:在明确趋势中预测较准确
- 震荡市场:横盘时预测意义不大
- 不是圣杯:TSF是统计预测,不能保证准确
- 配合使用:应与其他指标结合判断
相关指标
实战要点
预测应用
✅ 趋势市场中参考预测方向 ✅ 价格偏离预测值时寻找回归机会 ✅ 结合其他指标确认信号
风险控制
- TSF仅供参考,不可完全依赖
- 设置止损保护
- 重大事件前避免使用TSF
- 验证预测准确率