diff --git a/Src/Data/Myc.Data.Types.pas b/Src/Data/Myc.Data.Types.pas index 7383d8a..1b6c12b 100644 --- a/Src/Data/Myc.Data.Types.pas +++ b/Src/Data/Myc.Data.Types.pas @@ -217,18 +217,6 @@ type class operator Implicit(const A: IDataValue): TDataType.TValue; overload; inline; class operator Implicit(const A: TDataType.TValue): IDataValue; overload; inline; - class operator Implicit(const A: IDataOrdinalValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataFloatValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataTextValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataTimestampValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataDecimalValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataEnumValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataMethodValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataRecordValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataTupleValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataArrayValue): TDataType.TValue; overload; inline; - class operator Implicit(const A: IDataVoidValue): TDataType.TValue; overload; inline; - property DataValue: IDataValue read FDataValue; property DataType: IDataType read GetDataType; end; @@ -1656,66 +1644,11 @@ begin Result := A.FDataValue; end; -class operator TDataType.TValue.Implicit(const A: IDataArrayValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataDecimalValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataEnumValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataFloatValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataMethodValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataOrdinalValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataRecordValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataTextValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataTimestampValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - -class operator TDataType.TValue.Implicit(const A: IDataTupleValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - class operator TDataType.TValue.Implicit(const A: IDataValue): TDataType.TValue; begin Result.FDataValue := A; end; -class operator TDataType.TValue.Implicit(const A: IDataVoidValue): TDataType.TValue; -begin - Result.FDataValue := A; -end; - function TDataType.AsArray: TDataType.TArray; begin if (FDataType.Kind <> dkArray) then diff --git a/Src/Myc.Trade.Indicators.Common.pas b/Src/Myc.Trade.Indicators.Common.pas index 206e700..e250f7e 100644 --- a/Src/Myc.Trade.Indicators.Common.pas +++ b/Src/Myc.Trade.Indicators.Common.pas @@ -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) ] ); diff --git a/Src/Myc.Trade.Indicators_v2.pas b/Src/Myc.Trade.Indicators_v2.pas index dbe0fe4..538d947 100644 --- a/Src/Myc.Trade.Indicators_v2.pas +++ b/Src/Myc.Trade.Indicators_v2.pas @@ -191,11 +191,11 @@ begin tkRecord: begin var rttiRecord := rttiType as TRttiRecordType; - var recordFields := TArray.Create(); + var recordFields := TArray.Create(); for var rttiField in rttiRecord.GetFields do begin var fieldType := DataTypeFromRttiType(Ctx, rttiField.FieldType); - recordFields := recordFields + [TRecordField.Create(rttiField.Name, fieldType)]; + recordFields := recordFields + [TDataRecordField.Create(rttiField.Name, fieldType)]; end; Result := TDataType.RecordOf(recordFields); end;