TAMath ops
ADD - 向量加法
TA.ADD() - 数组元素相加
语法
python
result = TA.ADD(array1, array2)参数
| 参数 | 类型 | 说明 |
|---|---|---|
| array1 | array | 第一个数组 |
| array2 | array | 第二个数组 |
返回值
返回一个新数组,每个元素是两个输入数组对应位置元素的和。
计算方法
plaintext
result[i] = array1[i] + array2[i]对应位置元素相加。
使用场景
- 合成指标:将多个指标相加
- 价格叠加:计算多个资产的价格和
- 信号组合:合并多个交易信号
基础示例
python
def onTick():
exchange.SetContractType("swap")
records = exchange.GetRecords()
if len(records) < 30:
return
# 提取收盘价和开盘价
closes = [r.Close for r in records]
opens = [r.Open for r in records]
# 计算两者之和
sum_prices = TA.ADD(closes, opens)
Log("最新收盘价+开盘价:", sum_prices[-1])高级应用
1. 多均线合成
python
def onTick():
records = exchange.GetRecords()
# 计算多条均线
ma5 = TA.MA(records, 5)
ma10 = TA.MA(records, 10)
ma20 = TA.MA(records, 20)
# 计算均线总和
ma_sum = TA.ADD(TA.ADD(ma5, ma10), ma20)
# 计算均线平均值
ma_avg = TA.DIV(ma_sum, [3] * len(ma_sum))
Log("三均线平均值:", ma_avg[-1])2. 价差分析
python
def onTick():
# 获取两个交易对的数据
records_btc = exchange.GetRecords()
exchange.SetCurrency("ETH_USDT")
records_eth = exchange.GetRecords()
btc_closes = [r.Close for r in records_btc]
eth_closes = [r.Close for r in records_eth]
# 计算总市值(假设持有1 BTC和10 ETH)
btc_value = TA.MULT(btc_closes, [1] * len(btc_closes))
eth_value = TA.MULT(eth_closes, [10] * len(eth_closes))
total_value = TA.ADD(btc_value, eth_value)
Log("组合总价值:", total_value[-1])3. 自定义振荡器
python
def onTick():
records = exchange.GetRecords()
# RSI
rsi = TA.RSI(records, 14)
# CCI
cci = TA.CCI(records, 14)
# 标准化CCI到0-100范围
cci_norm = TA.ADD(TA.DIV(cci, [2] * len(cci)), [50] * len(cci))
# 组合振荡器
combo_osc = TA.DIV(TA.ADD(rsi, cci_norm), [2] * len(rsi))
if combo_osc[-1] > 70:
Log("组合超买:", combo_osc[-1])
elif combo_osc[-1] < 30:
Log("组合超卖:", combo_osc[-1])注意事项
- 数组长度:两个数组长度必须相同
- 数据对齐:确保对应位置的数据在时间上对齐
- 性能考虑:处理大数组时注意内存占用