欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 做股票多因子时遇到的关于软件内部运行机理的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2669人关注过本帖树形打印复制链接

主题:做股票多因子时遇到的关于软件内部运行机理的问题

帅哥哟,离线,有人找我吗?
2879993977
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
做股票多因子时遇到的关于软件内部运行机理的问题  发帖心情 Post By:2017/4/5 15:15:59 [只看该作者]

第一日做回测时开仓记录:


图片点击可在新窗口打开查看此主题相关图片如下:0130.png
图片点击可在新窗口打开查看

第二日做回测的开仓记录:


图片点击可在新窗口打开查看此主题相关图片如下:0202.png
图片点击可在新窗口打开查看

问题在这里就是,为什么我相同的代码相同的回测时间段的开仓时间点不一样??(两次20150202开仓股票不一样是因为对开仓过了的股票不进行开仓)

 


图片点击可在新窗口打开查看此主题相关图片如下:%hro3%0@{jewl%e54be1d1.png
图片点击可在新窗口打开查看

而我的逻辑是首先对股票的多个因子进行综合排序,然后根据其每日排名每隔5日开一次仓,在自定义数据那里明明每个股票已经有排名了,但是回测的时候他却没有按固定的时间开仓

(比如20150130已经有排名了但是它到0150202才开仓),下单代码如下


 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/5 15:17:37 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:xiadan.png
图片点击可在新窗口打开查看

datcount是每五日标记一次的函数(选最高选20是刚开始的时候打算每20日更新一次的)

图片点击可在新窗口打开查看此主题相关图片如下:datcount.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/5 15:18:27 [只看该作者]

做排序的时候的排名数据: 


图片点击可在新窗口打开查看此主题相关图片如下:hengxiang.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:paixu.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/5 15:21:13 [只看该作者]

我想问的是,是否是代码没有正确读取到:

综合排名: REF(SELFDATA('综合排名'),1);

这一个函数

导致当其综合排名<11时仍没有进行开仓???

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/5 15:24:09 [只看该作者]

如果不是综合排名的这里的问题的话可能就是我:

DAYCOUNT=1 OR DAYCOUNT=6 OR DAYCOUNT=11 OR DAYCOUNT=1

这里每五日开一次仓这里代码的问题,

调仓周期设为5日一次有没有更好的方法????


 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/5 15:29:51 [只看该作者]

也就是我想固定一个初始日,从这个初始日算起每个5个交易日调一次仓

 回到顶部
帅哥哟,离线,有人找我吗?
shq
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2266 积分:0 威望:0 精华:0 注册:2016/11/15 9:18:08
  发帖心情 Post By:2017/4/5 16:11:35 [只看该作者]

1、自定义数据每日刷新,这个排序会变动吗?是否影响后续呢?

2、代码不会不读取,您也可以用调试工具对 综合排名: REF(SELFDATA('综合排名'),1); 进行调试;

3、DAYCOUNT=1 OR DAYCOUNT=6 OR DAYCOUNT=11 OR DAYCOUNT=16  这个写法应该没有问题  您可以用求余来表示 MOD( DAYCOUNT, 5)=1;


————————————————————

90%问题均可在历史帖中重现,请善用检索

————————————————————

VIP认证的好处: 帖子将更好更快地被处理

————————————————————

 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/5 16:55:56 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:)38{9dqlo_hrgi)f$njv48y.png
图片点击可在新窗口打开查看

调试了下,可能是我daycount这部分函数的问题,

在图表上显示0130日daycount=8,并非5n+1,也就是未达到我预设的开仓信号但是在回测计算的时候它却被触发了,

也就是在图标回测中与图表现实中daycount计算存在差异,回测时其值应该并非为8而是1或6,11,16

 

请问金字塔回测的时候的内部机理是吧回测设置的起始第一个交易日作为有效值吗


 回到顶部
帅哥哟,离线,有人找我吗?
shq
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2266 积分:0 威望:0 精华:0 注册:2016/11/15 9:18:08
  发帖心情 Post By:2017/4/5 17:05:44 [只看该作者]

是的,但是有个选项叫做“严格使用时间段数据测试”,不知是否这个产生了偏差。举例说明下:以ref(close,1)为例,起始时间段为2015/1/1,回测时,若勾选这个选项,那么接下来的第一个日K线的引用为空,若不勾选,第一根日K线的引用为上一根K线的收盘价(位于2015/1/1之前)。


————————————————————

90%问题均可在历史帖中重现,请善用检索

————————————————————

VIP认证的好处: 帖子将更好更快地被处理

————————————————————

 回到顶部
帅哥哟,离线,有人找我吗?
2879993977
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/4/6 9:20:20 [只看该作者]

试了勾选与不勾选两种情况,测试结果都一样,看来是回测试程序并没有按照

if startday=20150101 then begin

daycount:=0;

end

daycount:=daycount+1;

运行,daycount这个主要计算开仓时间点的参数无法正确按预定时间初始化;

老师有没有什么好的建议,可以设置成固定一个时间点后,后面每5个(或n个)交易日进行一次调仓?(这里主要是想保证每次相同代码相同设置回测的结果均一直,后期是实盘时也可追朔)


 回到顶部
总数 11 1 2 下一页