📄 jesse.cpp
字号:
// 6-a 自然回撤-----自然回撤
if (CurrentCol==NATURALDROP && Price[i]<Price[LatestNaturalDrop] && Price[i]>(Price[LatestDropTrend]) )
{
StringGrid1->Cells[N][i] = "6-a:"+AnsiString(Price[i])+ "<" +AnsiString(Price[LatestNaturalDrop]);
LatestNaturalDrop = i;
CurrentCol = NATURALDROP;
Trend[i]=CurrentCol;
ConvIndex = NaturalDropToNaturalDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-b 下降趋势------下降趋势
if (CurrentCol==DROPTREND && (Price[i]<Price[LatestDropTrend]))
{
StringGrid1->Cells[N][i] = "6-b:"+AnsiString(Price[i])+ "<" +AnsiString(Price[LatestDropTrend]);
LatestDropTrend = i;
CurrentCol = DROPTREND;
Trend[i]=CurrentCol;
ConvIndex = DropToDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-c 下降趋势 --------自然回升
if (CurrentCol==NATURALRISE && (Price[i]>Price[LatestNaturalRise]) && Price[i]<Price[LatestRiseTrend])
{
StringGrid1->Cells[N][i] = "6-c:"+AnsiString(Price[i])+ ">" +AnsiString(Price[LatestNaturalRise]);
LatestNaturalRise = i;
CurrentCol = NATURALRISE;
Trend[i]=CurrentCol;
ConvIndex = NaturalRiseToNaturalRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-d 自然回升 --------自然回升
if (CurrentCol==NATURALRISE && (Price[i]>Price[LatestNaturalRise]) && Price[i]<Price[LatestRiseTrend])
{
StringGrid1->Cells[N][i] = "6-d:"+AnsiString(Price[i])+ ">" +AnsiString(Price[LatestNaturalRise]);
LatestNaturalRise = i;
CurrentCol = NATURALRISE;
Trend[i]=CurrentCol;
ConvIndex = NaturalRiseToNaturalRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-d 上升趋势 --------上升趋势
if (CurrentCol==RISETREND && (Price[i] > Price[LatestRiseTrend]))
{
StringGrid1->Cells[N][i] = "6-d:"+AnsiString(Price[i])+ ">" +AnsiString(Price[LatestRiseTrend]);
LatestRiseTrend = i;
CurrentCol = RISETREND;
Trend[i]=CurrentCol;
ConvIndex = RiseToRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-e 自然回撤-----下降趋势 √
if (CurrentCol==NATURALDROP && (Price[i]<Price[LatestDropTrend]))
{
StringGrid1->Cells[N][i] = "6-e:"+AnsiString(Price[i])+ "<" +AnsiString(Price[LatestDropTrend]);
LatestDropTrend = i;
CurrentCol = DROPTREND;
Trend[i]=CurrentCol;
ConvIndex = NaturalDropToDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-f 自然回升 --------上升趋势 ?????????????
if (CurrentCol==NATURALRISE && (Price[i]> Price[LatestRiseTrend]))
{
StringGrid1->Cells[N][i] = "6-f:"+AnsiString(Price[i])+ ">" +AnsiString(Price[LatestRiseTrend]);
LatestRiseTrend = i;
CurrentCol = RISETREND;
Trend[i]=CurrentCol;
ConvIndex = NaturalRiseToRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-g 自然回撤-----次级回升
if ((CurrentCol==NATURALDROP )&& (Price[i]>Price[LatestNaturalDrop]+Delta) && Price[i]< Price[LatestNaturalRise])
{
LatestSubRise = i;
CurrentCol = SUBRISE;
Trend[i]=CurrentCol;
ConvIndex = NaturalDropToSubRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[N][i] = "6-g";
continue;
}
// 6-g 下降趋势-----次级回升
if ((CurrentCol==DROPTREND)&& (Price[i]>Price[LatestNaturalDrop]+Delta) && Price[i]< Price[LatestNaturalRise])
{
DropTrendBlackUnderlined= LatestDropTrend;
LatestDropTrend = i;
LatestSubRise = i;
CurrentCol = SUBRISE;
Trend[i]=CurrentCol;
ConvIndex = NaturalDropToSubRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[DROPTREND][DropTrendBlackUnderlined] = "_"+AnsiString(Price[DropTrendBlackUnderlined])+"_";
StringGrid1->Cells[N][i] = "6-g";
continue;
}
// 6-g 次级回升-----次级回升
if (CurrentCol==SUBRISE && (Price[i]>Price[LatestSubRise] && Price[i]< Price[LatestNaturalRise]))
{
LatestSubRise = i;
CurrentCol = SUBRISE;
Trend[i]=CurrentCol;
ConvIndex = SubRiseToSubDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[N][i] = "6-g";
continue;
}
// 6-g 次级回升-----自然回升
if (CurrentCol==SUBRISE && (Price[i]> Price[LatestNaturalRise]))
{
LatestNaturalRise = i;
CurrentCol = NATURALRISE;
Trend[i]=CurrentCol;
ConvIndex = SubRiseToNaturalRise;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[N][i] = "6-g";
continue;
}
// 6-h 自然回升 --------次级回撤
if ((CurrentCol==NATURALRISE)&& (Price[i]+ Delta < Price[LatestNaturalRise]) && Price[i]>Price[LatestNaturalDrop])
{
LatestSubDrop = i;
CurrentCol = SUBDROP;
Trend[i]=CurrentCol;
ConvIndex = NaturalRiseToSubDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
continue;
}
// 6-h 上升趋势 --------次级回撤
if ((CurrentCol==RISETREND)&& (Price[i]+ Delta < Price[LatestNaturalRise]) && Price[i]>Price[LatestNaturalDrop])
{
DropTrendBlackUnderlined= LatestRiseTrend;
LatestSubDrop = i;
CurrentCol = SUBDROP;
ConvIndex = NaturalRiseToSubDrop;
Trend[i]=CurrentCol;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[RISETREND][DropTrendBlackUnderlined] = "_"+AnsiString(Price[DropTrendBlackUnderlined])+"_";
StringGrid1->Cells[N][i] = "6-h";
continue;
}
// 6-h 次级回撤 --------次级回撤
if (CurrentCol==SUBDROP && (Price[i]< Price[LatestSubDrop]) && Price[i]>Price[LatestNaturalDrop])
{
LatestSubDrop = i;
CurrentCol = SUBDROP;
Trend[i]=CurrentCol;
ConvIndex = SubDropToSubDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[N][i] = "6-h";
continue;
}
// 6-h 次级回撤 --------自然回撤
if (CurrentCol==SUBDROP && Price[i]<Price[LatestNaturalDrop])
{
LatestNaturalDrop = i;
CurrentCol = NATURALDROP;
Trend[i]=CurrentCol;
ConvIndex = SubDropToNaturalDrop;
StringGrid1->Cells[CurrentCol][i] = AnsiString(TrendConvSymbol[ConvIndex])+AnsiString(Price[i]);
StringGrid1->Cells[N][i] = "6-h";
continue;
}
}
}
//Delta = float(ScrollBar1->Position);
//---------------------------------------------------------------------------
void __fastcall TForm1::beginClick(TObject *Sender)
{
if(!OpenDialog1 ->Execute())return;
ReadData(OpenDialog1 ->FileName.c_str());
this->Caption= OpenDialog1 ->FileName;
JesseProcess(1,Delta);
Form4->Button3Click(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(SaveDialog1 ->Execute())SaveMemoToFile(SaveDialog1->FileName.c_str(), Form2->ScrollBar5->Position);
}
//---------------------------------------------------------------------------
void TForm1::SaveMemoToFile(char*filename,int Delta)
{
char s[256]="----------|----------|----------|----------|----------|----------|----------";
Memo1->Lines->Clear();
Memo1->Lines->Add(AnsiString(s));
Memo1->Lines->Add(StringGrid1->Cells[YYMMDD][0]+" "+StringGrid1->Cells[SUBRISE][0]+" "+StringGrid1->Cells[NATURALRISE][0]+" "+StringGrid1->Cells[RISETREND][0]+" "+StringGrid1->Cells[DROPTREND][0]+" "+StringGrid1->Cells[NATURALDROP][0]+" "+StringGrid1->Cells[SUBDROP][0] + " "+StringGrid1->Cells[N][0]);
Memo1->Lines->Add(AnsiString(s));
for(int i=1; i<nill; i++)
{
Memo1->Lines->Add(StringGrid1->Cells[YYMMDD][i]+StringGrid1->Cells[SUBRISE][i]+StringGrid1->Cells[NATURALRISE][i]+StringGrid1->Cells[RISETREND][i]+StringGrid1->Cells[DROPTREND][i]+StringGrid1->Cells[NATURALDROP][i]+StringGrid1->Cells[SUBDROP][i]+ " "+StringGrid1->Cells[N][i]);
Memo1->Lines->Add(AnsiString(s));
}
Memo1->Lines->SaveToFile(filename);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(!OpenDialog1 ->Execute())return;
if(!SaveDialog1 ->Execute())return;
ReadData(OpenDialog1 ->FileName.c_str());
for(int i=Form2->ScrollBar1->Position; i<Form2->ScrollBar2->Position;i+=Form2->ScrollBar3->Position)
{
JesseProcess(1,i);
SaveMemoToFile((SaveDialog1->FileName+AnsiString("幅度遍历△=")+AnsiString(i)+".TXT").c_str(),i);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
int &Column=1, &Row=2;
StringGrid1->MouseToCell(X, Y, Column, Row);
//TForm2 *Form2= new TForm2();
if(Button==mbRight)
{
if(!Form2)Form2->ShowModal();
else Form2->Visible = !(Form2->Visible);
//CurrentCol = Form2->RadioGroup1->ItemIndex+1;
//if(mrYes==MessageDlg("将第一日作为"+StringGrid1->Cells[CurrentCol][0]+"起点开始计算?",mtWarning,TMsgDlgButtons()<<mbYes<<mbNo,0))
//JesseProcess(1,Form2->ScrollBar5->Position);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
StringGrid1->Cells[YYMMDD][0] = "日期";
StringGrid1->Cells[SUBRISE][0] = "次级回升";
StringGrid1->Cells[NATURALRISE][0] = "自然回升";
StringGrid1->Cells[RISETREND][0] = "上升趋势";
StringGrid1->Cells[DROPTREND][0] = "下降趋势";
StringGrid1->Cells[NATURALDROP][0] = "自然回撤";
StringGrid1->Cells[SUBDROP][0] = "次级回撤";
StringGrid1->Cells[N][0] = "N";
Form2->FormShow(Sender);
//ScrollBar1->Position = 120;
//if(!Form2)Delta = 482;
Delta = double(Form2->ScrollBar5->Position);
if(!OpenDialog1 ->Execute())return;
ReadData(OpenDialog1 ->FileName.c_str());
this->Caption= OpenDialog1 ->FileName;
JesseProcess(1,Delta);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
//JesseProcess(1,Delta);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -