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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 怎样用程序表述:股票dm符合XG条件。

   

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


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

主题:怎样用程序表述:股票dm符合XG条件。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/29 14:22:37    Post IP:180.169.30.6[显示全部帖子]

 代码里面无需其他操作了。
你用条件选股的时候

指标公式如下:

CROSS(MA(C,10),(ma(c,20))


会默认将这个作为选股条件。
你可以参考

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

这里指标都是这种写法。




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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/30 13:32:33    Post IP:180.169.30.6[显示全部帖子]

 如果你监控的包含品种dm ,那么XG的计算就会包含对dm这个品种的判断,计算结果也就是表述了这个股票是否满足条件XG。

你只要拿你的公式去计算你要判断的品种就能进行判断这个股票是否满足你设置的条件。不清楚你到底要的是什么形式的结果?  或者说你是要在任意品种下都可以判断 品种dm是否满足xg条件?


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/30 16:03:41    Post IP:180.169.30.6[显示全部帖子]

 指标A:

XG:CROSS(MA(C,10),ma(c,20));


当前运行指标:
ss:=STKCOUNT( '测试');
VARIABLE:result[ss]:='';//定义一个数组,并设置默认值是空字符串,数组长度按照版块品种数算

if ISLASTBAR //出于效率考虑,最后一个K进行计算。否则计算量有点大
then
begin
for  k=1  to  ss  do
begin
dm:=STKFROMBLK('测试',k);
XG:=STKINDI(dm,'A.XG',0,6,0);//指定周期,品种。这里取日线,其他周期可参照函数说明去修改
if xg then begin result[k]:=dm;MSGOUT(1,dm); end //这里加了个输出,方便看到那个品种满足了
end
end



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


指标A是单独建立的一个指标,用来被引用的。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/30 16:07:04    Post IP:180.169.30.6[显示全部帖子]

测试了下,效果还可以。只是最终结果的那个数组不仅仅有保存的品种代码,也有原先默认值的空字符串,因为目前数组定义的时候必须指定长度,无法动态扩充。因此你使用的时候需要注意。亦或者你在循环里面做一个计数器,统计满足条件的品种有多少,这样后面使用哪个数组的时候也方便点。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/31 13:23:06    Post IP:180.169.30.6[显示全部帖子]

 最终结果存在数组里,你要可视化,你自己按照自己想法输出下啊。

比如写个循环,然后msgout出来也可以啊。

另外如果是计算结果没有的话,可能是你本地数据不足,你那个涉及到了跨周期引用。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/31 14:01:11    Post IP:180.169.30.6[显示全部帖子]

 这不是我输出看到了,是代码逻辑决定的。比如版块有20个品种,实际10个满足条件。但是我定义数组的时候我不知道有多少满足的,因此稳妥起见只能定义数组长度是20。  后面代码执行过程中数组前10个元素都被赋值了,也就是满足条件品种的代码,后10个就只能是默认值:空字符串了。 所以我才那样说的。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/31 14:57:35    Post IP:180.169.30.6[显示全部帖子]

 那个是引用函数需要注意的地方,但是我代码已经处理过。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/31 15:50:13    Post IP:180.169.30.6[显示全部帖子]

 XG现在是针对指定品种进行的计算了,dm是品种代码。对每个品种单独计算,那么就可以做到筛选版块中符合XG的股票了。 而上面的那段代码已经符合了。  如果满足xg,那么加入到数组中去。这就是我给你的测试样例的逻辑思路。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/31 15:59:28    Post IP:180.169.30.6[显示全部帖子]

 做一些小的修改完善

ss:=STKCOUNT( '测试');
VARIABLE:result[ss]:='';//定义一个数组,并设置默认值是空字符串,数组长度按照版块品种数算
INITBOUND(result,'');//防止上次运行的结果的干扰,因此对数组做一次初始化

//另外略做修改,加了个变量i,作为符合条件的品种的计数器

i:=0;
if ISLASTBAR //出于效率考虑,最后一个K进行计算。否则计算量有点大
then
begin
for  k=1  to  ss  do
begin
dm:=STKFROMBLK('测试',k);
XG:=STKINDI(dm,'A.XG',0,6,0);//指定周期,品种。这里取日线,其他周期可参照函数说明去修改
if xg then begin i:=i+1; result[i]:=dm;MSGOUT(1,dm); end //这里加了个输出,方便看到那个品种满足了
end
end
[此贴子已经被作者于2018/5/31 15:59:46编辑过]


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/6/1 14:22:54    Post IP:180.169.30.6[显示全部帖子]

 贴下你的代码。我看下。


命数如织,当如磐石。
 回到顶部
总数 12 1 2 下一页