New type system - Decimals

This commit is contained in:
Michael Schimmel
2025-08-26 13:47:38 +02:00
parent c434a151dd
commit 1ff603bd10
7 changed files with 337 additions and 197 deletions
+18 -18
View File
@@ -367,7 +367,7 @@ begin
indicatorMethodType.CreateValue(
function(const Args: TDataType.TValue): TDataType.TValue
begin
Result := TDataType.FromFloat(SMA(Args.AsFloat.Value));
Result := TDataType.Float.CreateValue(SMA(Args.AsFloat.Value));
end
);
end
@@ -466,7 +466,7 @@ begin
indicatorMethodType.CreateValue(
function(const Args: TDataType.TValue): TDataType.TValue
begin
Result := TDataType.FromFloat(EMA(Args.AsFloat.Value));
Result := TDataType.Float.CreateValue(EMA(Args.AsFloat.Value));
end
);
end
@@ -549,7 +549,7 @@ begin
indicatorMethodType.CreateValue(
function(const Args: TDataType.TValue): TDataType.TValue
begin
Result := TDataType.FromFloat(WMA(Args.AsFloat.Value));
Result := TDataType.Float.CreateValue(WMA(Args.AsFloat.Value));
end
);
end
@@ -644,7 +644,7 @@ begin
indicatorMethodType.CreateValue(
function(const Args: TDataType.TValue): TDataType.TValue
begin
Result := TDataType.FromFloat(HMA(Args.AsFloat.Value));
Result := TDataType.Float.CreateValue(HMA(Args.AsFloat.Value));
end
);
end
@@ -712,7 +712,7 @@ begin
indicatorMethodType.CreateValue(
function(const Args: TDataType.TValue): TDataType.TValue
begin
Result := TDataType.FromFloat(RSI(Args.AsFloat.Value));
Result := TDataType.Float.CreateValue(RSI(Args.AsFloat.Value));
end
);
end
@@ -837,9 +837,9 @@ begin
Result :=
resultType.CreateValue(
[
TDataType.FromFloat(res.MacdLine),
TDataType.FromFloat(res.SignalLine),
TDataType.FromFloat(res.Histogram)
TDataType.Float.CreateValue(res.MacdLine),
TDataType.Float.CreateValue(res.SignalLine),
TDataType.Float.CreateValue(res.Histogram)
]
);
end
@@ -1011,7 +1011,7 @@ begin
var res := Stochastic(ohlcVal);
Result := resultType.CreateValue([TDataType.FromFloat(res.K), TDataType.FromFloat(res.D)]);
Result := resultType.CreateValue([TDataType.Float.CreateValue(res.K), TDataType.Float.CreateValue(res.D)]);
end
);
end
@@ -1143,7 +1143,7 @@ begin
indicatorMethodType.CreateValue(
function(const Args: TDataType.TValue): TDataType.TValue
begin
Result := TDataType.FromFloat(StdDev(Args.AsFloat.Value));
Result := TDataType.Float.CreateValue(StdDev(Args.AsFloat.Value));
end
);
end
@@ -1253,9 +1253,9 @@ begin
Result :=
resultType.CreateValue(
[
TDataType.FromFloat(res.UpperBand),
TDataType.FromFloat(res.MiddleBand),
TDataType.FromFloat(res.LowerBand)
TDataType.Float.CreateValue(res.UpperBand),
TDataType.Float.CreateValue(res.MiddleBand),
TDataType.Float.CreateValue(res.LowerBand)
]
);
end
@@ -1348,7 +1348,7 @@ begin
ohlcVal.Low := TDataType.TValue(ohlcRec.Items[2]).AsFloat.Value;
ohlcVal.Close := TDataType.TValue(ohlcRec.Items[3]).AsFloat.Value;
ohlcVal.Volume := TDataType.TValue(ohlcRec.Items[4]).AsFloat.Value;
Result := TDataType.FromFloat(ATR(ohlcVal));
Result := TDataType.Float.CreateValue(ATR(ohlcVal));
end
);
end
@@ -1460,9 +1460,9 @@ begin
Result :=
resultType.CreateValue(
[
TDataType.FromFloat(res.UpperBand),
TDataType.FromFloat(res.MiddleBand),
TDataType.FromFloat(res.LowerBand)
TDataType.Float.CreateValue(res.UpperBand),
TDataType.Float.CreateValue(res.MiddleBand),
TDataType.Float.CreateValue(res.LowerBand)
]
);
end
@@ -1550,7 +1550,7 @@ begin
for i := 0 to valuesArray.ElementCount - 1 do
values[i] := TDataType.TValue(valuesArray.Items[i]).AsFloat.Value;
Result := TDataType.FromFloat(Mean(values));
Result := TDataType.Float.CreateValue(Mean(values));
end
);
end