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 与低延迟金融应用开发的实用内容。

动量效应是金融市场中一种常见的现象,指的是过去表现较好的资产在未来一段时间内继续表现良好的趋势。本文将介绍一种…
动量效应是金融市场中一种常见的现象,指的是过去表现较好的资产在未来一段时间内继续表现良好的趋势。本文将介绍一种基于动量效应的量化策略,并使用Python代码展示其实现过程。
该策略的核心逻辑是:选取过去一段时间内涨幅最大的N只股票,持有它们在未来一段时间内,期望它们能够继续保持上涨趋势。
首先,我们从AllTick的接口获取股票的历史价格数据。
import time
import requests
import pandas as pd
# 定义获取历史K线数据的函数
def get_historical_data(symbol, kline_type=1, kline_timestamp_end=0, query_kline_num=100, adjust_type=0):
url = 'http://quote.alltick.io/quote-stock-b-api/kline'
token = 'e945d7d9-9e6e-4721-922a-7251a9d311d0-1678159756806'
# 构造查询参数
query = {
"trace": "python_http_test1",
"data": {
"code": symbol,
"kline_type": kline_type, # K线类型:1为日线
"kline_timestamp_end": kline_timestamp_end, # 结束时间戳,0表示最新时间
"query_kline_num": query_kline_num, # 获取的K线数量
"adjust_type": adjust_type # 复权类型:0为不复权
}
}
# 发送请求
response = requests.get(
url=url,
params={"token": token, "query": json.dumps(query)},
headers={'Content-Type': 'application/json'}
)
# 解析返回的数据
if response.status_code == 200:
data = response.json()
if data.get("code") == 0: # 判断请求是否成功
kline_data = data["data"]["kline"]
df = pd.DataFrame(kline_data, columns=["timestamp", "open", "high", "low", "close", "volume"]) df["timestamp"] = pd.to_datetime(df["timestamp"], unit="s") # 转换时间戳为日期 df.set_index("timestamp", inplace=True) return df else: print(f"Error: {data.get('message')}") return None else: print(f"Request failed with status code: {response.status_code}") return None# 获取多只股票的历史数据symbols = ["700.HK", "UNH.US", "AAPL.US"] # 示例股票代码start_date = "2022-01-01"end_date = "2023-01-01"# 获取历史数据并计算收益率data = {}for symbol in symbols: df = get_historical_data(symbol, query_kline_num=252) # 获取252个交易日的数据 if df is not None: df['returns'] = df['close'].pct_change() # 计算每日收益率 data[symbol] = df# 将所有股票数据合并到一个DataFrame中all_data = pd.concat(data.values(), keys=data.keys(), names=['symbol'])
接下来,我们计算每只股票在过去一段时间内的累计收益率,作为其动量指标。
lookback_period = 20 # 动量计算周期
all_data['momentum'] = all_data.groupby('symbol')['returns'].rolling(window=lookback_period).apply(lambda x: (x + 1).prod() - 1).reset_index(level=0, drop=True)
在每个调仓日,我们选取动量最大的N只股票,等权重持有。
import numpy as np
N = 5 # 持有股票数量
rebalance_freq = 'M' # 每月调仓一次
# 计算每个调仓日的动量排名
all_data['rank'] = all_data.groupby('date')['momentum'].rank(ascending=False)
# 生成交易信号
all_data['signal'] = np.where(all_data['rank'] <= N, 1, 0)
# 计算策略收益
all_data['strategy_return'] = all_data.groupby('symbol')['signal'].shift(1) * all_data['returns']
# 计算组合收益
portfolio_return = all_data.groupby('date')['strategy_return'].sum() / N
最后,我们可以计算策略的年化收益率、最大回撤等指标,并绘制策略的净值曲线。
# 计算年化收益率
annual_return = portfolio_return.mean() * 252
# 计算最大回撤
cumulative_return = (1 + portfolio_return).cumprod()
peak = cumulative_return.cummax()
drawdown = (cumulative_return - peak) / peak
max_drawdown = drawdown.min()
# 打印策略表现
print(f"年化收益率: {annual_return:.2%}")
print(f"最大回撤: {max_drawdown:.2%}")
# 绘制净值曲线
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.plot(cumulative_return)
plt.title('Strategy Cumulative Return')
plt.xlabel('Date')
plt.ylabel('Cumulative Return')
plt.show()
动量效应是量化交易中一个经典且有效的策略。本文介绍了一种基于动量效应的简单策略,并使用Python代码展示了其实现过程。需要注意的是,该策略仅作为示例,实际应用中需要考虑更多因素,如交易成本、风险控制等。