http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=154840
前边发过同样的帖子已回过了
不太好处理吧?有什么建议或者思路吗?
编译正常,。你编译过程中遇到了什么提示?截图看下
或者您说下思路目的,很多时候是根本没有必要去使用数组的
k线本事就是序列数组形式存在,每根k线的返回值其实就是一个数值并不是数组的
引用等也都是单值引用
runmode:0;
Value1:=0;
Fish1:=0;
PPeriod:=10;
VARIABLE:MMax[]=0;
VARIABLE:MMin[]=0;
AA:=HHV(HIGH,PPeriod); //取当前K线及过去10个周期的最高值;赋值给数组MMax;
MMax:=AA;
//MMAAXX:MMax[DATACOUNT],NODRAW;
AAA:=LLV(LOW,PPeriod);
MMin:=AAA;
//MMIILL:MMin[DATACOUNT],NODRAW; ////取当前K线及过去10个周期的最低值;赋值给数组MMin;
MM:=DATACOUNT;
VARIABLE:Buffer[MM]=0.0;//被赋值的数组,存储计算结果,然后最后用划线函数,把Buffer在副图窗口绘制出来。
For i=DATACOUNT downto 1 DO //DATACOUNT//从右向左,从最新K线向左计算,计算每根K线对应的BUFFER[]值;
BEGIN
PRICE:(HIGH[i]+LOW[i])/2,NODRAW; //计算当前i根K线的最高值和最低值的平均值;
Value:2.0*(PRICE/(MMax[i]-MMin[i])-0.3),NODRAW; //逻辑运算公式
fc:=0.5*Value+0.7*Value1,NODRAW; //逻辑运算公式
Value1=Value,NODRAW; //最新一根K线value赋值为0;然后左侧每根K线都引用其右边一根K线的value值。依次从右向左引用。
//////////////////////////////////////??如何把fc的值赋值到数组Buffer[]中,并可以被引用??///////////////////////////////////
//Buffer:=fc,NODRAW;
Buffer[i]:=fc,NODRAW;
//////////////////////////////////////??如何把fc的值赋值到数组Buffer[]中,并可以被引用??///////////////////////////////////
DrawBuffer: fc,COLORSTICK; //绘制输出结果
//
END
请具体思路参考注释,
大体意思就是:从右侧最新一根K线开始,从右向左依次计算。左侧的每一根K线都要引用其右侧一根K线的value值,通过value1=value;实现引用右侧value值。