amIndex); (curGistogramValue <0.00000000001) and (curGistogramValue> - 0.000000000001) then:=curGistogramIndex;; (gistogram [curGistogramIndex]);;
end;
/ / побудова функції розподілу [0]:=gistogram [0];
for i:=1 to curGistogramIndex do [i]:=raspredelenieFunc [i - 1] + gistogram [i]; i:=0 to curGistogramIndex do [i]:=raspredelenieFunc [i] / nRow;:=0 ; i:=iZero +1 to curGistogramIndex do:=sumPositive + power (1-raspredelenieFunc [i], kpower);:=0; i:=0 to iZero do:=sumNegative + power (raspredelenieFunc [i], spower) ; (sumNegative + sumPositive) < lminNumber then:=sumNegative + sumPositive;
/ / запам'ятовуємо портфельi:=0 to 4 do [i]:=portfel [i];;;. Items.Add («портфель (» + FloatToStrF (bestportfel [0], ffGeneral, 2,2) + «;» + (bestportfel [1], ffGeneral, 2,2) + «;» + FloatToStrF (bestportfel [2], ffGeneral, 2,2) + «;» + (bestportfel [3 ], ffGeneral, 2,2) + «;» + FloatToStrF (bestportfel [4], ffGeneral, 2,2) + «)»);. Items.Add («Мінімальне значення» + FloatToStrF ( lminNumber, ffGeneral, 4,5));. Items.Add («k =» + FloatToStrF (kpower, ffGeneral, 1,2) + «, s =» + FloatToStrF (spower, ffGeneral, 1, 2 ));. Items.Add («»);:=spower +0.2;
end;:=kpower +0.2;;
{
/ / виконується другий етап
for k1:=0 to step dok2:=0 to step-k1 dok3:=0 to step-k1-k2 dok4:=0 to step-k1-k2-k3 do
begin
/ / скидаємо значення гістограми і функції розподілу
for i:=0 to nRow - 1 do [i]:=0; [i]:=0.0;;:=step-k1-k2-k3-k4; [0]:=k1 * 1.0/step ; [1]:=k2 * 1.0/step; [2]:=k3 * 1.0/step; [3]:=k4 * 1.0/step; [4]: ??= k5 * 1.0/step;
/ / portfel [0]:=0.15;
/ / portfel [1]:=0.2;
/ / portfel [2]:=0.3;
/ / portfel [3]:=0.2;
/ / portfel [4]: ??= 0.15;
/ / обчислюємо частку акцій в залежності від пакету
/ / 2 етап і обчислення масиву Pi:=0 to nRow - 1 do [i]:=0; j:=0 to nCol - 1 do [i, j]:=addTable [i, j] * portfel [j]; [i]:=P [i] + dinTable [i, j];;;
/ / обчислення масиву Xi:=0 to nRow - 2 do [i]:=(P [i +1]-P [i]) / (P [i +1] + P [i]); [ nRow - 1]:=- 1.0;
/ / обчислення масиву PXi:=0 to nRow - 2 do [i]:=X [i] * P [i] * 1000/nRow; [nRow - 1]:=X [nRow - 1] * P [nRow - 1] * 10/nRow;
/ / розподіл за гистограмме
/ / сортування PX [i]
for i:=0 to nRow - 2 do:=i; j:=i +1 to nRow - 1 doPX [j] < PX [iminPX] then:=j;
/ / міняємо місцями:=PX [i]; [i]:=PX [imaxPX]; [imaxPX]:=temp;
end;
/ / знаходження мінімуму і максимуму-> верхньої та нижньої межі
minPX:=PX [0];:=Round (minPX * step * step);:=(PXlower - 1) / step / step;
/ / побудова гістограми:=minPX + 1.0/step/step;:=0;:=0;
i:=0 to nRow - 1 do
begin
/ / визначаємо діапазон куди входить PX [i]
if PX [i] < curGistogramValue then (gistogram [curGistogramIndex])
else
/ / збільшуємо curGistogramValue до тих пір поки не дійдемо до цієї точки
while (PX [i]> curGistogramValue) do:=curGistogramValue + 1.0/step/step; (curGistogramIndex); (curGistogramValue <0.00000000001) and (curGistogramValue> - 0.000000000001) then:=curGistogramIndex;
; (gistogram [curGistogramIndex]);;
end;
/ / побудова функції розподілу
raspredelenieFunc [0]:=gistogram [0];
for i:=1 to curGistogramIndex do [i]:=raspredelenieFunc [i - 1] + gistogram [i]; ...