@ kit/ signals
人工智能交易的多时框架技术分析 反测试- kit. 计算跨越四个时间段的50+指标,加上订货本深度,并发布LLM准备的减记报告——将整个市场背景降为一次呼叫中的LLM提示.

📚 文档 • 妇女 参考执行情况 • 妇女 GitHub 图像
npm install @backtest-kit/signals backtest-kit
为什么
一个LLM交易策略 和你交来的市场环境一样好 通过四个时间段计算50+指标,格式化订单-书深度,并将其全部设定为干净的记分下线——用手,每分一分——是决定信号质量的不光彩的200行. 这个软件包是工作,预计算,缓存,并与后端测试- kit 的时间线同步: 1 commitHistorySetup(symbol, messages) 将1m/15m/30m/1h的书和蜡烛历史+指标附加到 LLM 消息阵列中.
- 📈 四个同步时间框架 1米) 短期 15米) 轮班 30米) 长期 1小时.
- 🎯 50+指标 ——RSI,MACD,博林格,斯多克斯克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克.
- 📊 顺序书深度 ——最佳出价/任务,分布,前20级,流动性不平衡.
- 🤖 LLM 已就绪的标记下调 上下文注入格式表格.
- ⚡ 缓存 ——按时间框架 TTL;缓存被错误清除.
- 📦 零配置 ——在引擎的时空上下文上工作出盒.
快速开始——一个电话
import { commitHistorySetup } from '@backtest-kit/signals';
const messages = [];
await commitHistorySetup('BTCUSDT', messages);
// messages now hold: order book + 1m/15m/30m/1h candle history
// + indicators for all 4 timeframes + system context (symbol, price, timestamp)
const signal = await llm(messages);
完成LLM战略
import { v4 as uuid } from 'uuid';
import { addStrategy, dumpSignal } from 'backtest-kit';
import { commitHistorySetup } from '@backtest-kit/signals';
import { json } from './utils/json.mjs'; // your LLM wrapper
addStrategy({
strategyName: 'llm-strategy', interval: '5m', riskName: 'demo',
getSignal: async (symbol) => {
const messages = [{ role: 'system', content: 'You are a trading bot. Analyze the indicators and generate a signal.' }];
await commitHistorySetup(symbol, messages);
messages.push({ role: 'user', content: [
'Based on the technical analysis above, generate a trading signal.',
'Use position: "wait" if signals are unclear or contradictory.',
'Return JSON: { position: "long"|"short"|"wait", priceTakeProfit: number, priceStopLoss: number }',
].join('\n') });
const resultId = uuid();
const signal = await json(messages);
await dumpSignal(resultId, messages, signal); // archive for debugging
return { ...signal, id: resultId };
},
});
颗粒控制
更喜欢选择什么是 进入即时? 调用单个报告函数——每个附件一个下划线部分 messages。 。 。 .
9个颗粒函数
import {
commitBookDataReport, // order book: bids/asks, spread, imbalance
commitOneMinuteHistory, commitFifteenMinuteHistory, // candle histories (last 15 / 8 …)
commitThirtyMinuteHistory, commitHourHistory,
commitMicroTermMath, commitShortTermMath, // indicator tables per timeframe
commitSwingTermMath, commitLongTermMath,
} from '@backtest-kit/signals';
const messages = [];
await commitBookDataReport('BTCUSDT', messages);
await commitOneMinuteHistory('BTCUSDT', messages);
await commitMicroTermMath('BTCUSDT', messages);
// …add only the sections you want, then call your LLM
commitHistorySetup 仅仅是按正确顺序运行这些系统的指挥者.
每个时间段计算什么
| 时限 | 蜡烛 | 指标 | 使用大小写 |
|---|---|---|---|
| 微型 (单位:1米) | 页:1 | RSI(9,14),MACD(8,21,5),Stochastic,ADX(9),Bollinger(8,2),ATR,CCI,Volume, Squeeze | 超短条目缩放 |
| 短期 (15米) | 144国 | RSI(9)、MACD(8、21、5)、Stochastic(5、3、3)、ADX(14)、Bollinger(10、2)、Fibonacci | 日交易 |
| 周转期 (30米) | 96 (韩语) | RSI(14),MACD(12,26,9),Stochastic(14,3,3),Bollinger(20,2),支持/抵抗 | 周转贸易 |
| 长期 (1小时) | 100个 | RSI(14)、MACD(12,26,9)、ADX(14)、Bollinger(20,2)、SMA(50)、DEMA、WMA、Volume Trend | 趋势分析 |
报告结构(订购簿-蜡烛-指标)
订货簿 - 符号、最佳出价/任务、中价、分布、深度不平衡((bid_vol − ask_vol)/(bid_vol + ask_vol),+ = 购买压力),以及前20名投标/任务级别 % of total。 。 。 .
蜡烛历史 ——每烛台:时间戳,OHLC,体积,起伏,体型.
指标 宽的每栏表格;例如,微分栏:价格、RSI(9)、RSI(14)、MACD、信号、直方图、Stoch%K/%D、ADX、+DI、-DI、BB上/中/下行、ATR(5/9)、CCI(9)、Vol Trend、Momentum、ROC、Support、Resist、Squeeze、press-随后是a 数据来源 附注列出所使用的每个期间.
缓存密钥算法( K)
快取 TTL (已清出误差): 1米数据 → 1分 1分 → 15分 → 5分 → 30分 → 1分 1分 → 30分 → 订货簿 → 5分 .
- 支助/抵抗 • 长期采用4个圆烛支点方法.
- 费博纳奇 0级/23.6级/38.2级/50级/61.8级/78.6级/100%,分机号127.2级/161.8级/261.8%;与价格最接近的等级为1.5%可容忍度.
- 数量 微型:SMA(5),趋势增加/下降/稳定(±20%);长期:6-烛光平均(±10%).
- 订单-书本不平衡 —— 说
(bid − ask)/(bid + ask),正=购买压力.
自定义日志器( 默认为无操作)
import { setLogger } from '@backtest-kit/signals';
setLogger({ log: console.log, debug: console.debug, info: console.info, warn: console.warn });
为什么不自己计算指标呢?
差别
// ❌ Manual — 40+ indicators, formatting, caching, all by hand
const candles = await getCandles('BTCUSDT', '1m', 60);
const rsi = calculateRSI(candles, 14);
const macd = calculateMACD(candles, 12, 26, 9);
const bb = calculateBollingerBands(candles, 20, 2);
// …and the markdown formatting, and the cache
messages.push({ role: 'user', content: formatToMarkdown(rsi, macd, bb /* … */) });
// ✅ With signals
await commitHistorySetup('BTCUSDT', messages);
预计算,缓存,优化 ^ 50+ 指标 × 4 个时间段 ^ LLM-已备标记下行 ^ 与后置测试时间段同步 ^ 验证和已建错误处理 .
API 参考
| 导出 | 说明 |
|---|---|
commitHistorySetup(symbol, messages) | Orchestrator - 附加命令书+所有蜡烛历史+所有指标+上下文 |
commitBookDataReport(symbol, messages) | 顺序书深度和不平衡部分 |
commitOneMinuteHistory 编号 : commitFifteenMinuteHistory 编号 : commitThirtyMinuteHistory 编号 : commitHourHistory | 每个时间段的烛花历史部分 |
commitMicroTermMath 编号 : commitShortTermMath 编号 : commitSwingTermMath 编号 : commitLongTermMath | 指标表部分(1米/15米/30米/1小时) |
setLogger(logger) | 替换默认的无操作日志 |
lib | 内部IoC服务集装箱(先进使用) |
完整源图
function/history.function.ts——四个commit*History函数.function/math.function.ts——四个commit*Math函数.function/other.function.ts—— 说commitBookDataReport+ 键commitHistorySetup。 。 。 .tools/setup.tool.ts—— 说setLogger。 。 。 .contract/{History,ReportFn}.contract.ts报告职能合同.interfaces/Logger.interface.ts。 。 。 .lib/木卫一:core/{di,provide,types}, (中文(简体) ),services/common/LoggerService, (中文(简体) ),services/history/{One,Fifteen,Thirty}MinuteCandleHistoryService+ 键HourCandleHistoryService, (中文(简体) ),services/math/{MicroTerm,ShortTerm,SwingTerm,LongTerm}MathService+ 键BookDataMathService(数学服务是包的批量——每包32–45 KB). 每个导出到其中之一的地图; 无src/没有证件.
* 贡献
叉/ PR 打开 GitHub 图像。 。 。 .
许可证
麻省理工学院 特立奥尔斯基平板电脑