📝 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 <noreply@anthropic.com>
This commit is contained in:
@@ -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"]);
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user