金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 100020061

老师看下能不能整理下

[复制链接]

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-9-6 09:49 | 显示全部楼层
技术009 发表于 2023-9-5 17:13
没明白你描述的问题,建议简化下你的问题描述,直接指出需求的核心。

昨天盘后 这两个选取结果不一样  盘中又对了  奇怪  反复测试的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 09:49 | 显示全部楼层
盘中和盘后 你日线数据能一样吗? 肯定不一样啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-9-6 09:50 | 显示全部楼层
技术009 发表于 2023-9-6 09:49
盘中和盘后 你日线数据能一样吗? 肯定不一样啊。

不是啊  昨天是数据一样的情况下  唯一的区别是代码有没有写在一个里面
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-9-6 09:52 | 显示全部楼层
技术009 发表于 2023-9-6 09:49
盘中和盘后 你日线数据能一样吗? 肯定不一样啊。

删除分开选 和  写在一起  结果不一样 数据一样的情况下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 09:56 | 显示全部楼层
你吧代码直接贴上,不要截图。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-9-6 09:59 | 显示全部楼层
技术009 发表于 2023-9-6 09:56
你吧代码直接贴上,不要截图。

{禁止提醒}WARNING_DISABLE:11;
{逐K模式运行}RUNMODE:0;
//以下代码对非双年份合约有效(SC,AY,SRY,BUY等是双年份合约)
INPUT:N(2,1,12,1);//需要获取的排序位数,如N=4,默认最终获取前四名的数值结果。
VARIABLE:codeArr[12]:='',ccodeArr[12]:='',volArr[12]:=0,sortArr[N]:=0,cvolArr[12]:=0,csortArr[N]:=0;//codeArr 品种代码数组;volArr 成交量数组;sortArr 排序结果数组,默认长度是4

STR:=STRTRIMRIGHT( STKLABEL, '0123456789');
//生成每个月的合约代码 并存入到数组中。这个只在第一个K上运行下。字符串相关操作比较消耗资源,没必要每个分笔来都进行一次。

if BARPOS=1 then
begin
for i=1 to 12 do //默认按照该品种有12个月份的合约。
begin
codeArr:= STRCAT(str,STRRIGHT(NUMTOSTR(i/100,2),2));        
end
end
if ISLASTBAR then //将成交量填充到数组里面去. 这里可以自行调整,可以是成交量也可以是其他的什么值,自行选择处理即可。
begin
for j=1 to 12 do
begin
code:=codeArr[j];//code就是合约代码        
vox:=CALLSTOCK(code,vtVOL,6,0);
volArr[j]:=if(vox>=0,vox,0);//不活跃品种,获取到的成交量可能是负值,这里处理下确保没有负值。
end               
end
if ISLASTBAR then //利用线性函数取最大成交量的索引(就是月份数值),每次取值完成后 可以把这个最大值重置为0,这样可以依次获取成交量最大的前几名了。
begin
for j=1 to N do
begin
index:=MFAMAX(volArr,12);
sortArr[j]:=index;
volArr[index]:=0;

end
end
//持仓量
if BARPOS=1 then
begin
for ic=1 to 12 do //默认按照该品种有12个月份的合约。
begin
ccodeArr[ic]:= STRCAT(str,STRRIGHT(NUMTOSTR(ic/100,2),2));        
end
end

if ISLASTBAR then //将成交量填充到数组里面去. 这里可以自行调整,可以是成交量也可以是其他的什么值,自行选择处理即可。
begin
for jj=1 to 12 do
begin
ccode:=ccodeArr[jj];//code就是合约代码        
cvox:=CALLSTOCK(ccode,vtOPENINT,6,0);
cvolArr[jj]:=if(cvox>=0,cvox,0);//不活跃品种,获取到的成交量可能是负值,这里处理下确保没有负值。
end               
end
if ISLASTBAR then //利用线性函数取最大成交量的索引(就是月份数值),每次取值完成后 可以把这个最大值重置为0,这样可以依次获取成交量最大的前几名了。
begin
for jj=1 to N do
begin
cindex:=MFAMAX(cvolArr,12);
csortArr[jj]:=cindex;
cvolArr[cindex]:=0;

end
end





if ISLASTBAR then
begin

成交量主力月:sortArr[1];//第一的月份
成交量次主力月:sortArr[2];//第二的月份

END
if ISLASTBAR then
begin

持仓量主力月:csortArr[1];//第一的月份
持仓量次主力月:csortArr[2];//第二的月份



END


























































补充内容 (2023-9-6 10:00):
这样目前盘中测试是对的 你再检查一下 简化一下看看有没有哪里错了····
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 10:46 | 显示全部楼层
if BARPOS=1 then
begin
for i=1 to 12 do //默认按照该品种有12个月份的合约。
begin
codeArr:= STRCAT(str,STRRIGHT(NUMTOSTR(i/100,2),2));        
end
end
  不明白你这样改是为了啥。。。   它是个数组, 你去掉下标就无意义了,然后改完出了问题还需要我们来帮你找。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-9-6 10:54 | 显示全部楼层
技术009 发表于 2023-9-6 10:46
if BARPOS=1 then
begin
for i=1 to 12 do //默认按照该品种有12个月份的合约。

你可以把你刚贴的代码删除掉 然后把对应的ccodeArr 改成codeArr  然后再测试 结果完全不一样了  ····我是发现不对  然后把所有的都改过去····然后今天盘中才发现是对的了· 昨天盘后这样改了还是错的
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-9-6 11:03 | 显示全部楼层
本帖最后由 技术009 于 2023-9-6 11:04 编辑

范例代码没问题,无论是排序成交额还是成交量。你自己本地的数据只要你维护好(日线),这个代码结果是不可能出错的。

这个问题后续不再追踪了,如果还有问题只能是你本地使用的问题,如代码改错了,日线数据不足等其他低级错误,建议自行排查下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

507

主题

2975

帖子

2985

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2023-9-6 13:29 | 显示全部楼层
技术009 发表于 2023-9-6 11:03
范例代码没问题,无论是排序成交额还是成交量。你自己本地的数据只要你维护好(日线),这个代码结果是不 ...

上面的源码 计算下面的代码 会导致错误  鼠标都是在最后一个K取值。怎么回事我也不知道··日线数据一样···只增加了下面的代码··能解释就解释,解释不了就算了吧 ,品种 截图都有·不知道什么情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-30 06:10 , Processed in 0.136070 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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