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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 后台问题请教

   

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


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

主题:后台问题请教

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


加好友 发短信
等级:论坛游侠 帖子:139 积分:0 威望:0 精华:0 注册:2016/12/13 9:40:24
后台问题请教  发帖心情 Post By:2020/12/3 12:59:51 [只看该作者]

后台模拟时,有时候会出现下述问题:
1.后台精细化回测明细中有开仓,但实际模拟盘未开仓;
2.回测debugfile输出的文档中满足开仓条件,但THOLDING的输出为0;

请问这是什么原因导致的??谢谢!!



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

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/12/3 13:00:31编辑过]

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/3 13:14:56 [只看该作者]


TBUYHOLDINGEX()
TSELLHOLDINGEX()
输出持仓情况,这里不要用THOLDING。

另外你这个输出文本的代码和开仓的代码 的条件需要确保下控制的是一致的。你直接把输出语句和开仓语句写在一起。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
Ritter
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:139 积分:0 威望:0 精华:0 注册:2016/12/13 9:40:24
  发帖心情 Post By:2020/12/3 13:33:06 [只看该作者]

1.TBUYHOLDINGEX()函数用在DEBUGFILE中不起作用;
 
2.关键问题是回测中有开仓,实际模拟中无开仓的问题。
 
 
代码如下:

 

 

BUYCOND:=BULL AND B_COND  AND BVOL;

IF ISLASTBAR THEN
  DEBUGFILE('D:\TEST.TXT','       buycond:%.0f',buycond);
IF BUYCOND THEN BEGIN
 TSELLSHORT(1,0,MKT);
 TBUY(TBUYHOLDINGEX('','',1)=0,CW%,MKT),PERTRADER;
 IF ISLASTBAR THEN BEGIN
  DEBUGFILE('D:\TEST.TXT','TBUYHOLDINGEX('','',1):%.0f',TBUYHOLDINGEX('','',1));
  DEBUGFILE('D:\TEST.TXT','THOLDING:%.0f',THOLDING);
     END
END


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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/12/3 13:48:24 [只看该作者]

1、DEBUGFILE('D:\TEST.TXT',''多持:%.0f',TBUYHOLDINGEX('','',1));// 改成这样输出

2、实盘运行中,建议也同时输出开仓条件看下

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/3 14:04:12 [只看该作者]

1.这里改下,那个括号去掉,否则程序这里会无法识别。
DEBUGFILE('D:\TEST.TXT','TBUYHOLDINGEX:%.0f',TBUYHOLDINGEX('','',1));

2.“关键问题是回测中有开仓,实际模拟中无开仓的问题。”模拟盘文本记录中的条件是否满足了呢?今天上午回测里面是有信号,但是模拟交易时候可能存在信号没捕捉到(固定轮询时间间隔内出的信号,然后又消失了)的问题。建议你可以再运行模拟观察下,是否会一直出现记录的条件满足,但是没有开仓的情况。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
Ritter
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:139 积分:0 威望:0 精华:0 注册:2016/12/13 9:40:24
  发帖心情 Post By:2020/12/3 14:08:57 [只看该作者]

还是不行,不是输出的问题。

 


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


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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/12/3 14:52:27 [只看该作者]

我们本地先跟踪一下,稍后个给您答复

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/3 15:03:48 [只看该作者]

 你加2句先  看下回测里面的第一次开仓的位置到底在什么地方:

 tstr:=NUMTOSTR(date,0)+'_'+NUMTOSTR(time,0);
 DEBUGFILE('D:\TEST.TXT','       开仓位置:'+tstr,0);

这2句直接写在下单语句后面即可。


如果这里记录的开仓位置和回测明细里面的位置是一样的,那说明可能是持仓函数在输出时候的问题。我本地测试是记录的位置和回测里的位置是一致的。但是这个持仓在第一次时候记录的不一样。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
Ritter
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:139 积分:0 威望:0 精华:0 注册:2016/12/13 9:40:24
  发帖心情 Post By:2020/12/3 16:09:10 [只看该作者]

1.模拟用的是K线走完,理论上不存在信号闪烁;

 

2.昨天下午开始模拟,24个品种,截止目前,有三个品种各出现了一次满足条件不开仓的问题;

 

3.分别回测了多个品种,还是会出现类似问题,输出的开仓位置和回测明细里的位置一致,如果是持仓函数输出的问题,那模拟的时候不应该出现这个问题呀。

 

 


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

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


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


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2020/12/3 16:29:16 [只看该作者]

第二个问题,你是如何判断满足条件不开仓呢? 是输出日志中条件满足了,但是账户栏没有委托记录吗?    后台是没法和图表直接做对比的,两者的运行机制有很大区别。 只能用日志输出跟踪是否满足了开仓条件。


另外,回测时的日志第一次满足条件时,持仓数量没显示可能是机制的问题,明天工作人员测试下实盘运行中是否有这个问题。

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