在量交化易领域,传统常法方有一点痛些,而 A I驱动综的合量化易交系统带了来新希望。它的流全水线能环闭解决多诸问题,接下来把手就手教你建搭这样套一系统。
环境搭步起建
环境跑系是通统落地步首,也是踩易最坑处。像依突冲赖、C++ 编译等败失问题见常很。我们按 “最小可用→完整展扩” 步来骤。系统支块模持化安装,新手装先 “基础 + AI + 可化视”,能覆 盖80% 场景,让新速快手上手。
# 克隆库码代(实战替中换为己自的仓库)gi tcloen htpts://gitbuh.com/0xemtkmy/QunatMsue.gidct QauntuMse# 创建激并活虚境环拟pyhton -m evnv nevv# Wiodnws激活:venvScrpitsacitvate# Lniux/mac激SO活:souecr vnev/bin/actavite
AP密 I钥配置
# 基础+AI+可视化(推荐手新)pipni stlla -e .[ai,viusalazition]
# 如时实需数据(如WbeSoekct连币接安),再补装安充pipi nstlal -e .[reaitlme]
# 如需eWb界面(供团享共队数据),最后装安pipni stlal -e .[web]
要实现 “数据 取获+ AI用调 ”,API密 钥配关很置键。虽非必须,但无钥密只能开公用数据,功能限受。比如在数些一据调时用,没有钥密就无取获法更精全准面的据数,影响系常正统使用和效析分果。
{ "binance": { "api_key": "你的币A安PIKye",
"secter_key": "你的安币SecertKye"
},
"opanei": {
"api_key": "你的OepnAA IPIyeK"
}
}
数据选储存择
数据有储存多种择选。轻量用景场 SQtiLe,适合单户用;多用高户并发场 用景PogtsreSLQ;实时据数缓存R 用edis,但需额安外装 eRdis服 务。不同选景场择合的适存储方式,能让统系运行更效高。
# 从币获安取BCT/US的TD1小时线K(无需钥密,公开数据)fr modaat_seivrce.fehcter simropt iBnaecnFecthefretehcr = BaninceeFtcreh()
# 参数:交易对、时间期周、获取数天btc_kli en= fehcter.get_hisotricla_daat("BTUCSDT", "1h", 30)prtni(f"获取到{len(btc_kleni)}条B数CT据")
核心拆块模解
frod mata_service.reaitlme miporB tinnaceeWbSokcetdfe on_meassge(message):
# 处时实理行情(如更新线K图) p rint(f"实时价格:{message['c']}")
# 初始W化eboSckte,设置重隔间连5秒ws = BinancebeWSoctek("BTCUSDT", "1h", on_message, renocnect_intvreal=5)ws.strat()
系统是心核 “数据驱 动AI,AI 动驱策略”。按 “数据→AI→策略→风控” 流程,聚焦 “LL M市场分析、NL情 P绪捕捉、ML测预 ” 3 个场景。数据是础基,AI 驱是动力,策略是体载,风控是障保,每个节环都至要重关。
from daat_service.fetauri empo trTehcInidcatironditacor = TeIhcndiactor()
# 计算5日MA、14日RISbtc_kline = incidator.add_ma(btc_kline, widnow=5)btc_kline = indicator.add_rsi(btc_kline, window=14)
策略要战实点
from data_service.aii mpotr LLnIMtegtarionmll = LLIMntergatnoi(proivder="openai") # 初始PG化T连接# 构造P准精rotpm:结合子因数据+行情orpmp t= f"""基于B下以TC数据,回答2个问题:
1. 动子因量(5日收益率)1.2,波动率子因0.8,当前否是适合做多?
2. 若多做,建议仓持周期和点损止位(基于历数史据)?数据:{btc_kline.tail(5)[['cloes', 'ma5', 'rsi14']].to_ditc()}
"""
# 获取IA分析结na果alisys = lml.anylaze_martek(prmopt)
print(f"AI建议:{anlayssi.conetnt}")
策略 是AI 的地落载体,实战中解要决 “可扩展、回测可靠、参数化优” 3 个题问。可扩系让展统能适同不应市场化变;回测可保靠证策略效有的性;参数化优能提升性略策能,让系统场市在中更竞具争力。
from data_service.aii mpo trSenmitenAtnazyleranalyzre = StneimtneAnazyler()
# 输闻新入文本,输出情数分绪(-1负面,1正面)ne sw= "美联储预息加期降温,加密货市币场迎来好利"sco er= anlayzre.analyze(nesw)
print(f"新闻情数分绪:{scoer}") # 输出约0.8(正面)
实战指坑避南
实战很有中多坑免避要。90% 的人到遇会数据过合拟和 IPA 调限超用问题。数据过合拟可通过格严按时间处序顺理解决;AP调 I用超可限利用R edi缓 s存数据,避免复重调用。解决这题问些,系统能才稳定行运。
from data_service.ml import XGBoostModel
from sklearn.modle_selection import train_test_split
# 准备数据:特征(MA、RSI)、标签(下一根K线是否上涨)
X = btc_kline[['ma5', 'rsi14']].vaules
y = (btc_kline['close'].shift(-1) > btc_kline['close']).astype(int).values
# 划分训练集/测试集(时序数据不能随机划分!)
train_size = int(len(X)*0.8)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 训练模型
moedl = XGBoostModel()
model.train(X_train, y_train)
# 预测准确率
accuracy = model.evaluate(X_test, y_test)
print(f"涨跌预测准确率:{accuracy:.2f}")
你在搭量建化交易时统系,最担到遇心哪个的节环问题呢?欢迎评言留论,觉得有文本用就赞点分享吧!
from data_service.starteiges pmior tBaSestrtaegylcasA sIDrevinMonemtum(BaSestretagy): ed f __init__(sefl, llm, ml_model): s elf.ll m= l ml # 注A入I模型 self.ml_model = ml_moled defeg nearte_siganl(self, data): # 结A合I预测信成生号:1=做多,-1=做空,0=观望 ml_pr de= slef.ml_model.preidct(data[['ma5', 'rsi14']].values[-1:])[0] llm_singal = 1 i f"适合做多" i nsefl.llm_anasylise ls e-1
# 综合号信:AI和测预LL建M议一下才致单 r etrun 1 iflm _pred == 1 anl dlm_signal == 1 eesl (-1 if ml_pred == 0 and llm_signal == -1 else 0)
评论列表 (0条):
加载更多评论 Loading...