以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]程序调用问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=87059) |
-- 作者:听涛 -- 发布时间:2015/11/7 10:46:58 -- [求助]程序调用问题 看了很久以前的帖子和函数说明 搞不清有疑问 请老师以实例解释一下 # 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的情况 就不要了 两个变量估计能够让我举一反三了 |
-- 作者: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
|
-- 作者:听涛 -- 发布时间:2015/11/9 9:37:32 -- 以下是引用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进行条件处理 请您帮我编译成金字塔的 |
-- 作者:听涛 -- 发布时间:2015/11/9 9:40:29 -- jinzhe老师 请您帮我写一个完整的例子 仔细理解 看说明书要是都能看懂那就不需要老师对吧 这个跟懒不懒没关系的 就是需要一个相对完整的程序 然后才能体会语法和语境
|
-- 作者:jinzhe -- 发布时间:2015/11/9 9:59:51 -- 就如同我上面所说的, 现在原来的代码里面添加C1-C4这4句话
然后要调用就重新建一个指标 写下面的代码: 条件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编辑过]
|
-- 作者:听涛 -- 发布时间:2015/11/9 10:16:48 -- 以下是引用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);//实现过滤条件 我理解是因为执行效率问题吗?还是其他的原因请老师解释一下 |
-- 作者:jinzhe -- 发布时间:2015/11/9 10:22:26 -- 第二种只适用于引用当前周期的数据,第一种可以任意周期 |
-- 作者:听涛 -- 发布时间:2015/11/9 10:31:48 -- 哦 如果文华的这种条件应该怎么实现呢? #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老师用程序解释一下 如果周期太多请您简化 |
-- 作者:jinzhe -- 发布时间:2015/11/9 10:49:28 -- 当前周期diff:stkindi(\'\',\'macd.diff\',0,datatype); 5分钟:stkindi(\'\',\'macd.diff\',0,2); 其他周期请按照函数说明自行修改周期参数 |