以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]逐k线模式数据读不进来  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=69915)

--  作者:optimus
--  发布时间:2014/9/12 14:07:14
--  [求助]逐k线模式数据读不进来

variable: FilC_Array[200] = 0,DXPlusArray[200]=0;

EndOfBar := BarStatus = 2; 

if EndOfBar then
begin
Filc := Log( CLOSE ) ;
for N = 200 downto 2 do
begin
FilC_Array[N] := FilC_Array[N-1] ;
DXPlusArray[N] := DXPlusArray[N-1] ;
end ;
FilC_Array[1] := FilC ;

if BarPOS > 1 then  
begin
DXPlusArray[1] := Max(FilC - FilC[2], 0) ;
end
else
begin
if C[2] > 0 then
begin
     DXPlusArray[1] := Max( FilC - Log( C[2] ), 0 ) ;
end ;
end ;
end ;

用调试发现只能读到最后一根K线,其他都是0,我想把数组都填满,应该怎么办?

--  作者:jinzhe
--  发布时间:2014/9/12 14:26:22
--  
看不懂你思路,你想要怎么样的赋值给两个数组?
--  作者:optimus
--  发布时间:2014/9/12 14:36:19
--  回复:(jinzhe)看不懂你思路,你想要怎么样的赋值给...
就是先定位到最后一根K线,就是距离今天最近的一根,EndofBar= Barstatus=2;

然后从它开始,向它之前的数组填数据,一共填够N那么长。

--  作者:jinzhe
--  发布时间:2014/9/12 14:54:06
--  

variable: FilC_Array[200] = 0,DXPlusArray[200]=0;

 


if barpos>1 then
begin
   Filc := Log( CLOSE ) ; 
   FilC_Array[200] := FilC ;  
   for N = 200 downto 2 do
   begin
   FilC_Array[N-1] := FilC_Array[N] ;
   end ;  
end ;

 

你的逻辑和金字塔的数组方式是相反的,不是你定义了[1]然后就能一步步的往后推,你要想从最后开始赋值,那么就先定义[200],在一步步往前推


--  作者:optimus
--  发布时间:2014/9/12 15:22:33
--  回复:(jinzhe)variable: FilC_Array[200] = 0,DXPl...
哦,明白了,谢谢。