DataServer

Bugfix in DataSeries
This commit is contained in:
Michael Schimmel
2025-06-06 23:24:08 +02:00
parent a6c0c3d6b3
commit 031b99acc8
11 changed files with 369 additions and 86 deletions
+15 -2
View File
@@ -9,12 +9,14 @@ type
IDataPoint<T> = interface
['{6A52697A-2868-42A9-982D-993542B7B360}']
function GetData: T;
function GetIdx: Int64;
function GetTime: TDateTime;
function GetVolume: Double;
property Time: TDateTime read GetTime;
property Volume: Double read GetVolume;
property Data: T read GetData;
property Idx: Int64 read GetIdx;
end;
ITick = interface
@@ -25,6 +27,7 @@ type
property Ask: Double read GetAsk;
property Bid: Double read GetBid;
end;
ITickData = IDataPoint<ITick>;
IOHLC = interface
['{05374E3C-731B-44FA-A23E-051F1461B78D}']
@@ -38,6 +41,7 @@ type
property Low: Double read GetLow;
property Close: Double read GetClose;
end;
IOHLCData = IDataPoint<IOHLC>;
// Abstract base class for all data points.
TDataPoint<T> = class abstract(TInterfacedObject, IDataPoint<T>)
@@ -45,11 +49,13 @@ type
fTime: TDateTime;
fVolume: Double;
FData: T;
FIdx: Int64;
function GetTime: TDateTime;
function GetVolume: Double;
function GetData: T;
function GetIdx: Int64;
public
constructor Create(Time: TDateTime; Volume: Double; const AData: T);
constructor Create(Idx: Int64; Time: TDateTime; Volume: Double; const AData: T);
end;
TTick = class(TInterfacedObject, ITick)
@@ -80,8 +86,10 @@ implementation
{ TDataPoint }
constructor TDataPoint<T>.Create(Time: TDateTime; Volume: Double; const AData: T);
constructor TDataPoint<T>.Create(Idx: Int64; Time: TDateTime; Volume: Double; const AData: T);
begin
inherited Create;
FIdx := Idx;
fTime := Time;
fVolume := Volume;
FData := AData;
@@ -92,6 +100,11 @@ begin
Result := FData;
end;
function TDataPoint<T>.GetIdx: Int64;
begin
Result := FIdx;
end;
function TDataPoint<T>.GetTime: TDateTime;
begin
result := fTime;