问题
ftshare-market-data/sub-skills/stock-unlock/scripts/handler.py(upstream main @ ba2e965):
parser.add_argument("--stock_code") # L23
parser.add_argument("--start_date") # L24
parser.add_argument("--end_date") # L25
...
parser.add_argument("--stock-code", required=True) # L28
L28 的 required=True 导致不传 --stock-code 就无法调用。但接口本身接受「stock_code」或「start_date + end_date」二选一(服务端报错原文见下),所以 handler 做不了"按日期区间查全市场解禁日历"这个主要用法,和 #19(stock-limit --symbol 必填)是同一类问题。
实测证据(2026-09-23,免费额度 key)
$ python run.py stock-unlock --start_date 20260901 --end_date 20260930
handler.py: error: the following arguments are required: --stock-code (exit 2)
直连 GET /api/v1/market/data/unlock/stock_unlock:
?start_date=20260901&end_date=20260930 → 200,total=250(214 只),unlockDate 全在 2026-09-01..09-30
?start_date=20261001&end_date=20261031 → 200,total=143(135 只),unlockDate ∈ 2026-10-08..10-30
?start_date=2026-09-01&end_date=2026-09-30 → 200,total=250(两种日期格式都收)
?start_date=20260901 → 400 {"code":400,"message":"start_date 和 end_date 必须同时传入","data":null}
(三个参数都不传) → 400 {"code":400,"message":"必须传 stock_code,或同时传入 start_date 和 end_date","data":null}
?stock_code=000001 → 200,total=6
日期区间确实生效:9 月和 10 月的结果不同,且日期都落在各自区间内。服务端的报错信息也写明了二选一的规则。
顺带两个小问题
$ python run.py stock-unlock --stock_code 000001
handler.py: error: the following arguments are required: --stock-code (exit 2)
--stock_code(L23)和 --stock-code(L28)的 dest 相同,--help 里两个都列了出来,但只有连字符版能用:
L31 和 L36 重复写了同一句 params["stock_code"] = args.stock_code。
建议修复
parser.add_argument("--stock-code", "--stock_code", dest="stock_code")
parser.add_argument("--start_date")
parser.add_argument("--end_date")
parser.add_argument("--page")
parser.add_argument("--page_size")
args = parser.parse_args()
if not args.stock_code and not (args.start_date and args.end_date):
parser.error("必须传 --stock-code,或同时传入 --start_date 和 --end_date")
合并成一个 flag(两种写法都认),并在客户端做和服务端一样的二选一校验:
删掉 L36 的重复赋值,并在 SKILL.md 补一条全市场示例:
python <RUN_PY> stock-unlock --start_date 20260901 --end_date 20260930 --page 1 --page_size 100
环境
upstream main @ ba2e965(2026-09-22)· 免费额度 API key · 2026-09-23 实测
问题
ftshare-market-data/sub-skills/stock-unlock/scripts/handler.py(upstream main @ ba2e965):
parser.add_argument("--stock_code") # L23
parser.add_argument("--start_date") # L24
parser.add_argument("--end_date") # L25
...
parser.add_argument("--stock-code", required=True) # L28
L28 的 required=True 导致不传 --stock-code 就无法调用。但接口本身接受「stock_code」或「start_date + end_date」二选一(服务端报错原文见下),所以 handler 做不了"按日期区间查全市场解禁日历"这个主要用法,和 #19(stock-limit --symbol 必填)是同一类问题。
实测证据(2026-09-23,免费额度 key)
$ python run.py stock-unlock --start_date 20260901 --end_date 20260930
handler.py: error: the following arguments are required: --stock-code (exit 2)
直连 GET /api/v1/market/data/unlock/stock_unlock:
?start_date=20260901&end_date=20260930 → 200,total=250(214 只),unlockDate 全在 2026-09-01..09-30
?start_date=20261001&end_date=20261031 → 200,total=143(135 只),unlockDate ∈ 2026-10-08..10-30
?start_date=2026-09-01&end_date=2026-09-30 → 200,total=250(两种日期格式都收)
?start_date=20260901 → 400 {"code":400,"message":"start_date 和 end_date 必须同时传入","data":null}
(三个参数都不传) → 400 {"code":400,"message":"必须传 stock_code,或同时传入 start_date 和 end_date","data":null}
?stock_code=000001 → 200,total=6
日期区间确实生效:9 月和 10 月的结果不同,且日期都落在各自区间内。服务端的报错信息也写明了二选一的规则。
顺带两个小问题
$ python run.py stock-unlock --stock_code 000001
handler.py: error: the following arguments are required: --stock-code (exit 2)
--stock_code(L23)和 --stock-code(L28)的 dest 相同,--help 里两个都列了出来,但只有连字符版能用:
L31 和 L36 重复写了同一句 params["stock_code"] = args.stock_code。
建议修复
parser.add_argument("--stock-code", "--stock_code", dest="stock_code")
parser.add_argument("--start_date")
parser.add_argument("--end_date")
parser.add_argument("--page")
parser.add_argument("--page_size")
args = parser.parse_args()
if not args.stock_code and not (args.start_date and args.end_date):
parser.error("必须传 --stock-code,或同时传入 --start_date 和 --end_date")
合并成一个 flag(两种写法都认),并在客户端做和服务端一样的二选一校验:
删掉 L36 的重复赋值,并在 SKILL.md 补一条全市场示例:
python <RUN_PY> stock-unlock --start_date 20260901 --end_date 20260930 --page 1 --page_size 100
环境
upstream main @ ba2e965(2026-09-22)· 免费额度 API key · 2026-09-23 实测