金字塔决策交易系统

标题: 请教后台板块联动问题设置 [打印本页]

作者: 103886    时间: 2024-4-1 02:06
标题: 请教后台板块联动问题设置
我后台监控了8个个股,
例如个股万科a,满足了我后台程序化量比>3的条件,准备触发买入。
在此之前,我还想判别一下

1.万科a所属的地产板块,上涨>1%个股有多少个,总数是多少个,求上涨>1%的个股数占所属地产板块的比例是多少?
假设地产板块有20只股票,上涨>1%个股有10个,求上涨>1%的比例是50%。

2.2市5400只个股,今天当下最新成交额最大的50只个股里面,有多少个属于地产板块?
有2只,2/50=4%,那就设定满足>3%

后台程序化,条件设定,要求在原有基础上再满足上述2个条件
有劳赐教设置,谢谢。


作者: 资深技术05    时间: 2024-4-1 09:04
本帖最后由 资深技术05 于 2024-4-1 09:07 编辑

第一个问题:

[PEL] 复制代码
input:x(1,0.01,100,0.01);//单位是%

if  islastbar then
begin
所属行业:=hyblock;
explain(1,所属行业);//后台里运行时候,请注释掉这行代码
行业品种数量:stkcount(所属行业);//所属行业对应的板块品种数量


up_count:=0;//满足指定涨幅品种数量
for i=1 to 行业品种数量 do
begin
code:=stkfromblk(所属行业,i);//品种代码
d1:=callstock(code,vtclose,6,-1);//昨收盘价
c0:=callstock(code,vtclose,-1,0);//最新价

//利用日期过滤当前日期下没有行情的品种,需最新7.0版才能使用这个函数
//如果是其他版本则不能直接调用到指定品种的最新日期,就只能跨指标调用了
date_:=callstock(code,vtdate,6,0);
if valid(d1)=0 or valid(c0)=0 or date>date_ then continue;
zdf:=100*(c0-d1)/d1;

if zdf>=x then up_count:=up_count+1;
               
end
end

上涨总数:up_count;



[attach]22976[/attach]

[attach]22977[/attach]


但是我需要提醒你,如果你的品种很多,那么在每个品种上都进行这样的循环操作,是很可能会直接卡死掉的。并且这个问题可能是没有好的解决方案的.



作者: 资深技术05    时间: 2024-4-1 09:41
第二个问题,最好是用股票池先按照成交额筛选出来50个品种,放到一个板块里。
股票池:https://www.weistock.com/docs/HE ... A5%A8%E6%B1%A0.html


然后在这个包含50个品种里做遍历,判断他们所属的分类。

[PEL] 复制代码
所属行业:=hyblock;

hy_count:=0;
//某股票池筛选出来的板块
股票池品种数量:stkcount('自选股');//股票池筛选出来的品种所在的板块  
for i=1 to  股票池品种数量 do
begin
code:=stkfromblk('自选股',i);//品种代码       
行业:=fincomswhy2014(code,'industryname2');

if 所属行业=行业 then  hy_count:=hy_count+1;
end


前50的某行业品种个数:hy_count;



[attach]22981[/attach]

[attach]22982[/attach]

基本框架就在这里了,股票池相关设置,你可以自行操作下了。
作者: 103886    时间: 2024-4-1 12:38
我的电脑没有这么强大的算力,如果我只叠加一项:个股所属板块涨幅
例如
条件1,个股涨速大于3,
条件2,个股所属板块涨幅>1.4456%

后台监控个股30只,同时满足条件1和2,下单10万元。应该如何编写?
请指教,谢谢
作者: 资深技术05    时间: 2024-4-1 13:29
本帖最后由 资深技术05 于 2024-4-1 13:40 编辑

“个股所属板块涨幅” 这个我们没有的现成的板块指数的,只能自建板块指数,但是你这个品种是动态的,又不太适合这样做。



[PEL] 复制代码
涨速:100*dynainfo(24);//工具-选项-常规-涨速比较时间   这里设置涨速具体比较的时间区间,默认是300秒

