Forex API
为 50+ 个主要、次要及异国货币对提供 Tick 级报价。
通过一个 WebSocket 和 REST API 传输 Tick 级 Forex、Crypto、Stock、Commodity 和 Index 数据。几秒钟即可获取免费密钥——无需销售沟通。
| 代码 | 资产类别 | 价格 | 实时变动 |
|---|---|---|---|
| EUR/USD 外汇欧元 / 美元 | 外汇 | - | - |
| BTC/USDT 加密货币比特币 | 加密货币 | - | - |
| ETH/USDT 加密货币以太坊 | 加密货币 | - | - |
| AAPL 股票苹果公司 | 股票 | - | - |
| XAU/USD 大宗商品现货黄金 | 大宗商品 | - | - |
| USD/JPY 外汇美元 / 日元 | 外汇 | - | - |
| NVDA 股票英伟达公司 | 股票 | - | - |
| SPX 指数标普 500 指数 | 指数 | - | - |
AllTick 覆盖的每个市场都可通过同一个统一的 REST 和 WebSocket 接口访问。
为 50+ 个主要、次要及异国货币对提供 Tick 级报价。
实时现货和衍生品数据,标准化为一个数据流。
覆盖美股、港股和 A 股市场的股票,提供成交和报价。
贵金属和能源的实时定价。
主要全球指数的基准指数值和成分股。
比较 AllTick 各个市场的覆盖范围、延迟和数据类型。
浏览产品AllTick 与典型传统行情数据供应商的对比。
| 能力 | AllTick | 典型传统供应商 |
|---|---|---|
| WebSocket 中位延迟 | 约 150ms | 400–800ms |
| 一个 API 中的资产类别 | 5(FX、Crypto、Stock、Commodities、Indices) | 1–2 |
| 可用性 SLA | 99.95% | 99.5% 或无 |
| 免费等级 | 有——即时 API 密钥 | 需要销售沟通 |
| WebSocket 流 | 原生支持 | 轮询 / 有限支持 |
通过 WebSocket 连接并订阅任何市场中的任意交易品种。
# AllTick realtime financial data API
# forex crypto stock commodities indices
import asyncio, json, uuid
import websockets
subscribe = {
"cmd_id": 22004,
"seq_id": 1,
"trace": str(uuid.uuid4()),
"data": {"symbol_list": [{"code": "EURUSD"}]},
}
heartbeat = {"cmd_id": 22000, "seq_id": 1, "trace": "heartbeat", "data": {}}
async def stream():
uri = "wss://quote.alltick.co/quote-b-ws-api?token=YOUR_API_KEY"
async with websockets.connect(uri) as socket:
await socket.send(json.dumps(subscribe))
async def keep_alive():
while True:
await asyncio.sleep(10)
await socket.send(json.dumps(heartbeat))
asyncio.create_task(keep_alive())
async for message in socket:
print(json.loads(message))
asyncio.run(stream())分享市场数据工程、流式 API 与低延迟金融应用开发的实用内容。

