代码编写的问题,请老师指点 [MC]
-
MC用户求助:
还请老师指定一下,问题一大串一大串的来.
在文华中,我使用以下代码来提取 MACD指标中 当天红柱堆 的最高值 和 前一个红柱堆 中的最高值
==========
//MACD
DIF := EMA(CLOSE,12) - EMA(CLOSE,26);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA := EMA(DIF,9);//DIFF的M个周期指数平滑移动平均
MACDSX:=2*(DIF-DEA);//DIFF减DEA的2倍画柱状线
//价格
本HG:=HHV(H,BARSLAST(CROSS(MACDSX,0))+1),NODRAW;//本红柱堆
1HG:=REF(HHV(H,BARSLAST(CROSS(MACDSX,0))+1),BARSLAST(CROSS(0,MACDSX))+1),COLORRED,NODRAW;//前红柱堆
2HG:=REF(REF(HHV(H,BARSLAST(CROSS(MACDSX,0))+1),BARSLAST(CROSS(0,MACDSX))+1),BARSLAST(CROSS(0,MACDSX))+1)
=====我在MC中想写一个函数,到是能够直接调用
Input:
NUM(numericsimple );//输入第一个可以以此调用
variables:
DIF( 0 ),
DEA( 0 ),
MACDSX( 0 ),
BHG(0), HG1(0), HG2(0),HG3(0),
//MACD ZHIBIAO
DIF =MACD( Close, 12, 26 ) ;
DEA = XAverage(DIF,9);
MACDSX = (DIF-DEA)*2;
//HG-MACD
BHG=NthHighest(1,H,mro( MACDSX CROSS UNDER 0,1000,1));
VAR0=mro( MACDSX CROSS UNDER 0,1000,1);
HG1=BHG[VAR0];
=====
但出现错误
References to previous values are not allowed in simple functions.
错误行 0, 错误列 0
以前的值的引用是不允许在简单的功能
==
调用一个数值之前的值 不是使用[]的吗? []不是想相当于文华的REF吗?
查看论坛中之前的案例 使用AGO以后 还是不行
BHG=NthHighest(1,H,mro( MACDSX CROSS UNDER 0,1000,1));
VAR0=mro( MACDSX CROSS UNDER 0,1000,1);
HG1=NthHighest(1,H,mro( MACDSX CROSS UNDER 0,1000,1))of VAR0 bar ago;
-
MC回复讨论一:
看一下这个帖子:“时序类型函数、数值类型函数、自动类型函数”
您可以在公式编译器的属性中将函数存储的类型更改成“自动”或者“数列”,具体原因看上面的帖子
您的代码中出现了语句“HG1=BHG[VAR0];”,而这个在数值类型函数中是不允许的
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容