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

📄 unit1.~pas

📁 一个用delphi编写的股票分析系统,值得大家讨论研究
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    StatusBar1: TStatusBar;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label10: TLabel;
    Edit7: TEdit;
    Label11: TLabel;
    Edit8: TEdit;
    Label12: TLabel;
    Edit9: TEdit;
    Label13: TLabel;
    Edit10: TEdit;
    Label14: TLabel;
    Edit11: TEdit;
    Label15: TLabel;
    Edit12: TEdit;
    Label16: TLabel;
    Edit13: TEdit;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Edit14: TEdit;
    Edit15: TEdit;
    Edit16: TEdit;
    Button1: TButton;
    Button2: TButton;
    DoButton: TButton;
    ClearButton: TButton;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Edit6: TEdit;
    Edit5: TEdit;
    Expect: TComboBox;
    Edit4: TEdit;
    Edit3: TEdit;
    Time: TComboBox;
    Edit2: TEdit;
    Edit1: TEdit;
    Label20: TLabel;
    procedure DoButtonClick(Sender: TObject);
    procedure ClearButtonClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DoButtonClick(Sender: TObject);
var
    Value_now: single;
    Average_Market_Ratio: single;
    HoldTime: Integer;
    Earn_PerStock_now: single;
    Average_RaiseRatio_PerYear: single;
    Earn_Expect_Ratio: single;
    Acceptable_Value: single;

    j, k, l, a, b, m: single;
    i: Integer;

begin

    Value_now:= 0;
    Average_Market_Ratio:= 0;
    HoldTime:= 0;
    Earn_PerStock_now:= 0;
    Average_RaiseRatio_PerYear:= 0;
    Earn_Expect_Ratio:= 0;
    Acceptable_Value:= 0;

    if Time.Text <> '' then
        HoldTime := StrToInt(Time.Text)
    else
        Exit;
    if Edit1.Text <> '' then
        Value_now := StrToFloat(Edit1.Text)
    else
        Exit;
    if Edit2.Text <> '' then
        Average_Market_Ratio := StrToFloat(Edit2.Text)
    else
        Exit;
    if Edit3.Text <> '' then
        Earn_PerStock_now := StrToFloat(Edit3.Text)
    else
        Exit;
    if Edit4.Text <> '' then
        Average_RaiseRatio_PerYear := StrToFloat(Edit4.Text)
    else
        Exit;
    if Expect.Text <> '' then
        Earn_Expect_Ratio := StrToFloat(Expect.Text)
    else
        Exit;

    j:= 1;
    k:= 1;
    l:= 1;
    a:= 1;
    b:= 1;

    for i:= 1 to HoldTime do
        begin
            j:= j*(1+Average_RaiseRatio_PerYear);
            k:= k*(1+Earn_Expect_Ratio);
        end;
    j:= j*Earn_PerStock_now;
    j:= j*Average_Market_Ratio;

    Acceptable_Value:= j/k;
    Edit5.Text:= FloatToStr(Acceptable_Value);

    a:= ln(j);
    b:= ln(Value_now);
    l:= (a-b)/HoldTime;
    m:= exp(l)- 1;

    Edit6.Text:= FloatToStr(Int(m*100))+ '%';
end;

procedure TForm1.ClearButtonClick(Sender: TObject);
begin
    Edit1.Text:= '';
    Edit2.Text:= '';
    Edit3.Text:= '';
    Edit4.Text:= '';
    Edit5.Text:= '';
    Time.Text:= '';
    Expect.Text:= '';
    
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    HoldTime: Integer;
    GDP_now: Integer;
    GDP_future: single;
    GDP_ratio: single;
    EARN_now: Integer;
    EARN_future: single;
    EARN_ratio: single;
    RATIO_now: single;
    RATIO_future: single;
    RATIO_Increase_ratio: single;

    j, k: single;
    i: Integer;
    a, b, c, d, e: Integer;
begin
    HoldTime:= 0;
    GDP_now:= 0;
    GDP_future:= 0;
    GDP_ratio:= 0;
    EARN_now:= 0;
    EARN_future:= 0;
    EARN_ratio:= 0;
    RATIO_now:= 0;
    RATIO_future:= 0;
    RATIO_Increase_ratio:= 0;

    if Edit7.Text <> '' then
        HoldTime:= StrToInt(Edit7.Text)
    else
        Exit;
    if Edit8.Text <> '' then
        GDP_now:= StrToInt(Edit8.Text)
    else
        Exit;
    if Edit9.Text <> '' then
        GDP_ratio:= StrToFloat(Edit9.Text)
    else
        Exit;
    if Edit11.Text <> '' then
        EARN_now:= StrToInt(Edit11.Text)
    else
        Exit;
    if Edit12.Text <> '' then
        EARN_ratio:= StrToFloat(Edit12.Text)
    else
        Exit;

    j:= 1;
    k:= 1;
    for i:= 1 to HoldTime do
        begin
            j:= j*(1+GDP_ratio);
            k:= k*(1+EARN_ratio);
        end;

    GDP_future:= GDP_now*j;
    EARN_future:= EARN_now*k;

    RATIO_now:= (EARN_now/GDP_now)*1000;
    RATIO_future:= (EARN_future/GDP_future)*1000;

    RATIO_Increase_ratio:= ((RATIO_future-RATIO_now)/RATIO_now)*100;

    a:= 0;
    b:= 0;
    c:= 0;
    d:= 0;
    e:= 0;

    a:= Round(GDP_future);
    b:= Round(EARN_future);
    c:= Round(RATIO_now);
    d:= Round(RATIO_future);
    e:= Round(RATIO_Increase_ratio);

    Edit10.Text:= IntToStr(a);
    Edit13.Text:= IntToStr(b);
    Edit14.Text:= IntToStr(c) + ' %。';
    Edit15.Text:= IntToStr(d) + ' %。';
    Edit16.Text:= IntToStr(e) + ' %';

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    Edit7.Text:= '';
    Edit8.Text:= '';
    Edit9.Text:= '';
    Edit10.Text:= '';
    Edit11.Text:= '';
    Edit12.Text:= '';
    Edit13.Text:= '';
    Edit14.Text:= '';
    Edit15.Text:= '';
    Edit16.Text:= '';

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -