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,我想把数组都填满,应该怎么办?
就是先定位到最后一根K线,就是距离今天最近的一根,EndofBar= Barstatus=2;
然后从它开始,向它之前的数组填数据,一共填够N那么长。
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],在一步步往前推