From 061e67eb06b852d54e8f5be862978c32bfc5cfc3 Mon Sep 17 00:00:00 2001 From: csh Date: Wed, 8 Jul 2026 12:26:20 +0800 Subject: [PATCH] :memo: docs(tsl): archive three benchmark scripts referenced by README - add scripts/main_board_top50_zf_{claude,codex,qwen3.6-27b}.tsl as produced - sync round-1 code block and archived filename in README Co-Authored-By: Claude Opus 4.8 --- README.md | 13 ++++---- scripts/main_board_top50_zf_claude.tsl | 33 +++++++++++++++++++++ scripts/main_board_top50_zf_codex.tsl | 22 ++++++++++++++ scripts/main_board_top50_zf_qwen3.6-27b.tsl | 26 ++++++++++++++++ 4 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 scripts/main_board_top50_zf_claude.tsl create mode 100644 scripts/main_board_top50_zf_codex.tsl create mode 100644 scripts/main_board_top50_zf_qwen3.6-27b.tsl diff --git a/README.md b/README.md index d751774a..aa016a32 100644 --- a/README.md +++ b/README.md @@ -243,7 +243,7 @@ playbook 目前已覆盖语法、函数、模块三大知识面,下一步按 | :-- | :-- | | 🧭 首跳照走 | 读 `AGENTS.md` → 进 `docs/tsl/index.md` 总入口 → 按路由取用快速落代码 / 控制流 / 数组集合三个语法页 | | 🔍 函数全部查证 | 调用 `tsl-api-reference` skill 逐一核实 `getAbkbyDate` · `lastTradeDay` · `stockZf8` · `appendArray` · `sortTableByField` —— **五个函数零编造** | -| 📄 文件模型判对 | 一次性取数任务 → 按规则判为 `.tsl`,落盘 `scripts/main_board_top50_zf.tsl` | +| 📄 文件模型判对 | 一次性取数任务 → 按规则判为 `.tsl`,存档于 `scripts/main_board_top50_zf_claude.tsl` | | ✅ 主动验证 | 本机解释器实测:键表构造、循环截断、排序等 builtin 逻辑全部跑通,整个文件编译通过 | | 🗣 诚实报告边界 | 数据仓库函数离线环境没有(`function not found`),**如实说明需在天软客户端端到端确认,而不是谎称全部跑通** | @@ -252,7 +252,7 @@ playbook 目前已覆盖语法、函数、模块三大知识面,下一步按 ```tsl // 主板股票昨日涨幅排名前 50 // 主板成分:上证A股 + 深证A股(getAbkbyDate 支持分号分隔多板块) -// "昨天"取当前日期的前一个交易日,避开周末/节假日 +// “昨天”取当前日期的前一个交易日,避开周末/节假日 setSysParam(pn_cycle(), cy_day()); @@ -265,15 +265,18 @@ result := array(); for i, stockid in stocks do begin setSysParam(pn_stock(), stockid); - zf := stockZf8(prevday, yday); // prevday收盘 -> yday收盘的涨幅(%) + zf := stockZf8(prevday, yday); // prevday 收盘 -> yday 收盘的涨幅(%),即昨日涨幅 appendArray(result, array("StockID": stockid, "Zf": zf)); end -sortTableByField(result, "Zf", 0); +sortTableByField(result, "Zf", 0); // 按涨幅逆序 top50 := array(); n := length(result); -if n > 50 then begin n := 50; end +if n > 50 then +begin + n := 50; +end for i := 0 to n - 1 do begin appendArray(top50, result[i]["StockID"]); diff --git a/scripts/main_board_top50_zf_claude.tsl b/scripts/main_board_top50_zf_claude.tsl new file mode 100644 index 00000000..5ce948bb --- /dev/null +++ b/scripts/main_board_top50_zf_claude.tsl @@ -0,0 +1,33 @@ +// 主板股票昨日涨幅排名前 50 +// 主板成分:上证A股 + 深证A股(getAbkbyDate 支持分号分隔多板块) +// “昨天”取当前日期的前一个交易日,避开周末/节假日 + +setSysParam(pn_cycle(), cy_day()); + +yday := lastTradeDay(date()); // 昨日(最近一个已收盘交易日) +prevday := lastTradeDay(yday); // 昨日的前一个交易日 + +stocks := getAbkbyDate('上证A股;深证A股', yday); + +result := array(); +for i, stockid in stocks do +begin + setSysParam(pn_stock(), stockid); + zf := stockZf8(prevday, yday); // prevday 收盘 -> yday 收盘的涨幅(%),即昨日涨幅 + appendArray(result, array("StockID": stockid, "Zf": zf)); +end + +sortTableByField(result, "Zf", 0); // 按涨幅逆序 + +top50 := array(); +n := length(result); +if n > 50 then +begin + n := 50; +end +for i := 0 to n - 1 do +begin + appendArray(top50, result[i]["StockID"]); +end + +return top50; diff --git a/scripts/main_board_top50_zf_codex.tsl b/scripts/main_board_top50_zf_codex.tsl new file mode 100644 index 00000000..dd1e44a7 --- /dev/null +++ b/scripts/main_board_top50_zf_codex.tsl @@ -0,0 +1,22 @@ +end_t := yesterday(); + +stocks := getAbkbyDate('上证A股;深证A股', end_t); + +data := select ['StockID'] as "Code", + spec(specDate(stockZf3(), ['date']), ['StockID']) as "Zf" + from markettable datekey end_t to end_t of stocks end; + +sorted := select ["Code"] from data order by ["Zf"] desc end; + +n := min(50, length(sorted)); +result := array(); +if n > 0 then +begin + for i := 0 to n - 1 do + begin + result[i] := sorted[i]["Code"]; + writeLn(result[i]); + end; +end; + +return result; diff --git a/scripts/main_board_top50_zf_qwen3.6-27b.tsl b/scripts/main_board_top50_zf_qwen3.6-27b.tsl new file mode 100644 index 00000000..12bfec59 --- /dev/null +++ b/scripts/main_board_top50_zf_qwen3.6-27b.tsl @@ -0,0 +1,26 @@ +#! 获取昨天主板所有股票涨幅排名,取前50股票代码 + +dt := yesterday(); +dt_prev := dt - 1; + +stocks := getAbkbyDate('上证A股;深证A股', dt); +n := length(stocks); + +gains := array(); +for i := 0 to n - 1 do +begin + setSysParam(PN_Stock(), stocks[i]); + zf := stockZf(dt_prev, dt); + gains[i] := array("code": stocks[i], "zf": zf); +end; + +top50 := select * from gains + order by ["zf"] desc + end; +top50 := select drange(0 to 49) * from top50 end; + +echo "昨天(" $ dateToStr(dt) $ ")主板涨幅前50:"; +for i := 0 to length(top50) - 1 do +begin + echo (i + 1) $ ". " $ top50[i]["code"] $ " 涨幅:" $ top50[i]["zf"] $ "%"; +end; \ No newline at end of file