# 金融 / 行情 / 中间函数 ## `getstockcallauctiontime(stockid, endt, flag)` 声明:function 返回集合竞价时间(取数时间) | 参数 | 类型 | 说明 | | --------- | ------- | ----------------------------------------------------------- | | `stockid` | string | String, | | `endt` | date | date, | | `flag` | integer | Integer,盘前or盘后集合竞价,开盘前集合竞价=1收盘前集合竞价=0 | 返回:array ### 示例 范例01:调用函数 ```tsl // 获取万科A在2020-06-22这一天的开盘前集合竞价数据起止时间。 return getstockcallauctiontime ('SZ000002', 20200622T, 1); // 输出:array(44004.375, 44004.3958217593) ``` ## `getUnilateralValue(exp, endt)` 声明:function 返回期货单边指标,与系统参数(证券代码)相关 | 参数 | 类型 | 说明 | | ------ | ----------- | -------------- | | `exp` | string | 字符串。表达式 | | `endt` | t_date_time | 日期。截止日 | 返回:real ### 示例 范例01:调用函数 ```tsl setSysParam(pn_stock(), "TF2403"); return getUnilateralValue(@amount(), 20240223T); // 输出:16351794700 ``` ## `isLowCycle()` 声明:function 判断是否日线以上低频周期,与系统参数(周期)相关 返回:integer ## `marketAmountAWithStock(beg_t, end_t)` 声明:function 返回和股票对应的市场区间成交金额(万),与系统证券pn_stock()有关,不复权 | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------- | | `beg_t` | t_date_time | 日期类型,开始日 | | `end_t` | t_date_time | 日期类型,截止日 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A对应的市场板块(深证A股;中小企业板)的区间成交金额(万)。 setSysParam(PN_Stock(), 'SZ000002'); beg_t := intToDate(20180910); end_t := intToDate(20180911); return marketAmountAWithStock(beg_t, end_t); // 输出:18397546.16 ``` ## `marketVolAWithStock(beg_t, end_t)` 声明:function 返回和股票对应的市场区间成交量(万),与系统证券pn_stock()有关,不复权 | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------- | | `beg_t` | t_date_time | 日期类型,开始日 | | `end_t` | t_date_time | 日期类型,截止日 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A对应的市场板块(深证A股;中小企业板)的区间成交量(万)。 setSysParam(PN_Stock(), 'SZ000002'); beg_t := intToDate(20180910); end_t := intToDate(20180911); return marketVolAWithStock(beg_t, end_t); // 输出:2126291.86 ``` ## `pjCj(begttime, endttime, price_type, datatype)` 声明:function 返回区间平均成交价,与系统参数(证券代码)相关 | 参数 | 类型 | 说明 | | ------------ | --------- | --------------------------------- | | `begttime` | tdatetime | 日期时间。开始日期时间 | | `endttime` | tdatetime | 日期时间。截止日期时间 | | `price_type` | integer | 用户自定义。平均价算法,取值如下: | | `datatype` | integer | 用户自定义。数据类型,取值如下: | 返回:real ### 示例 范例01:调用函数 ```tsl // 沪深300指数20241108 10:00的5分钟平均成交价(成交量加权平均) setSysParam(pn_stock(), "SH000300"); return pjCj(20241108.0955T, 20241108.10T, 1, 1); // 输出:4163.1544 ``` ## `stockBegTBeforeNDay(end_t, n)` 声明:function 返回最近N日/N周前的交易日,从EndT当天开始算第一天,与系统证券pn_stock()和系统周期pn_cycle()有关。调用时需注意设置系统参数 | 参数 | 类型 | 说明 | | ------- | -------- | ---------------- | | `end_t` | datetime | 日期类型,截止日 | | `n` | int | 整数类型,N日 | 返回:datetime ### 示例 范例01:调用函数 ```tsl SetSysParam(PN_Stock(), 'SZ000002'); EndT := inttodate(20180911); return StockBegTBeforeNDay(EndT, 1); ``` ## `stockEndOfMonth(end_t)` 声明:function 返回当月最后一个交易日(可取未来) | 参数 | 类型 | 说明 | | ------- | ----------- | ------------ | | `end_t` | t_date_time | 日期。截止日 | 返回:real ### 示例 范例01:调用函数 ```tsl // 20230506T当月最后一个交易日 return stockEndOfMonth(20230506T); // 输出:45077 ``` ## `stockendtafternday(begt, n)` 声明:function 返回指定日N个交易日后的日期 | 参数 | 类型 | 说明 | | ------ | ------- | ------------- | | `begt` | date | date,开始日期 | | `n` | integer | integer,N日 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A在2018年9月11日向后推5个交易日的日期。 setSysParam(PN_Stock(), 'SZ000002'); end_t := intToDate(20180911); return stockendtafternday(end_t, 5); // 输出:43361(2018-09-18) ``` ## `stockEndTPrevNDay(end_t, n)` 声明:function 返回指定日期向前推N个交易日期,与系统证券pn_stock()和系统周期pn_cycle()有关。调用时需注意设置系统参数 | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------- | | `end_t` | t_date_time | 日期类型,截止日 | | `n` | integer | 整数类型,交易日 | 返回:t_date_time ### 示例 范例01:调用函数 ```tsl // 返回万科A在2018年9月11日向前推5个交易日的日期。 setSysParam(PN_Stock(), 'SZ000002'); setSysParam(pn_cycle(), cy_day()); end_t := intToDate(20180911); return stockEndTPrevNDay(end_t, 5); // 输出:43347(2018-09-04) ``` ## `stockHighAndLow(beg_t, end_t, h, l)` 声明:function 返回区间最高&最低,与系统证券pn_stock()有关,周期为日线,已复权(比例复权,基准日为EndT) | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------------- | | `beg_t` | t_date_time | 日期类型,开始日 | | `end_t` | t_date_time | 日期类型,截止日 | | `h` | real | 实数,最高价,输出参数 | | `l` | real | 实数,最低价,输出参数 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A在2018年9月1日至2018年9月11日的区间最高&最低。 setSysParam(PN_Stock(), 'SZ000002'); beg_t := intToDate(20180901); end_t := intToDate(20180911); stockHighAndLow(beg_t, end_t, h, l); return array('high':h, 'low':l); ``` ## `stockIsSTorSLim(end_t)` 声明:function 返回5%限制的股票判断,涨跌停判断的辅助函数 | 参数 | 类型 | 说明 | | ------- | ----------- | -------------- | | `end_t` | t_date_time | 日期。截止日期 | 返回:integer ## `stockNDayAdjust(n)` 声明:function 返回N日的修正(m),与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关 | 参数 | 类型 | 说明 | | ---- | ------- | ------------------ | | `n` | integer | 整数类型,日期间隙 | 返回:integer ### 示例 范例01:调用函数 ```tsl // 返回万科A截止2018年9月18日的100日修正后的交易日数。 setSysParam(PN_Stock(), 'SZ000002'); setSysParam(pn_date(), intToDate(20180918)); setSysParam(pn_cycle(), cy_day()); return stockNDayAdjust(100); // 输出:100(万科A上市日为1991-01-02) ``` ## `stockPriceChangeDay(beg_t, end_t, expr)` 声明:function 返回股票上涨天数,与系统证券pn_stock()有关,周期为日线,已复权 | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------- | | `beg_t` | t_date_time | 日期类型,开始日 | | `end_t` | t_date_time | 日期类型,截止日 | | `expr` | expression | 表达式 | 返回:integer ### 示例 范例01:调用函数 ```tsl // 返回万科A在2018年9月11日至2018年9月18日之间的上涨天数。 setSysParam(PN_Stock(), 'SZ000002'); begt := intToDate(20180911); endt := intToDate(20180918); return stockPriceChangeDay(begt, endt, @isUp()); // 输出:2 ``` ## `stockPriceChangeDay2(n, expr)` 声明:function 返回N日上涨/下跌/平盘天数, 统计N天中表达式Exp值为真的天数,与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关 | 参数 | 类型 | 说明 | | ------ | ---------- | ---------------------- | | `n` | integer | 整数类型,交易日数 | | `expr` | expression | 表达式,上涨/下跌/平盘 | 返回:integer ### 示例 范例01:调用函数 ```tsl // 返回万科A截止2018年9月18日的5日内的上涨天数。 setSysParam(PN_Stock(), 'SZ000002'); setSysParam(pn_date(), intToDate(20180918)); return stockPriceChangeDay2(5, @isUp()); // 输出:2 ``` ## `stockTradeDaysQkAfterN(beg_t, n)` 声明:function 返回指定日期向后推N个交易日期,与系统证券pn_stock()和系统周期pn_cycle()有关。调用时需注意设置系统参数 | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------- | | `beg_t` | t_date_time | 日期类型,开始日 | | `n` | integer | 整数类型,交易日 | 返回:t_date_time ### 示例 范例01:调用函数 ```tsl // 返回万科A在2018年9月11日向后推5个交易日的日期。 setSysParam(PN_Stock(), 'SZ000002'); setSysParam(pn_cycle(), cy_day()); end_t := intToDate(20180911); return stockTradeDaysQkAfterN(end_t, 5); // 输出:43361(2018-09-18) ``` ## `stockValueHigh2(n, expr)` 声明:function 返回N日表达式的最高,与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关 | 参数 | 类型 | 说明 | | ------ | ---------- | ------------------ | | `n` | integer | 整数类型,交易日数 | | `expr` | expression | 表达式 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A截止2018年9月18日的5日收盘表达式的最高。 setSysParam(PN_Stock(), 'SZ000002'); setSysParam(pn_date(), intToDate(20180918)); setSysParam(pn_cycle(), cy_day()); n := 5; expr := @close(); return stockValueHigh2(n, expr); // 输出:23.32 ``` ## `stockValueLow(beg_t, end_t, expr)` 声明:function 返回指定时间段内最低,与系统参数(股票)相关 | 参数 | 类型 | 说明 | | ------- | ----------- | -------------- | | `beg_t` | t_date_time | 日期。开始日期 | | `end_t` | t_date_time | 日期。截止日期 | | `expr` | string | 字符串。表达式 | 返回:real ### 示例 范例01:调用函数 ```tsl setSysParam(pn_stock(), 'SZ000002'); return stockValueLow(20230101T, 20231231T, @vol()); // 输出:27320474 ``` ## `stockValueLow2(n, expr)` 声明:function 返回N日表达式的最低,与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关 | 参数 | 类型 | 说明 | | ------ | ---------- | ------------------ | | `n` | integer | 整数类型,日期间隙 | | `expr` | expression | 表达式 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A截止2018年9月18日的5日收盘表达式的最低。 setSysParam(PN_Stock(), 'SZ000002'); setSysParam(pn_date(), intToDate(20180918)); setSysParam(pn_cycle(), cy_day()); n := 5; expr := @close(); return stockValueLow2(n, expr); // 输出:22.83 ``` ## `stockValueSum(beg_t, end_t, expr)` 声明:function 返回阶段统计,即指定时间段内表达式的统计,与系统证券pn_stock()、系统周期pn_cycle()和系统时间有关 | 参数 | 类型 | 说明 | | ------- | ----------- | ---------------- | | `beg_t` | t_date_time | 日期类型,开始日 | | `end_t` | t_date_time | 日期类型,截止日 | | `expr` | expression | 表达式 | 返回:real ### 示例 范例01:调用函数 ```tsl // 返回万科A在2018年9月1日至2018年9月11日之间收盘表达式的统计和。 setSysParam(PN_Stock(), 'SZ000002'); beg_t := intToDate(20180901); end_t := intToDate(20180911); expr := @close(); return stockValueSum(beg_t, end_t, expr); // 输出:164.21 ``` ## `stockValueSum2(n, expr)` 声明:function 返回N日表达式的和,与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关 | 参数 | 类型 | 说明 | | ------ | ---------- | ------------------ | | `n` | int | 整数类型,交易日数 | | `expr` | expression | 表达式 | 返回:float ### 示例 范例01:调用函数 ```tsl SetSysParam(PN_Stock(), 'SZ000002'); setsysparam(pn_date(), inttodate(20180918)); setsysparam(pn_cycle(), cy_day()); N := 5; Expr := @close(); return StockValueSum2(N, Expr); ``` ## `stockZt_cal(endt, flag)` 声明:function 计算涨停的中间函数 | 参数 | 类型 | 说明 | | ------ | -------- | ------------------------------- | | `endt` | datetime | 日期。截止日 | | `flag` | integer | 用户自定义。价格类型,取值如下: | 返回:integer ## `trasactionMinutePerDay()` 声明:function 返回每天交易分钟数,即240分钟,与系统证券无关 返回:integer ### 示例 范例01:调用函数 ```tsl // 返回每天交易分钟数。 return trasactionMinutePerDay(); // 输出:240 ```