# 事件套利 / 事件发生器 ## `TSEDEventGenerator` 声明:class 事件发生器框架 ### `fBegT` 声明:field 开始日 当前系统时间往前推 3 年 可见性:`public` 类型:date ### `fEndT` 声明:field 截止日 当前系统时间 可见性:`public` 类型:date ### `fConInfo` 声明:field 样本剔除 可见性:`public` 类型:array ### `fIndexArr` 声明:field (指数定期调整类型事件设置)指数池 array("SH000300") 可见性:`public` 类型:array ### `getSampleData(output_type)` 声明:function 获取事件样本数据,可以选择是否标准化输出,1:标准化输出(默认)0:非标准化输出 可见性:`public` | 参数 | 类型 | 说明 | | ------------- | ------- | ---------------------- | | `output_type` | boolean | 整数型,是否标准化输出 | 返回:table ### `getEventInfo()` 声明:function 获取天软事件库数据信息 可见性:`public` 返回:table ### `getStockArr(beg_t, end_t)` 声明:function 获取初始样本池,可重写,详细可见范例二; 可见性:`public` | 参数 | 类型 | 说明 | | ------- | -------- | ------------------------------------------ | | `beg_t` | datetime | 日期型,开始日,数值为区间开始日FBegT 的值 | | `end_t` | datetime | 日期型,截止日,数值为区间截止日FEndT 的值 | 返回:array #### 示例 范例01:调用示例 ```tsl obj := CreateObject('TSEDEventGenerator'); obj.FEventID := "0201"; //设置事件编号 obj.FBegT := 20191124T; //设置开始日 obj.FEndT := 20221124T; //设置截止日 obj.FBKName := "A 股;暂停上市;终止上市"; //设置初始样本池 obj.main(); return obj.GetSampleData(0); //返回事件样本数据 ``` 范例02:调用示例 ```tsl obj := CreateObject('MyEDEventGenerator'); obj.FEventID := "0201"; //设置事件编号 obj.FBegT := 20191124T; //设置开始日 obj.FEndT := 20221124T ; //设置截止日 obj.FStockArr := StockArr; //设置用户自有样本池 obj.main(); return obj.GetSampleData(0); //返回事件样本数据 Type MyEDEventGenerator=class(TSEDEventGenerator) FStockArr; //样本池 //导入用户自有样本池 function GetStockArr(BegT,EndT);override; begin return FStockArr; end; End ``` 范例03:调用示例 ```tsl obj := CreateObject('TSEDEventGenerator'); obj.FEventID := "0101"; //设置事件编号 obj.FBegT := 20191124T; //设置开始日 obj.FEndT := 20221124T; //设置截止日 obj.FIndexArr := array("SH00300"); //设置初始样本池 obj.main(); return obj.GetSampleData(0); //返回事件样本数据 ```