input:zj(10000,1,1000000,1);

ss1:intpart(zj/(100*c));//根据资金zj计算的开仓手数
//ss1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。
//因此再次处理下,当ss1为0情况下默认按下一手处理。或者你也可以直接判断下ss1为0时候直接不下单也行
ss:if(ss1>0,ss1,100);//最小100

kd:tbuyholdingex('','',2)=0 and 涨速>=3;

tbuy(kd,ss,mkt);




"我的电脑没有这么强大的算力" 这个其实你可以实际测试下,因为很多客户是全市场全品种选股,所以这种情况下肯定会很卡。但是如果只是一二十个品种,应该没什么大问题。

作者: 103886    时间: 2024-4-1 14:21
资深技术05 发表于 2024-4-1 13:29
“个股所属板块涨幅” 这个我们没有的现成的板块指数的,只能自建板块指数,但是你这个品种是动态的,又不 ...

现在后台大概监控400只股票,要求每秒轮询,请教自建板块如何设置的指引。一共分为76个板块,76个二级板块如何编辑其指数?
作者: 资深技术05    时间: 2024-4-1 14:47
[attach]22997[/attach]


参考文档:https://www.weistock.com/docs/HE ... 8C%87%E6%95%B0.html


但是这个方式比较麻烦的,不太好把行业板块 和这个板块指数关联上。就是给你一个行业分类,没法子自动把这个板块指数对应过来 然后读取.
作者: 103886    时间: 2024-12-31 15:42
资深技术05 发表于 2024-4-1 13:29
“个股所属板块涨幅” 这个我们没有的现成的板块指数的,只能自建板块指数,但是你这个品种是动态的,又不 ...

我是用了7.02金字塔新版本,现在新版本有了股票板块所属的2级分类,能比较简单的实现这个情况吗?
作者: 103886    时间: 2024-12-31 15:47
我的电脑没有这么强大的算力,如果我只叠加一项:个股所属板块涨幅
例如
条件1,个股涨速大于3,
条件2,个股所属板块涨幅>1.4456%
条件3:个股所属板块,成交额是所有板块里面排序的TOP15

后台监控个股30只,同时满足条件1和条件2和条件3,下单10万元。应该如何编写?
请指教,谢谢
作者: 资深技术05    时间: 2024-12-31 15:58
“我是用了7.02金字塔新版本,现在新版本有了股票板块所属的2级分类,能比较简单的实现这个情况吗?”

目前还是只能获取所属行业分类。
作者: 103886    时间: 2025-1-2 08:40
资深技术05 发表于 2024-12-31 15:58
“我是用了7.02金字塔新版本,现在新版本有了股票板块所属的2级分类,能比较简单的实现这个情况吗?”

...

如果就使用行业板块呢,请教应该如何编写?谢谢
作者: 资深技术05    时间: 2025-1-2 09:03
参考5楼,当时就已经回复过了。

1.行业指数,你只能自行创建。软件有自定义指数的功能,7楼也贴了链接的。
2.涨速代码 5楼已经提供了。
3.“个股所属板块,成交额是所有板块里面排序的TOP15” 这个首先要完成所有行业指数的构建,但是这个有点多...全部都需要手工建立。

作者: 103886    时间: 2025-1-13 13:47
资深技术05 发表于 2025-1-2 09:03
参考5楼,当时就已经回复过了。

1.行业指数,你只能自行创建。软件有自定义指数的功能,7楼也贴了链接的 ...

谢谢我再试试操作不懂请教您
作者: 103886    时间: 2025-1-13 13:53
[attach]31106[/attach]


这里有现成的行业板块,沿用读取他们的涨速可以?
作者: 资深技术05    时间: 2025-1-14 08:58
不能。 只是有分类,必须有对应的指数才能获取其涨速之类的数据。




欢迎光临 金字塔决策交易系统 (https://www.weistock.com/bbs/) Powered by Discuz! X3.4