FAQ > 金融建模 > 建模问题 > 系统参数

Q:系统参数的获取跟设置的几种方式说明    

  • 在天软中,系统参数的获取跟设置,有以下几种方法:
    方式一:使用setsysparam一个个设置:作用于整个函数;
    方式二:使用
    with * , array(参数1:参数1的值,参数2:参数2的值...) do
    begin
    ...
    end
    的方法:作用于被begin...end封装起来的代码段
    方式三:使用specAll(调用函数,array(设置的系统参数1:参数值,设置的系统参数2:参数值...):仅作用于第一个参数“调用函数”

    下面是几种方法的使用案例:
    //sysparams获取当前所有系统参数详情
    echo '默认系统参数:'$ tostn(sysparams);

    //设置指定系统参数 ->setsysparam ->作用范围:全局
    setsysparam(pn_rate(),1);
    setsysparam(pn_cycle(),cy_week());

    //设置用户自定义的全局变量,可用getsysparam('myParam');获取
    setsysparam('myParam',12345);
    //------------------------------------------

    //系统参数的设置 -->with ->作用范围:with语句段
    echo 'with前状态:'$tostn(sysparams);
    a:=array(pn_stock():"SZ000002",pn_cycle():cy_1m(),pn_date():20170710T+10/24);
    //即以变量a中的设置为最新系统参数,其他的保留此前的设置
    with *,a do 
    begin  //a的更改只作用于with语句段中
     echo 'with中状态:'$tostn(sysparams);
    end
    //回到with前的系统参数值状态
    echo 'with结束后状态:'$tostn(sysparams);

    //------------------------------------------
    //临时指定系统参数的设置-->spec、specdate、specAll ->作用范围:该语句
    //指定股票SH600000的当前时间的收盘价->该票只在该语句中有效
    a:=spec(close(),'SH600000');
    //当前票在指定日20170505日的收盘价->该当前时间只在该语句中有效
    b:=specdate(close(),20170505T);
    //指定票、指定周期、指定时间点、指定复权方式后的收盘价
    c:=specAll(close(),array(pn_stock():'SZ000001',pn_cycle():cy_10m(),pn_date():20170505.1450T,pn_rate():1));
    return array(a,b,c);