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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何获取自定义任意周期的判别?

   

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


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

主题:如何获取自定义任意周期的判别?

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


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2019/12/31 10:05:53
如何获取自定义任意周期的判别?  发帖心情 Post By:2020/1/7 0:12:22    Post IP:119.50.41.47[只看该作者]

例如,我需要40秒周期运行,如何判断当前就是40秒周期?

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


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

这种方式不保证完全正确。请酌情使用

##枚举周期参数
    IF DATATYPE=0 THEN 分笔:1;
    IF DATATYPE=1 THEN 1分钟:1;
    IF DATATYPE=2 THEN 5分钟:5;
    IF DATATYPE=3 THEN 15分钟:15;
    IF DATATYPE=4 THEN 30分钟:30;
    IF DATATYPE=5 THEN 60分钟:60;
    IF DATATYPE=6 THEN 日:1;
    IF DATATYPE=7 then 周:1;
    IF DATATYPE=8 then 月:1;
    IF DATATYPE=9 THEN 年:1;
    IF DATATYPE=12 THEN 季度:1;
    IF DATATYPE=15 THEN 半年:1;
    IF DATATYPE=16 then 节气:1;
    IF DATATYPE=17 THEN 3分钟:3;
    IF DATATYPE=18 THEN 10分钟:10;
    IF DATATYPE=10 THEN N日:DATATYPEMORE(0);
    IF DATATYPE=11 THEN N小时:DATATYPEMORE(1);
    IF DATATYPE=13 THEN N分钟:DATATYPEMORE(2);
    IF DATATYPE=14 THEN N秒:DATATYPEMORE(3);
    IF DATATYPE=19 THEN N笔:DATATYPEMORE(4);



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


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2019/12/31 10:05:53
  发帖心情 Post By:2020/1/7 9:26:50    Post IP:119.50.41.47[只看该作者]

好的谢谢。

那么有无方法可以固定指标的不同参数于各个不同周期?

例如:

kdj 1分钟 周期设置为12
kdj 20秒参数设置为 24

1分钟,20秒并不局限于周期设置里的“多分”,“多秒”等固定周期。

希望可以代码判别。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/7 9:33:39    Post IP:180.169.30.6[只看该作者]

只能用前面的方式先判断周期,判断完之后给指标参数赋值。但是这个参数不能用INPUT定义,只能自行定义成普通变量。
大概类似这样:

if  DATATYPE=1 then  N:=12;//如果当前是1分钟。N重新赋值为1. 其中N是KDJ的某个参数
.
.
.
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:3*K-2*D,NODRAW;



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


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2019/12/31 10:05:53
  发帖心情 Post By:2020/1/7 16:03:16    Post IP:119.50.41.47[只看该作者]

其实我想问,只能判定周期设置中设定好的多秒,多分等等的周期,无法支持多种类似’20秒,40秒,3秒‘等周期的判定是吗?

if 周期为 30秒 then a=XXX 这种
if 周期为 40秒 then a=XXX 这种


我在通达信的方法是:

设定任意周期,如 20秒,50秒两种,然后系统就会有这20秒和50秒的period值,然后

if(period=19(比如20秒周期的值是19),1,0);





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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/7 16:12:51    Post IP:180.169.30.6[只看该作者]

也能做到的,有一个函数可以读取当前的多秒/分/时。
DATATYPEMORE 函数就可以的。

但是这个也要先判断是多秒/多分/多时 然后再去读取。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/7 16:15:16    Post IP:180.169.30.6[只看该作者]

if  DATATYPE=13 and DATATYPEMORE(2)=20 then  N:=12;//如果当前是多分钟 且是20分钟。N重新赋值为1. 其中N是KDJ的某个参数
.
.
.
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:3*K-2*D,NODRAW;


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


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2019/12/31 10:05:53
  发帖心情 Post By:2020/1/7 16:17:56    Post IP:119.50.41.47[只看该作者]

哈哈哈,谢谢!

原来是这样用的!


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/1/7 16:21:24    Post IP:180.169.30.6[只看该作者]

 需要注意的是DATATYPEMORE函数是只能读取多秒 多分钟 这种自定义周期数的。你可以输出下它的返回值测试下。


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


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2019/12/31 10:05:53
  发帖心情 Post By:2020/1/7 21:03:26    Post IP:119.50.41.47[只看该作者]


以下代码完美判别,R为参数输入。

if DATATYPE=14 and DATATYPEMORE(3)=r then BEGIN
echo:r,NODRAW,coloryellow;
end

 回到顶部
总数 13 1 2 下一页