想写一个外汇交易机器人,却不知道第一步怎么走?今天我们不讲复杂的金融模型,只教你最基础、也最重要的一步:怎么把实时数据抓到手。
想象一下,你想要在美元/日元(USD/JPY)跌破 140 时收到提醒。如果你还在用浏览器不断刷新网页看价格,那就太原始了。我们要做的,是让程序替我们盯着,并且是毫秒不差地盯着。
很多新手会用爬虫去抓网页数据。但你很快会发现,网页结构一变,代码就挂了;而且爬虫的速度太慢,根本捉不住转瞬即逝的行情。我们需要的是专业选手用的工具——WebSocket。
这就像给你的电脑装上一根直通交易所的“电话线”。我们会用到 Python 语言。首先,打开你的终端,装好这两个工具包:
pip install websocket-client requests
这里我们以 AllTick API 的接口为例,它的文档比较适合教学,逻辑很清晰。我们要做三件事:连上服务器、告诉它我们要什么数据、等着收数据。
import websocket
import json
def on_message(ws, message):
data = json.loads(message)
print(f"{data['symbol']} | {data['price']} | {data['time']}")
def on_open(ws):
subscribe_msg = {
"action": "subscribe",
"symbols": ["EURUSD", "USDJPY"]
}
ws.send(json.dumps(subscribe_msg))
ws = websocket.WebSocketApp(
"wss://api.alltick.co/forex/realtime",
on_open=on_open,
on_message=on_message
)
ws.run_forever()on_open 就像电话接通的那一刻,我们赶紧喊出:“给我发 EURUSD 的价格!”而 on_message 则是对方传来的每一句话(数据),都在这里处理。
光打印出来不够,我们还得学会保存。比如存到一个 Excel (CSV) 文件里,方便以后分析。
import csv
from datetime import datetime
def save_tick(data):
with open("forex_tick.csv", "a", newline="") as f:
writer = csv.writer(f)
writer.writerow([
datetime.now(),
data["symbol"],
data["price"]
])代码跑起来后,你会看到屏幕上数字飞快跳动,这就是市场的脉搏。学会了这一步,接下来无论是做价格报警机器人,还是自动化交易,你都已经拿到了“入场券”。赶紧把代码复制去试试吧!
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
