Unit refactoring
Fixed massive heap corruption bug in TDataRecord
This commit is contained in:
@@ -6,7 +6,8 @@ uses
|
||||
FMX.Forms,
|
||||
MainForm in 'MainForm.pas' {Form1},
|
||||
TestModule in 'TestModule.pas',
|
||||
DynamicFMXControl in 'DynamicFMXControl.pas';
|
||||
DynamicFMXControl in 'DynamicFMXControl.pas',
|
||||
Myc.Trade.Pipeline.Impl in '..\Src\Myc.Trade.Pipeline.Impl.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
</DCCReference>
|
||||
<DCCReference Include="TestModule.pas"/>
|
||||
<DCCReference Include="DynamicFMXControl.pas"/>
|
||||
<DCCReference Include="..\Src\Myc.Trade.Pipeline.Impl.pas"/>
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
|
||||
@@ -32,6 +32,7 @@ uses
|
||||
Myc.Futures,
|
||||
Myc.Trade.Types,
|
||||
Myc.Trade.DataStream,
|
||||
Myc.Trade.Pipeline,
|
||||
Myc.Data.Series,
|
||||
Myc.Data.Pipeline,
|
||||
Myc.Signals,
|
||||
@@ -298,7 +299,7 @@ begin
|
||||
var ticker := TConverter.CreateIdentity<TDataPoint<TOhlcItem>>;
|
||||
Result := ticker.Consumer;
|
||||
|
||||
var OhlcPoint := ticker.Producer.Chain<TDataPoint<TOhlcItem>>(TConverter.CreateOhlcAggregation(Timeframe));
|
||||
var OhlcPoint := ticker.Producer.Chain<TDataPoint<TOhlcItem>>(TTradeConverter.CreateOhlcAggregation(Timeframe));
|
||||
|
||||
var Ohlc := OhlcPoint.Field<TOhlcItem>('Data');
|
||||
|
||||
@@ -423,7 +424,7 @@ begin
|
||||
|
||||
var equity :=
|
||||
TConverter<Double, Double>.CreateAggregation(
|
||||
function(const Value: Double; const Broadcast: TConverter<Double, Double>.TBroadcastProc): TState
|
||||
function(const Value: Double; const Broadcast: TBroadcastFunc<Double>): TState
|
||||
begin
|
||||
if not FInit then
|
||||
begin
|
||||
@@ -599,7 +600,7 @@ begin
|
||||
|
||||
var ticker := TConverter.CreateIdentity<TDataPoint<TOhlcItem>>;
|
||||
|
||||
var OhlcPoint := ticker.Producer.Chain<TDataPoint<TOhlcItem>>(TConverter.CreateOhlcAggregation(timeframe));
|
||||
var OhlcPoint := ticker.Producer.Chain<TDataPoint<TOhlcItem>>(TTradeConverter.CreateOhlcAggregation(timeframe));
|
||||
|
||||
// var OhlcTicker := TConverter.CreateIdentity<TDataPoint<TOhlcItem>>;
|
||||
// var OhlcPoint := OhlcTicker.Sender;
|
||||
|
||||
@@ -6,6 +6,7 @@ uses
|
||||
Myc.Signals,
|
||||
Myc.Data.Pipeline,
|
||||
Myc.Trade.Types,
|
||||
Myc.Trade.Pipeline,
|
||||
Myc.Trade.Indicators;
|
||||
|
||||
function CreateStrategy1(Timeframe: TTimeframe): TConverter<TDataPoint<TOhlcItem>, Double>; overload;
|
||||
@@ -28,7 +29,7 @@ type
|
||||
begin
|
||||
var ticker := TConverter.CreateIdentity<TDataPoint<TOhlcItem>>;
|
||||
|
||||
var OhlcPoint := ticker.Producer.Chain<TDataPoint<TOhlcItem>>(TConverter.CreateOhlcAggregation(Timeframe));
|
||||
var OhlcPoint := ticker.Producer.Chain<TDataPoint<TOhlcItem>>(TTradeConverter.CreateOhlcAggregation(Timeframe));
|
||||
|
||||
var Ohlc := OhlcPoint.Field<TOhlcItem>('Data');
|
||||
|
||||
@@ -97,7 +98,7 @@ begin
|
||||
var positionManager :=
|
||||
signalGenerator.Chain<Double>(
|
||||
TConverter<TSignalEvent, Double>.CreateAggregation(
|
||||
function(const Value: TSignalEvent; const Broadcast: TConverter<TSignalEvent, Double>.TBroadcastProc): TState
|
||||
function(const Value: TSignalEvent; const Broadcast: TBroadcastFunc<Double>): TState
|
||||
var
|
||||
pnl: Double;
|
||||
begin
|
||||
@@ -164,7 +165,7 @@ begin
|
||||
var equity :=
|
||||
positionManager.Chain<Double>(
|
||||
TConverter<Double, Double>.CreateAggregation(
|
||||
function(const Value: Double; const Broadcast: TConverter<Double, Double>.TBroadcastProc): TState
|
||||
function(const Value: Double; const Broadcast: TBroadcastFunc<Double>): TState
|
||||
begin
|
||||
if not FInit then
|
||||
begin
|
||||
|
||||
Reference in New Issue
Block a user