TSeries + DataEndpoint
This commit is contained in:
@@ -31,9 +31,9 @@ type
|
||||
|
||||
TIndicators = record
|
||||
private
|
||||
class function CalculateSMA(const Series: TMycDataArray<Double>; const Period: Integer): Double; static;
|
||||
class function CalculateStdDev(const Series: TMycDataArray<Double>; const Period: Integer): Double; static;
|
||||
class function CalculateWMA(const Series: TMycDataArray<Double>; const Period: Integer): Double; static;
|
||||
class function CalculateSMA(const Series: TSeries<Double>; const Period: Integer): Double; static;
|
||||
class function CalculateStdDev(const Series: TSeries<Double>; const Period: Integer): Double; static;
|
||||
class function CalculateWMA(const Series: TSeries<Double>; const Period: Integer): Double; static;
|
||||
public
|
||||
// Simple Moving Average
|
||||
class function CreateSMA(Period: Integer): TConstFunc<Double, Double>; static;
|
||||
@@ -55,7 +55,7 @@ implementation
|
||||
|
||||
{ TIndicators }
|
||||
|
||||
class function TIndicators.CalculateSMA(const Series: TMycDataArray<Double>; const Period: Integer): Double;
|
||||
class function TIndicators.CalculateSMA(const Series: TSeries<Double>; const Period: Integer): Double;
|
||||
var
|
||||
i: Integer;
|
||||
sum: Double;
|
||||
@@ -70,7 +70,7 @@ begin
|
||||
Result := sum / Period;
|
||||
end;
|
||||
|
||||
class function TIndicators.CalculateStdDev(const Series: TMycDataArray<Double>; const Period: Integer): Double;
|
||||
class function TIndicators.CalculateStdDev(const Series: TSeries<Double>; const Period: Integer): Double;
|
||||
var
|
||||
i: Integer;
|
||||
mean, sumOfSquares: Double;
|
||||
@@ -86,7 +86,7 @@ begin
|
||||
Result := Sqrt(sumOfSquares / Period);
|
||||
end;
|
||||
|
||||
class function TIndicators.CalculateWMA(const Series: TMycDataArray<Double>; const Period: Integer): Double;
|
||||
class function TIndicators.CalculateWMA(const Series: TSeries<Double>; const Period: Integer): Double;
|
||||
var
|
||||
i: Integer;
|
||||
numerator: Double;
|
||||
@@ -114,7 +114,7 @@ end;
|
||||
|
||||
class function TIndicators.CreateBollingerBands(Period: Integer; Multiplier: Double): TConstFunc<Double, TBollingerBandsResult>;
|
||||
begin
|
||||
var sourceData := TMycDataArray<Double>.CreateEmpty;
|
||||
var sourceData: TSeries<Double>;
|
||||
Result :=
|
||||
function(const Value: Double): TBollingerBandsResult
|
||||
var
|
||||
@@ -138,7 +138,7 @@ end;
|
||||
class function TIndicators.CreateEMA(Period: Integer): TConstFunc<Double, Double>;
|
||||
begin
|
||||
var lastEma: Double := Double.NaN;
|
||||
var sourceData := TMycDataArray<Double>.CreateEmpty;
|
||||
var sourceData: TSeries<Double>;
|
||||
var multiplier := 2 / (Period + 1);
|
||||
|
||||
Result :=
|
||||
@@ -170,8 +170,8 @@ class function TIndicators.CreateHMA(Period: Integer): TConstFunc<Double, Double
|
||||
begin
|
||||
var periodHalf := Period div 2;
|
||||
var periodSqrt := Round(Sqrt(Period));
|
||||
var sourceData := TMycDataArray<Double>.CreateEmpty;
|
||||
var diffSeries := TMycDataArray<Double>.CreateEmpty;
|
||||
var sourceData: TSeries<Double>;
|
||||
var diffSeries: TSeries<Double>;
|
||||
|
||||
Result :=
|
||||
function(const Value: Double): Double
|
||||
@@ -244,7 +244,7 @@ class function TIndicators.CreateRSI(Period: Integer): TConstFunc<Double, Double
|
||||
begin
|
||||
var avgGain: Double := Double.NaN;
|
||||
var avgLoss: Double := Double.NaN;
|
||||
var sourceData := TMycDataArray<Double>.CreateEmpty;
|
||||
var sourceData: TSeries<Double>;
|
||||
|
||||
Result :=
|
||||
function(const Value: Double): Double
|
||||
@@ -301,7 +301,7 @@ end;
|
||||
|
||||
class function TIndicators.CreateSMA(Period: Integer): TConstFunc<Double, Double>;
|
||||
begin
|
||||
var sourceData := TMycDataArray<Double>.CreateEmpty;
|
||||
var sourceData: TSeries<Double>;
|
||||
Result :=
|
||||
function(const Value: Double): Double
|
||||
begin
|
||||
@@ -315,7 +315,7 @@ end;
|
||||
|
||||
class function TIndicators.CreateStochastic(KPeriod, DPeriod: Integer): TConstFunc<TOhlcItem, TStochasticResult>;
|
||||
begin
|
||||
var sourceData := TMycDataArray<TOhlcItem>.CreateEmpty;
|
||||
var sourceData: TSeries<TOhlcItem>;
|
||||
var smaD := CreateSMA(DPeriod);
|
||||
|
||||
Result :=
|
||||
|
||||
Reference in New Issue
Block a user