金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 100020061

老师帮写下

[复制链接]

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-6-28 12:44 | 显示全部楼层
技术009 发表于 2023-6-28 11:32
做不到的。图表上无法做到这种程度的控制的。

整个模型就是这个结构
介入时间:=time=173500 OR time=180000 OR time=183000;
if 介入时间=1   then
BEGIN
引用50条
debugfile();
END
当时间不满足的情况下,它不输出结果
当时间满足的情况下。它会输出结果。
但是两种情况下,它的运算时间居然是一样的?
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-6-28 13:00 | 显示全部楼层
技术009 发表于 2023-6-28 11:14
05这个点必须有分笔。

IF 和引用的关系 测试下 看是不是IF不能控制引用的运算?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-28 13:10 | 显示全部楼层
你在被调用指标里写一个输出语句就知道了。如果它被调用了,那么就会执行这个输出语句的。

但是我之前本地测试 if 不满足时候,没有输出调试。也就是至少一般性情况下应该是不会执行调用语句的,是否有其他例外情况 那就涉及到更底层机制了,我觉得完全没有必要探究了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-6-28 13:28 | 显示全部楼层
技术009 发表于 2023-6-28 13:10
你在被调用指标里写一个输出语句就知道了。如果它被调用了,那么就会执行这个输出语句的。

但是我之前本 ...

是这样的  我做了两个模型,主要用于平仓后的输出,调用所有持仓品种数据进行计算,但是这个计算限定了具体时间。
比如收盘的时候调用所有品种的盈亏,并计算总盈亏,输出到文本进行记录。
因为我限制了引用的条件,受IF控制。如果IF能限制,就算我再多的引用,它也只在IF有效时间点运行慢,不影响其他时间的运行。 但是实际测试中发现,根本不满足IF的内部运算的情况下,这个模型运行的时候非常卡顿。 所以想知道是怎么回事,怎么才能更好的用这个引用
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-6-28 13:30 | 显示全部楼层
技术009 发表于 2023-6-28 13:10
你在被调用指标里写一个输出语句就知道了。如果它被调用了,那么就会执行这个输出语句的。

但是我之前本 ...

我现在在限制了当天的K线数量  会好一点点,所以我要确认下 我怎么才能在收盘的时候才计算这个模型 要怎么去现在它
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-28 13:43 | 显示全部楼层
首先 你先按照我说的方式 去测试下,被调用的指标是否在没有if满足的情况下被调用了
在被调用指标里加上 msgout之类的输出语句,它只要执行了就会触发输出。之后再确认下是否有可能你if本身条件就没做好处理? 你以为你if没满足的位置,实际上是满足了?我只能告诉你大概的排查方向,但是我是没办法替你直接定位明确你本地的问题的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-6-28 13:53 | 显示全部楼层
技术009 发表于 2023-6-28 13:43
首先 你先按照我说的方式 去测试下,被调用的指标是否在没有if满足的情况下被调用了
在被调用指标里加上 m ...

介入时间:=time=190000;
当日盈亏:=if(介入时间=1,ASSET-VALUEWHEN(TODAYBAR=1,REF(ASSET,1)),DRAWNULL);

if 介入时间=1   then
BEGIN
        豆油:=if(介入时间=1,STKINDI('Y00','重新来过.当日盈亏',0,2),DRAWNULL);
debugfile('C:\Users\19934607158_17891728\Desktop\当日盈亏.TXT',  ' 豆油  主连当日盈亏:  '&numtostr(豆油,2),1234);
PVC:=if(介入时间=1,STKINDI('V00','重新来过.当日盈亏',0,2),DRAWNULL);
debugfile('C:\Users\19934607158_17891728\Desktop\当日盈亏.TXT',  ' PVC   主连当日盈亏:  '&numtostr(PVC,2),1234);
END
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-28 13:54 | 显示全部楼层
还有个可能性,写文本是很占用资源的。你这个调试语句本身可能也会是造成卡的原因之一。如果你写文件非常多,那是可能会卡顿的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-6-28 13:55 | 显示全部楼层
技术009 发表于 2023-6-28 13:43
首先 你先按照我说的方式 去测试下,被调用的指标是否在没有if满足的情况下被调用了
在被调用指标里加上 m ...

我的整个模型就这样啊   只是IF内部的品种有30几个,但是介入时间 是收盘时间啊,按道理这样运行模型很快的对吧,因为被介入时间控制着的 ,但是实际运行很慢  一点运行就卡, 模型没有其他任何东西。  如果把品种只留一个就快了,所以我怀疑IF不能现在引用的计算,只限制引用的输出?  这不应该啊  老师可以加个品种进去测试就知道了
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-28 14:02 | 显示全部楼层
你又没限制历史K这个时间点不运算呀。 你如果数据量很大,你历史K也有很多计算的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-16 13:15 , Processed in 0.141154 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表