📄 form_techanalysel.pas
字号:
combobox7.Items.Add('第五个红球');
combobox7.Items.Add('第六个红球');
//////分球预测号码////////////////
combobox8.Items.Clear;
for i:=1 to 33 do
begin
combobox8.Items.Add(inttostr(i));
end;///i
R_CPFirstQ2:=TStringList.Create;
/////////////////////
grid1.ColWidths[1]:=45;
grid1.Cells[1,1].ForeText:='期号';
grid1.RowHeights[1]:=20;
for i:=2 to 14 do
begin
grid1.ColWidths[i]:=70;
//grid1.cells[i,1].foretext:=inttostr(i-1);
end;
for i:=1 to grid1.ColCount-1 do
begin
grid1.Cells[i,1].Color:=rgb(0,0,255);
grid1.Cells[i,1].FontColor:=rgb(255,255,0);
end;
grid1.Cells[2,1].ForeText:='红球1';
grid1.Cells[3,1].ForeText:='红球2';
grid1.Cells[4,1].ForeText:='红球3';
grid1.Cells[5,1].ForeText:='红球4';
grid1.Cells[6,1].ForeText:='红球5';
grid1.Cells[7,1].ForeText:='红球6';
grid1.Cells[8,1].ForeText:='蓝球1';
grid1.Cells[9,1].ForeText:='蓝球2';
grid1.Cells[10,1].ForeText:='偏度';
grid1.ColWidths[10]:=50;
grid1.Cells[11,1].ForeText:='散度';
grid1.ColWidths[11]:=50;
grid1.Cells[12,1].ForeText:='AC值';
grid1.ColWidths[12]:=50;
grid1.Cells[13,1].ForeText:='最大与实偏差';
grid1.ColWidths[13]:=100;
///////显示双色球记录////////////////////
with AdoQuery1 do
begin
connectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+CurrentPath+'\sale.mdb;Persist Security Info=False';
close;
sql.Clear;
sql.Add('Select * From CPdata order By sID');
prepared;
open;
if recordcount<>0 then
begin
i:=1;
while not Eof do
begin
grid1.RowCount:=i+2;
grid1.Cells[1,i+1].ForeText:=trim(FieldByName('sID').AsString);
grid1.Cells[2,i+1].ForeText:=trim(FieldByName('r1').AsString);
grid1.Cells[3,i+1].ForeText:=trim(FieldByName('r2').AsString);
grid1.Cells[4,i+1].ForeText:=trim(FieldByName('r3').AsString);
grid1.Cells[5,i+1].ForeText:=trim(FieldByName('r4').AsString);
grid1.Cells[6,i+1].ForeText:=trim(FieldByName('r5').AsString);
grid1.Cells[7,i+1].ForeText:=trim(FieldByName('r6').AsString);
grid1.Cells[8,i+1].ForeText:=trim(FieldByName('b1').AsString);
grid1.Cells[9,i+1].ForeText:=trim(FieldByName('b2').AsString);
next;
inc(i);
end;///while
end;//if
end;//with
/////计算偏度和散度//////////////////////
//////首先计算偏度=是关联两期号码的关键////////////////rid///
/////计算公式为本期的每一个号码与上一期的号码分别相减得出6个最小值
/////偏度就是最小值中最大的一个//////////////////////////////////
/////那么就可以通过本期的号码和预测出下期的偏度得出一个到两个下期号码
iSortList1:=TStringList.Create;
iSortList2:=TStringList.Create;
iSortList3:=TStringList.Create;
iSortList4:=TStringList.Create;
iSortList5:=TStringList.Create;
iSortList6:=TStringList.Create;
iSortList7:=TStringList.Create;
for i:=3 to grid1.RowCount-1 do
begin
iSortList1.Clear;
iSortList2.Clear;
iSortList3.Clear;
iSortList4.Clear;
iSortList5.Clear;
iSortList6.Clear;
for j:=2 to 7 do
begin
if abs(strToInt(grid1.cells[2,i].foretext)-strToInt(grid1.cells[j,i-1].foretext))<10 then
begin
PDMin1[j,i]:='0'+formatFloat('##0',abs(strToInt(grid1.cells[2,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
end
else
PDMin1[j,i]:=formatFloat('##0',abs(strToInt(grid1.cells[2,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
if abs(strToInt(grid1.cells[3,i].foretext)-strToInt(grid1.cells[j,i-1].foretext))<10 then
begin
PDMin2[j,i]:='0'+formatFloat('##0',abs(strToInt(grid1.cells[3,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
end
else
PDMin2[j,i]:=formatFloat('##0',abs(strToInt(grid1.cells[3,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
if abs(strToInt(grid1.cells[4,i].foretext)-strToInt(grid1.cells[j,i-1].foretext))<10 then
begin
PDMin3[j,i]:='0'+formatFloat('##0',abs(strToInt(grid1.cells[4,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
end
else
PDMin3[j,i]:=formatFloat('##0',abs(strToInt(grid1.cells[4,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
if abs(strToInt(grid1.cells[5,i].foretext)-strToInt(grid1.cells[j,i-1].foretext))<10 then
begin
PDMin4[j,i]:='0'+formatFloat('##0',abs(strToInt(grid1.cells[5,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
end
else
PDMin4[j,i]:=formatFloat('##0',abs(strToInt(grid1.cells[5,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
if abs(strToInt(grid1.cells[6,i].foretext)-strToInt(grid1.cells[j,i-1].foretext))<10 then
begin
PDMin5[j,i]:='0'+formatFloat('##0',abs(strToInt(grid1.cells[6,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
end
else
PDMin5[j,i]:=formatFloat('##0',abs(strToInt(grid1.cells[6,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
if abs(strToInt(grid1.cells[7,i].foretext)-strToInt(grid1.cells[j,i-1].foretext))<10 then
begin
PDMin6[j,i]:='0'+formatFloat('##0',abs(strToInt(grid1.cells[7,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
end
else
PDMin6[j,i]:=formatFloat('##0',abs(strToInt(grid1.cells[7,i].foretext)-strToInt(grid1.cells[j,i-1].foretext)));
iSortList1.Add(PDMin1[j,i]);
iSortList2.Add(PDMin2[j,i]);
iSortList3.Add(PDMin3[j,i]);
iSortList4.Add(PDMin4[j,i]);
iSortList5.Add(PDMin5[j,i]);
iSortList6.Add(PDMin6[j,i]);
end;///for j
iSortList1.Sort;
iSortList2.Sort;
iSortList3.Sort;
iSortList4.Sort;
iSortList5.Sort;
iSortList6.Sort;
//showmessage(isortlist1[0]);
//showmessage(isortlist2[0]);
iSortList7.Clear;
iSortList7.Add(iSortList1[0]);
iSortList7.Add(iSortList2[0]);
iSortList7.Add(iSortList3[0]);
iSortList7.Add(iSortList4[0]);
iSortList7.Add(iSortList5[0]);
iSortList7.Add(iSortList6[0]);
iSortList7.Sort;
grid1.Cells[10,i].ForeText:=formatFloat('##0',abs(strtoint(iSortList7[iSortList7.count-1])));
end;//for i
////////计算散度值//////////////////////////////////////////
//////散度值是衡量基本号码之间的集中程度。红球的散度是指1-33这33个号码与6个基本号码之间的差的绝对值
//////的最小值中的最大的一个.散度值越大,基本号码的集中程度越高。而且散度值与偏度有着很密切的关系
//////本期的散度值是下一期偏度的最大值
///////
iSDSortList1:=TStringList.Create;
iSDSortList2:=TStringList.Create;
iSDSortList3:=TStringList.Create;
iSDSortList4:=TStringList.Create;
iSDSortList5:=TStringList.Create;
iSDSortList6:=TStringList.Create;
iSDSortList7:=TStringList.Create;
iSDSortList8:=TStringList.Create;
iSDSortList9:=TStringList.Create;
iSDSortList10:=TStringList.Create;
iSDSortList11:=TStringList.Create;
iSDSortList12:=TStringList.Create;
iSDSortList13:=TStringList.Create;
iSDSortList14:=TStringList.Create;
iSDSortList15:=TStringList.Create;
iSDSortList16:=TStringList.Create;
iSDSortList17:=TStringList.Create;
iSDSortList18:=TStringList.Create;
iSDSortList19:=TStringList.Create;
iSDSortList20:=TStringList.Create;
iSDSortList21:=TStringList.Create;
iSDSortList22:=TStringList.Create;
iSDSortList23:=TStringList.Create;
iSDSortList24:=TStringList.Create;
iSDSortList25:=TStringList.Create;
iSDSortList26:=TStringList.Create;
iSDSortList27:=TStringList.Create;
iSDSortList28:=TStringList.Create;
iSDSortList29:=TStringList.Create;
iSDSortList30:=TStringList.Create;
iSDSortList31:=TStringList.Create;
iSDSortList32:=TStringList.Create;
iSDSortList33:=TStringList.Create;
iSDSortList7x:=TStringlist.create;
for i:=2 to grid1.RowCount-1 do
begin
iSDSortList1.Clear;
iSDSortList2.Clear;
iSDSortList3.Clear;
iSDSortList4.Clear;
iSDSortList5.Clear;
iSDSortList6.Clear;
iSDSortList7.Clear;
iSDSortList8.Clear;
iSDSortList9.Clear;
iSDSortList10.Clear;
iSDSortList11.Clear;
iSDSortList12.Clear;
iSDSortList13.Clear;
iSDSortList14.Clear;
iSDSortList15.Clear;
iSDSortList16.Clear;
iSDSortList17.Clear;
iSDSortList18.Clear;
iSDSortList19.Clear;
iSDSortList20.Clear;
iSDSortList21.Clear;
iSDSortList22.Clear;
iSDSortList23.Clear;
iSDSortList24.Clear;
iSDSortList25.Clear;
iSDSortList26.Clear;
iSDSortList27.Clear;
iSDSortList28.Clear;
iSDSortList29.Clear;
iSDSortList30.Clear;
iSDSortList31.Clear;
iSDSortList32.Clear;
iSDSortList33.Clear;
for j:=2 to 7 do
begin
if abs(1-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin1[j,i]:='0'+trim(formatFloat('##0',abs(1-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin1[j,i]:=trim(formatFloat('##0',abs(1-strToInt(grid1.cells[j,i].foretext))));
if abs(2-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin2[j,i]:='0'+trim(formatFloat('##0',abs(2-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin2[j,i]:=trim(formatFloat('##0',abs(2-strToInt(grid1.cells[j,i].foretext))));
if abs(3-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin3[j,i]:='0'+trim(formatFloat('##0',abs(3-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin3[j,i]:=trim(formatFloat('##0',abs(3-strToInt(grid1.cells[j,i].foretext))));
/////
if abs(4-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin4[j,i]:='0'+trim(formatFloat('##0',abs(4-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin4[j,i]:=trim(formatFloat('##0',abs(4-strToInt(grid1.cells[j,i].foretext))));
if abs(5-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin5[j,i]:='0'+trim(formatFloat('##0',abs(5-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin5[j,i]:=trim(formatFloat('##0',abs(5-strToInt(grid1.cells[j,i].foretext))));
if abs(6-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin6[j,i]:='0'+trim(formatFloat('##0',abs(6-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin6[j,i]:=trim(formatFloat('##0',abs(6-strToInt(grid1.cells[j,i].foretext))));
////////
if abs(7-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin7[j,i]:='0'+trim(formatFloat('##0',abs(7-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin7[j,i]:=trim(formatFloat('##0',abs(7-strToInt(grid1.cells[j,i].foretext))));
if abs(8-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin8[j,i]:='0'+trim(formatFloat('##0',abs(8-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin8[j,i]:=trim(formatFloat('##0',abs(8-strToInt(grid1.cells[j,i].foretext))));
if abs(9-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin9[j,i]:='0'+trim(formatFloat('##0',abs(9-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin9[j,i]:=trim(formatFloat('##0',abs(9-strToInt(grid1.cells[j,i].foretext))));
//////////
if abs(10-strToInt(grid1.cells[j,i].foretext))<10 then
begin
SDMin10[j,i]:='0'+trim(formatFloat('##0',abs(10-strToInt(grid1.cells[j,i].foretext))));
end
else
SDMin10[j,i]:=trim(formatFloat('##0',abs(10-strToInt(grid1.cells[j,i].foretext))));
if abs(11-strToInt(grid1.cells[j,i].foretext))<10 then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -