New type system

This commit is contained in:
Michael Schimmel
2025-08-26 14:42:14 +02:00
parent 769497887f
commit 8e8f139785
3 changed files with 33 additions and 100 deletions
+31 -31
View File
@@ -797,18 +797,18 @@ begin
var paramsType :=
TDataType.RecordOf(
[
TRecordField.Create('FastPeriod', TDataType.Ordinal),
TRecordField.Create('SlowPeriod', TDataType.Ordinal),
TRecordField.Create('SignalPeriod', TDataType.Ordinal)
TDataRecordField.Create('FastPeriod', TDataType.Ordinal),
TDataRecordField.Create('SlowPeriod', TDataType.Ordinal),
TDataRecordField.Create('SignalPeriod', TDataType.Ordinal)
]
);
var argsType := TDataType.Float;
var resultType :=
TDataType.RecordOf(
[
TRecordField.Create('MacdLine', TDataType.Float),
TRecordField.Create('SignalLine', TDataType.Float),
TRecordField.Create('Histogram', TDataType.Float)
TDataRecordField.Create('MacdLine', TDataType.Float),
TDataRecordField.Create('SignalLine', TDataType.Float),
TDataRecordField.Create('Histogram', TDataType.Float)
]
);
@@ -962,21 +962,21 @@ end;
class constructor TStochastic.CreateClass;
begin
var paramsType :=
TDataType.RecordOf([TRecordField.Create('KPeriod', TDataType.Ordinal), TRecordField.Create('DPeriod', TDataType.Ordinal)]);
TDataType.RecordOf([TDataRecordField.Create('KPeriod', TDataType.Ordinal), TDataRecordField.Create('DPeriod', TDataType.Ordinal)]);
var ohlcType :=
TDataType.RecordOf(
[
TRecordField.Create('Open', TDataType.Float),
TRecordField.Create('High', TDataType.Float),
TRecordField.Create('Low', TDataType.Float),
TRecordField.Create('Close', TDataType.Float),
TRecordField.Create('Volume', TDataType.Float)
TDataRecordField.Create('Open', TDataType.Float),
TDataRecordField.Create('High', TDataType.Float),
TDataRecordField.Create('Low', TDataType.Float),
TDataRecordField.Create('Close', TDataType.Float),
TDataRecordField.Create('Volume', TDataType.Float)
]
);
var argsType := ohlcType;
var resultType := TDataType.RecordOf([TRecordField.Create('K', TDataType.Float), TRecordField.Create('D', TDataType.Float)]);
var resultType := TDataType.RecordOf([TDataRecordField.Create('K', TDataType.Float), TDataRecordField.Create('D', TDataType.Float)]);
var indicatorMethodType := TDataType.MethodOf(argsType, resultType);
var factoryMethodType := TDataType.MethodOf(paramsType, indicatorMethodType);
@@ -1218,14 +1218,14 @@ end;
class constructor TBollingerBands.CreateClass;
begin
var paramsType :=
TDataType.RecordOf([TRecordField.Create('Period', TDataType.Ordinal), TRecordField.Create('Multiplier', TDataType.Float)]);
TDataType.RecordOf([TDataRecordField.Create('Period', TDataType.Ordinal), TDataRecordField.Create('Multiplier', TDataType.Float)]);
var argsType := TDataType.Float;
var resultType :=
TDataType.RecordOf(
[
TRecordField.Create('UpperBand', TDataType.Float),
TRecordField.Create('MiddleBand', TDataType.Float),
TRecordField.Create('LowerBand', TDataType.Float)
TDataRecordField.Create('UpperBand', TDataType.Float),
TDataRecordField.Create('MiddleBand', TDataType.Float),
TDataRecordField.Create('LowerBand', TDataType.Float)
]
);
@@ -1316,11 +1316,11 @@ begin
var ohlcType :=
TDataType.RecordOf(
[
TRecordField.Create('Open', TDataType.Float),
TRecordField.Create('High', TDataType.Float),
TRecordField.Create('Low', TDataType.Float),
TRecordField.Create('Close', TDataType.Float),
TRecordField.Create('Volume', TDataType.Float)
TDataRecordField.Create('Open', TDataType.Float),
TDataRecordField.Create('High', TDataType.Float),
TDataRecordField.Create('Low', TDataType.Float),
TDataRecordField.Create('Close', TDataType.Float),
TDataRecordField.Create('Volume', TDataType.Float)
]
);
var argsType := ohlcType;
@@ -1405,24 +1405,24 @@ end;
class constructor TKeltnerChannels.CreateClass;
begin
var paramsType :=
TDataType.RecordOf([TRecordField.Create('Period', TDataType.Ordinal), TRecordField.Create('Multiplier', TDataType.Float)]);
TDataType.RecordOf([TDataRecordField.Create('Period', TDataType.Ordinal), TDataRecordField.Create('Multiplier', TDataType.Float)]);
var ohlcType :=
TDataType.RecordOf(
[
TRecordField.Create('Open', TDataType.Float),
TRecordField.Create('High', TDataType.Float),
TRecordField.Create('Low', TDataType.Float),
TRecordField.Create('Close', TDataType.Float),
TRecordField.Create('Volume', TDataType.Float)
TDataRecordField.Create('Open', TDataType.Float),
TDataRecordField.Create('High', TDataType.Float),
TDataRecordField.Create('Low', TDataType.Float),
TDataRecordField.Create('Close', TDataType.Float),
TDataRecordField.Create('Volume', TDataType.Float)
]
);
var argsType := ohlcType;
var resultType :=
TDataType.RecordOf(
[
TRecordField.Create('UpperBand', TDataType.Float),
TRecordField.Create('MiddleBand', TDataType.Float),
TRecordField.Create('LowerBand', TDataType.Float)
TDataRecordField.Create('UpperBand', TDataType.Float),
TDataRecordField.Create('MiddleBand', TDataType.Float),
TDataRecordField.Create('LowerBand', TDataType.Float)
]
);