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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]程序调用问题

   

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


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

主题:[求助]程序调用问题

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


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/11/6 11:28:09
[求助]程序调用问题  发帖心情 Post By:2015/11/7 10:46:58    Post IP:114.244.7.133[显示全部帖子]

看了很久以前的帖子和函数说明 搞不清有疑问 请老师以实例解释一下

#
STKINDI
STKINDIEX
上述3者的区别

请老师用macd指标的跨周期调用解释一下

macd函数有3个值 diff dea 和macd值

我自定义交易周期为8min 在此周期中的macd对应值与下列夸周期值进行比较

3min 5min 10min(因为cyc要使用自定义分钟)15min

设      8min周期的变量为 diff dea 和 macd
         3min周期的变量为 diff3 dea3 和macd3
         5min周期的变量为 diff5 dea5 和macd5
         10min周期的变量为 diff10 dea10 和macd10
         15min周期的变量为 diff15 dea15 和macd15

   我希望能在程序中 随时调用这些值 
例如 every(macd3>ref(macd3,1),5);//3min周期macd值连续5周期上涨
       diff5>0 & diff5>=hhv(diff5,5);//5min周期diff值在0轴之上,且是5周期最大
       macd10>0;//10min周期处于涨势
       diff15>0 & macd15>0 & macd15<10;// 15min周期 diff在0轴上且macd在0-10之间

请您结合实例帮我解释一下 谢谢 
例子中没有设计dea的情况 就不要了 两个变量估计能够让我举一反三了


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


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/11/6 11:28:09
  发帖心情 Post By:2015/11/9 9:37:32    Post IP:114.244.12.74[显示全部帖子]

以下是引用jinzhe在2015/11/9 8:57:08的发言:

在系统系统自带的MACD代码最后面加上下面的这4句话

c1:every(macd1>ref(macd1,1),5);//3min周期macd值连续5周期上涨

c2:diff>0 & diff>=hhv(diff,5);//5min周期diff值在0轴之上,且是5周期最大
c3:macd1>0;//10min周期处于涨势
c4:diff>0 & macd1>0 & macd1<10;// 15min周期 diff在0轴上且macd在0-10之间
 
用户先自己尝试一下,用stkindi引用 3分钟周期上C1,5分钟周期上的C2,10分钟周期上的C3,15分钟周期上的C4

不明白 
这几个条件都是随机假设的 如果直接在系统macd上修改 条件变量C1-C4怎么用?

在文华上是用
#import 【周期,被调用指标名字】as 新变量名;
在新的程序下,调用不同周期不同指标的参数 直接赋值即可
以下是文华的
#IMPORT[MIN,10,MACD] AS VAR1
DIFF10:VAR1.DIFF;
D10:VAR1.DEA;
M10:VAR1.MACD;
上述程序中我可以随时使用diff10 d10 m10进行条件处理
请您帮我编译成金字塔的 




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


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/11/6 11:28:09
  发帖心情 Post By:2015/11/9 9:40:29    Post IP:114.244.12.74[显示全部帖子]

jinzhe老师 请您帮我写一个完整的例子 仔细理解 看说明书要是都能看懂那就不需要老师对吧

这个跟懒不懒没关系的 就是需要一个相对完整的程序 然后才能体会语法和语境

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


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/11/6 11:28:09
  发帖心情 Post By:2015/11/9 10:16:48    Post IP:114.244.12.74[显示全部帖子]

以下是引用jinzhe在2015/11/9 9:59:51的发言:


然后要调用就重新建一个指标

写下面的代码:

条件1:stkindi('','macd.c1',0,17);

条件2:stkindi('','macd.c2',0,2);

条件3:stkindi('','macd.c3',0,18);

条件4:stkindi('','macd.c4',0,3);

[此贴子已经被作者于2015/11/9 10:00:04编辑过]
这样我就明白了。原来是把比较或者过滤条件列入原来指标,然后直接调用。
但是是问题就来了,为什么呢?

具体设计一下环境:
MACD指标 有三个变量DIFF DEA & MACD
新程序XXX要调用MACD中的三个变量实现过滤条件

这个过滤或者比较条件的位置,放在原始指标里和放在新指标里实现后结果是一样的
例如  c1:every(macd1>ref(macd1,1),5);//3min周期macd值连续5周期上涨
第一种情况 
把C1条件写入MACD指标
XXX中以stkindi('','macd.c1',0,17);调用
第二种情况
XXX中以xxx1:stkindi('','macd.macd',0,17);调用macd值
c1:every(xxx1>ref(xxx1,1),5);//实现过滤条件

我理解是因为执行效率问题吗?还是其他的原因请老师解释一下






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


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2015/11/6 11:28:09
  发帖心情 Post By:2015/11/9 10:31:48    Post IP:114.244.12.74[显示全部帖子]

哦 如果文华的这种条件应该怎么实现呢?
#IMPORT[MIN,5,MACD] AS VAR1 //调用指标名称为MACD的指标 周期为5分钟
DIFF5:VAR1.DIFF;
D5:VAR1.DEA;
M5:VAR1.MACD;

#IMPORT[MIN,10,MACD] AS VAR1 //调用指标名称为MACD的指标 周期为10分钟
DIFF10:VAR1.DIFF;
D10:VAR1.DEA;
M10:VAR1.MACD;

#IMPORT[MIN,15,MACD] AS VAR1 //调用指标名称为MACD的指标 周期为15分钟
DIFF15:VAR1.DIFF;
D15:VAR1.DEA;
M15:VAR1.MACD;


当前周期是3分钟K线
一共4个不同周期的调用

新程序中 DIFF(当前周期) DIFF5(5分钟周期) DIFF10(10分钟周期) DIFF15(15分钟周期)
过滤条件cond1:DIFF>DIFF5 & DIFF5>DIFF10 & DIFF10>DIFF15;

请jinzhe老师用程序解释一下 如果周期太多请您简化

 回到顶部