经常混币圈、股票和外汇的朋友们都知道有一个东西叫 K线,大概长这样
同时你也可以选择添加更多的图表,如布林线、MACD、RSI等,用这些技术指标来辅助决策。
这些技术参数很有用,如果能把一段时间的结果交给LLM去分析,应该比凭着感觉瞎买更靠谱吧!
那这些技术参数是怎么来的呢……?
去花钱买!这个世界上还有什么是钞能力无法解决的事情吗?
https://taapi.io/ 已经有人做好了!有股票 也有加密货币的数据。就是……免费版频率限制有些严重,想要获取多点数据就等几个小时吧。一下子升级个 Pro 要花14.99欧元,在PoC阶段好像也不太值得……
实际上,这些技术参数,全部都是使用K线数据,由客户端计算出来的。K线数据很容易获取,很多交易所都提供API,但是计算这些参数需要比较强的数学知识😅
还好已经有人写好了相关的库,虽然是 C/C++写的,但是不怕啦早就有人写好了 Python的wrapper
TA-Lib - Technical Analysis Library
我们需要这个东西来计算数据,这个库支持200多个技术指标,包括RSI,MACD
安装方式可以参考官方文档
获取K线数据
以币安的合约数据为例,非常简单
pip install binance-futures-connector from binance.um_futures import UMFutures um_client = UMFutures() candles=um_client.klines(symbol=‘BTCUSDT’, interval=‘1m’)
这样我们就获取到了 1分钟时间间隔的数据
转换成 pandas的DataFrame
方便后续处理
pd.DataFrame(candles)
计算布林线
布林线使用收盘价格进行计算,而且需要多组数据才可以计算出来
upperband, middleband, lowerband = talib.BBANDS(self.df["close"], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0)
计算 RSI
同样也是收盘价
rsi6 = talib.RSI(self.df["close"], timeperiod=6) rsi12 = talib.RSI(self.df["close"], timeperiod=12) rsi24 = talib.RSI(self.df["close"], timeperiod=24)
MACD
收盘价
dif, dea, macd = talib.MACD(self.df["close"], fastperiod=12, slowperiod=26, signalperiod=9)
MA
包括SMA和EMA
sma7 = talib.SMA(self.df["close"], timeperiod=7) sma25 = talib.SMA(self.df["close"], timeperiod=25) sma99 = talib.SMA(self.df["close"], timeperiod=99) ema7 = talib.EMA(self.df["close"], timeperiod=7) ema25 = talib.EMA(self.df["close"], timeperiod=25) ema99 = talib.EMA(self.df["close"], timeperiod=99)
转换数据为json
LLM更适合处理json数据,pandas就很方便啦
self.df.to_json(orient="records", date_format="epoch", date_unit="s")
调用 LLM 接口
有了数据之后就可以把他们导出成 json,然后调用LLM进行处理。
这里需要找一个可用的LLM,比如 Mistral AI、OpenAI 、Gemini或者 Claude。由于国内注册比较麻烦,而且风控很严格,建议大家使用「头顶冒火」的API接口
- OpenAI专场:https://burn.hair/
- Claude、MistralAI和OpenAI:https://api.burn.hair/
使用什么模型因人而异,一次数据量比较大,gpt-4o可能是比较好的选择,Claude Opus和o1-preview比较贵,但是也可以考虑,头顶冒火网站也都有的
然后要做的事情就是写提示词,让AI分析结果了!🧐
很麻烦是不是……不要怕,我已经写好并且开源了。使用方式详见下一页!⬇️⬇️⬇️ 部分RSS阅读器可能无法显示下一页的内容,请点击链接打开网站阅读
下面即将以Windows为例手把手教学,至于 macOS和Linux,基本步骤也基本一致
安装编辑器
需要一个比较好的编辑器来编辑配置文件,可以选择Sublime、Notepad++,也可以选择 VS Code
以 VS Code为例,到这里下载 https://code.visualstudio.com/, 下载回来双击下一步就可以
安装 Python
到这里https://www.python.org/downloads/ 下载并安装 Python
准备代码
打开网址 https://github.com/BennyThink/AICryptoBot
Code – Download Zip 或者选择 git clone等方式
对于ZIP文件,请自行解压缩
打开项目
双击打开VS Code,然后把目录拖进去即可打开,能看到这样的目录结构就说明正确了
安装依赖
VSCode 菜单栏 Terminal – New Terminal
如果网络速度不理想,需要配置镜像
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/simple pip install -r requirements.txt pip install https://github.com/cgohlke/talib-build/releases/download/v0.5.1/ta_lib-0.5.1-cp313-cp313-win_amd64.whl
如果你安装不是 Python 3.13 需要把上面的cp313
换成cp312
(3.12)cp311
(3.11)以此类推
准备 LLM接口
这里以 OpenAI + 头顶冒火为例,需要先去 https://burn.hair/ 或者 https://api.burn.hair/ 注册一个账号,然后确保有足够余额(0.5-1美元就足够了)。
令牌-添加令牌
然后复制令牌
准备配置文件
创建一个 .env
文件放到 src
这个子目录下,内容如下
OPENAI_BASE_URL=https://burn.hair/v1 OPENAI_API_KEY=sk-61234这里就是你复制的令牌 OPENAI_MODEL=gpt-4o-2024-08-06 BINANCE_INTERVAL=1m=30,5m=40,15m=30,1h=25,2h=15,4h=10,8h=8,12h=6,1d=5
BINANCE_INTERVAL 详解:
这里需要根据你的需求,来配置采集的时间间隔和数据量,1m=30
表示1分间隔的数据采集最近30个;同理,1d=5
意味着1天的间隔,采集5个,换句话说也就是5天的日线数据。数据量越多,API消耗也就越多,按照默认配置大概1个交易对要用0.1-0.2美元。
可以根据个人情况调整,如果拿不准可以用默认值,或者让AI给出个主意
运行测算
同样在 Terminal里
cd src # 多个交易对可以用逗号分隔,如 python main.py --symbol=btcusdt,ethusdt # 只想查询一个可以这样 python main.py --symbol=btcusdt
然后浏览器就会自动打开一个网页显示结果,也可以在output目录下找到html文件打开自行查看
看起来是不是挺靠谱的样子,至少比自己凭着感觉瞎买要好多了。再次警告,交易有风险,入市需谨慎。若因本项目产生任何损失,概不负责。
要是赚到钱了,可以考虑给我打个赏😂
相关链接
- 代码开源地址:https://github.com/BennyThink/AICryptoBot
- 头顶冒火 OpenAI 接口站:限时折扣优惠进行中,https://burn.hair/
- 头顶冒火小分队,支持 Claude、MistralAI、Grok和 OpenAI,纯官方转发:https://api.burn.hair/
- TA-Lib:https://ta-lib.org/