⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jesse.cpp

📁 Jesse Livermore 方法,和三线翻转方法
💻 CPP
📖 第 1 页 / 共 2 页
字号:

        // 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 + -