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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 代码顺序

   

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


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

主题:代码顺序

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


加好友 发短信
等级:论坛游侠 帖子:360 积分:0 威望:0 精华:0 注册:2017/7/2 20:47:59
代码顺序  发帖心情 Post By:2019/12/22 15:20:17 [只看该作者]

今天遇到了难以理解的问题,发现调整代码顺序会影响回测结果。。。。今天新加了一组开仓条件,发现必须放在某组止损条件之前,结果更好。逻辑上说不过去啊!循环读取开平仓和止损条件,按理说,代码的排列顺序不应该影响到结果啊。过去确实没有影响。

版主大神,这是为什么???


 回到顶部
美女呀,离线,留言给我吧!
zm71212302
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:201 积分:0 威望:0 精华:0 注册:2013/4/6 22:01:12
  发帖心情 Post By:2019/12/23 3:12:35 [只看该作者]

查看下逻辑指针是否存在问题,其次是变量名称是否有重复,还有是某些全局变量与局部变量产生的冲突。

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/12/23 8:21:18 [只看该作者]

代码整体逻辑虽然是顺序结构,但是在整个循环执行中。你开平仓代码顺序调换,自然可能造成开平语句执行发生变化。

止盈止损一般都是需要在开平语句之后。例如:如果放在前面(并且存在仓位控制时),当第一次发生同一根k线的盈止损条件并且开平条件同时成立时,因为止盈止损在前,没有仓位可平,止盈止损无效,再进行开平,就会造成后面的代码执行结果与止盈止损在后面的结果不同



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
大豆0911
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:360 积分:0 威望:0 精华:0 注册:2017/7/2 20:47:59
  发帖心情 Post By:2019/12/23 11:48:46 [只看该作者]

以下是引用zm71212302在2019/12/23 3:12:35的发言:
查看下逻辑指针是否存在问题,其次是变量名称是否有重复,还有是某些全局变量与局部变量产生的冲突。

谢谢版主,请问逻辑指针是指什么?能否举例呢?

变量名称没有重复,没有用全局变量,但是用了enterbars,exitbars这些会随信号变化的函数。


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


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

您可以理解为顺序。说个办法,把策略加载到图表上,然后每个开平仓语句包括止损止盈都标记下,看下两种不同的策略对应的结果,看下具体差异出在哪里,标记用如下方法:
开多1: buy(....)
开多2:buy(....)

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

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


加好友 发短信
等级:论坛游侠 帖子:360 积分:0 威望:0 精华:0 注册:2017/7/2 20:47:59
  发帖心情 Post By:2019/12/23 13:26:44 [只看该作者]

以下是引用wenarm在2019/12/23 8:21:18的发言:

代码整体逻辑虽然是顺序结构,但是在整个循环执行中。你开平仓代码顺序调换,自然可能造成开平语句执行发生变化。

止盈止损一般都是需要在开平语句之后。例如:如果放在前面(并且存在仓位控制时),当第一次发生同一根k线的盈止损条件并且开平条件同时成立时,因为止盈止损在前,没有仓位可平,止盈止损无效,再进行开平,就会造成后面的代码执行结果与止盈止损在后面的结果不同

谢谢版主,我没太懂您说的意思。。。我的系统是全进全出,平仓都是全平SELLSHORT(HOLDING<0,0,market),开仓都在空仓条件下buy(HOLDING=0,60,market)

所以我理解“止盈止损在前,没有仓位可平”这个情况应该不存在?按照HOLDING<0 或 HOLDING>0条件,没有仓位时,止盈止损平仓条件都不会触发。


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


加好友 发短信
等级:论坛游侠 帖子:360 积分:0 威望:0 精华:0 注册:2017/7/2 20:47:59
  发帖心情 Post By:2019/12/23 13:30:23 [只看该作者]

以下是引用banzhuan在2019/12/23 13:23:35的发言:
您可以理解为顺序。说个办法,把策略加载到图表上,然后每个开平仓语句包括止损止盈都标记下,看下两种不同的策略对应的结果,看下具体差异出在哪里,标记用如下方法:
开多1: buy(....)
开多2:buy(....)

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看
 
谢谢版主,成交单数太多了,如果在图表上,检查难度有点大,是否有办法在回测报告中,把开多1开多2标识出来呢?


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


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

回测报告里面体现不出来,您加载一段K线图,大致的策略运行逻辑就知道了呀

 回到顶部