无论你是交易股票、期货、外汇还是加密货币,你一定经常会听到有人谈论趋势,但问题是,趋势到底有多强?有没有一个指…
无论你是交易股票、期货、外汇还是加密货币,你一定经常会听到有人谈论趋势,但问题是,趋势到底有多强?有没有一个指标能够对趋势的强弱进行量化?答案是有的,它就是我们今天要介绍的ADX指标(Average Directional Index)。简单来说,ADX并不是告诉你市场在上涨还是下跌,而是告诉你当前的趋势到底有多强劲。就比如你在爬一座山,ADX就是那个告诉你山坡有多陡的工具,而不是告诉你山在什么方向。如果你想知道当前市场的趋势强弱度,无论是牛市还是熊市,ADX都能帮你判断市场是否处在强劲的趋势之中。
图中下方的红线是ADX,绿线是+DI,黄线-DI
说到ADX,就不得不提它的发明者Welles Wilder。这位大牛可是技术分析领域的传奇人物,大名鼎鼎的RSI指标也是这哥们发明的。他在1978年推出了ADX,最初的目标是帮助交易者更好地判断市场趋势的强度。Wilder的初衷非常简单:给市场一个明确的信号,告诉大家什么时候该进场,什么时候该观望。
其实,ADX并不是一个单一的指标,它是DMI系统的一部分。DMI(Directional Movement Index)系统里有两个核心,+DI和-DI,分别代表着市场的上升力量和下降力量。而ADX的作用就是把这两个指标的力量整合起来,给出一个总的趋势强度的数值。ADX可以帮助你更好地理解市场的趋势强度,而不是仅仅依赖价格的涨跌来做判断。
和其他技术指标一样,要想彻底了解它,最好是搞清楚它们是如何计算的。要理解ADX的计算过程,首先需要了解它的基本组成部分,也就是+DI和-DI
+DI和-DI
+DI(正向动量)和-DI(负向动量)实际上是用来衡量市场在两个不同方向上的动量。计算它们的方法是比较今天和昨天的最高价和最低价,看哪个方向的变化更大。具体来说:
计算公式听上去可能有点复杂,但本质上就是看看市场是更倾向于上升还是下降。
计算DX
接下来,我们把+DI和-DI这两个指标结合起来,得到DX(Directional Index)。DX的计算方法是将+DI和-DI的差值取绝对值,然后除以它们的总和,最后乘以100。这个DX值就是市场方向的变化幅度,有了它,我们就能进一步计算ADX。
平滑处理得到ADX
不过,单靠DX还不够,因为市场每天的波动性会导致DX值上下起伏,这时候我们就需要进行平滑处理。这就像把一条崎岖的小路铺平,使其更容易走。我们采用的方法叫做“指数平滑”,这个过程类似于计算移动平均值。通过这个步骤,DX值变得更平滑、更稳定,最终就得到了我们所说的ADX。
实际计算案例
为了让这个过程更加清晰,我们来举个例子吧。假设某只股票在一周内的最高价和最低价如下:
1. 首先计算每天的正负向动量
周一到周二:
+DM = 102 – 100 = 2
-DM = 96 – 95 = 1
周二到周三:
+DM = 103 – 102 = 1
-DM = 97 – 96 = 1
周三到周四:
+DM = 101 – 103 = 0(不计算负值)
-DM = 97 – 95 = 0
周四到周五:
+DM = 104 – 101 = 3
-DM = 99 – 95 = 0
2. 计算+DI和-DI
+DI 和 -DI 是将 +DM 和 -DM 归一化后得出的,通常用以下公式计算:
\begin{equation}
\text{+DI} = \frac{\text{+DM}}{\text{TrueRange}}×100
\end{equation}
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
\begin{equation}
\text{-DI} = \frac{\text{-DM}}{\text{TrueRange}}×100
\end{equation}
接下来计算我们需要计算真实区间,即所谓的True Range。它的计算方法是选取下面三个值中的最大值:
注意是要取绝对值。
比如周二的真实区间可以这样算:
在这三个值中,7是最大值,因此周二的真实区间为7。用同样的方法对其他日期进行计算:
周三 = 6
周四 = 8
周五 = 9
接下来就可以计算+DI和-DI:
计算+DI和-DI:
周二:
+DI = (2 / 7) × 100 ≈ 28.57
-DI = (1 / 7) × 100 ≈ 14.29
周三:
+DI = (1 / 6) × 100 ≈ 16.67
-DI = (1 / 6) × 100 ≈ 16.67
周四:
+DI = (0 / 8) × 100 = 0
-DI = (0 / 8) × 100 = 0
周五:
+DI = (3 / 9) × 100 ≈ 33.33
-DI = (0 / 9) × 100 = 0
3. 计算DX
计算公式如下:
\begin{equation}
\text{DX} = \frac{\text{|+DI – -DI|}}{\text{+DI + -DI}}×100
\end{equation}
计算结果如下:
周二:≈33.33
周三:=0
周四:=0
周五:=100
4. 计算ADX
ADX 是DX的平滑平均值。通常,我们使用14天的ADX周期,但在此例子中,为简化计算,我们将用简单的平均值来计算:
下面是计算的汇总:
日期最高价最低价+DM-DMTrue Range (TR)+DI-DIDXADX周一100950000000周二1029621728.5714.2933.3333.33周三1039711616.6716.67016.67周四101950080008.34周五1049930933.33010054.17
正如前文所述,当你看ADX指标时,它实际上是在告诉你目前市场的“劲儿”有多大。你可以把它想象成一个音量旋钮,值越大,声音越大,也就是趋势越强。让我们来看看不同的ADX值究竟代表了什么:
需要注意,除了判断趋势的强弱,ADX的变化本身也能提供一些重要的市场信号。
虽然ADX指标在衡量趋势强度方面非常有用,但它也有一个明显的局限性,那就是滞后性。由于ADX是基于一系列的平滑处理(也就是上面提到的移动平均)计算得出的,也就是说它其实对市场的反应速度相对是较慢的。换句话说,ADX通常会在趋势已经形成一段时间后才显示出明显的变化。这种滞后性在某些情况下可能会让你错过最佳的进场或退场时机。例如,当市场突然出现快速反转时,ADX可能还显示着强趋势的信号,而实际上市场已经进入了震荡或反转阶段。
另一个需要注意的地方是,仅依赖ADX来进行交易决策可能存在较高的风险。这在我们以前的教程中有反复提及过,任何投资决策都不应该依赖单一的指标,虽然ADX能有效地衡量趋势的强度,但它并不提供趋势方向的信息。因此,单靠ADX来判断市场走势可能会让你在不明朗的市场环境中迷失方向。比如,ADX上升可能意味着动量增强,但它并不能告诉你是上涨动量还是下跌动量在增强。
为了弥补这一缺陷,建议将ADX与其他技术指标结合使用,例如与MACD、RSI、均线等指标配合。这些指标可以提供更多关于趋势方向、市场超买或超卖状态的信息,使交易决策更加全面。例如,MACD可以帮助识别趋势方向,RSI可以提示市场是否过度扩展,而均线可以提供长期趋势的背景信息。通过将ADX与这些指标综合使用,交易者能够更好地捕捉市场动向,减少误判的风险。
import pandas as pd
def calculate_ADX(data, period=14):
# 计算TR (True Range)
data['TR'] = data[['High', 'Low', 'Close']].apply(lambda x: max(x['High'] - x['Low'],
abs(x['High'] - x['Close'].shift(1)),
abs(x['Low'] - x['Close'].shift(1))), axis=1)
# 计算+DM和-DM
data['+DM'] = data['High'].diff()
data['-DM'] = -data['Low'].diff()
data['+DM'] = data['+DM'].where((data['+DM'] > data['-DM']) & (data['+DM'] > 0), 0.0)
data['-DM'] = data['-DM'].where((data['-DM'] > data['+DM']) & (data['-DM'] > 0), 0.0)
# 计算平滑后的TR, +DM和-DM
data['TR_smooth'] = data['TR'].rolling(window=period).mean()
data['+DM_smooth'] = data['+DM'].rolling(window=period).mean()
data['-DM_smooth'] = data['-DM'].rolling(window=period).mean()
# 计算+DI和-DI
data['+DI'] = 100 * (data['+DM_smooth'] / data['TR_smooth'])
data['-DI'] = 100 * (data['-DM_smooth'] / data['TR_smooth'])
# 计算DX
data['DX'] = 100 * (abs(data['+DI'] - data['-DI']) / (data['+DI'] + data['-DI']))
# 计算ADX
data['ADX'] = data['DX'].rolling(window=period).mean()
return data[['+DI', '-DI', 'ADX']]
# 假设你有一个DataFrame 'df',其中包含 'Date', 'High', 'Low', 'Close' 列
# df = pd.read_csv('your_market_data.csv')
# 计算ADX
adx_data = calculate_ADX(df)
# 查看结果
print(adx_data.tail())
如果你对ADX指标的原理和应用感兴趣,并想深入了解更多关于它的细节和实际操作方法,我强烈推荐你阅读Welles Wilder的经典著作《技术交易新概念》。这本书不仅详细介绍了ADX指标的计算方法和解读技巧,还涵盖了许多其他重要的技术分析工具。无论你是刚刚开始学习技术分析,还是希望提升自己的交易策略,这本书都会为你提供宝贵的指导。