以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何把fc的值赋值到数组Buffer[]中,并可以被引用  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=154862)

--  作者:代人发贴
--  发布时间:2017/6/8 10:53:32
--  如何把fc的值赋值到数组Buffer[]中,并可以被引用
 runmode:0;

Value1:=0;


Fish1:=0;

   
PPeriod:=10;

VARIABLE:MMax[]=0;

VARIABLE:MMin[]=0;

AA:=HHV(HIGH,PPeriod);
MMax:=AA;            
MMAAXX:MMax[DATACOUNT],NODRAW;    
                       
AAA:=LLV(LOW,PPeriod);
MMin:=AAA;
MMIILL:MMin[DATACOUNT],NODRAW; 


MM:=DATACOUNT;
VARIABLE:Buffer[MM]=0.0;//被赋值的数组 

 


   For i=DATACOUNT downto 1 DO //DATACOUNT
   BEGIN

     PRICE:(HIGH[i]+LOW[i])/2,NODRAW;
    
     Value:2.0*(PRICE/(MMax[i]-MMin[i])-0.3),NODRAW;     
   
     fc:=0.5*Value+0.7*Value1,NODRAW;
    
     FFCC:fc,NODRAW;
     Value1=Value,NODRAW;
     
//////////////////////////////////////??如何把fc的值赋值到数组Buffer[]中,并可以被引用??///////////////////////////////////
     //Buffer:=fc,NODRAW;   
     Buffer[i]:=fc,NODRAW;
//////////////////////////////////////??如何把fc的值赋值到数组Buffer[]中,并可以被引用??///////////////////////////////////    

    END
  
 



这个公式能够帮忙编译下



//////////////////////////////////////??如何把fc的值赋值到数组Buffer[]中,并可以被引用??///////////////////////////////////
     //Buffer:=fc,NODRAW;  
     Buffer[i]:=fc,NODRAW;
//////////////////////////////////////??如何把fc的值赋值到数组Buffer[]中,并可以被引用??///////////////////////////////////   
上面公式中,此部分数组赋值正确吗?如何像MACD指标一样,把计算结果fc在副图窗口通过绘图表示出来?能把上面的公式编译后,补充完整吗?
不胜感激额。 

--  作者:pyd
--  发布时间:2017/6/8 11:04:30
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=154840

前边发过同样的帖子已回过了

[此贴子已经被作者于2017/6/8 13:10:59编辑过]

--  作者:shangxianglu
--  发布时间:2017/6/8 13:16:46
--  

不太好处理吧?有什么建议或者思路吗?


--  作者:shangxianglu
--  发布时间:2017/6/8 13:35:35
--  
非常抱歉,不知您能否修改下代码,编译下。看看。 我这边改了多次,编译不过哦。
--  作者:shangxianglu
--  发布时间:2017/6/8 13:44:42
--  
如果您能编译通过,希望能告之具体修改方法。
--  作者:wenarm
--  发布时间:2017/6/8 13:58:44
--  

编译正常,。你编译过程中遇到了什么提示?截图看下


--  作者:yukizzc
--  发布时间:2017/6/8 14:33:06
--  

或者您说下思路目的,很多时候是根本没有必要去使用数组的

k线本事就是序列数组形式存在,每根k线的返回值其实就是一个数值并不是数组的

引用等也都是单值引用


--  作者:shangxianglu
--  发布时间:2017/6/8 15:01:39
--  

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
  


--  作者:shangxianglu
--  发布时间:2017/6/8 15:05:57
--  

请具体思路参考注释,

大体意思就是:从右侧最新一根K线开始,从右向左依次计算。左侧的每一根K线都要引用其右侧一根K线的value值,通过value1=value;实现引用右侧value值。

 


--  作者:yukizzc
--  发布时间:2017/6/8 15:26:52
--  
这种有设计未来概念了,不好做