Process.Update for synchronization

This commit is contained in:
Michael Schimmel
2025-07-12 11:38:23 +02:00
parent 021ff61774
commit cf17e06e32
10 changed files with 318 additions and 380 deletions
+12 -11
View File
@@ -165,34 +165,35 @@ begin
var chart := TMycChart.Create(Self);
AlignControl( chart );
chart.Height := Layout.ChildrenRect.Width*9/16;
chart.Lookback := 1000;
/////
var strategy: ITicksToTimeframe := TTicksToTimeframe.Create( D, stateText );
var OhlcPoint: ITicksToTimeframe := TTicksToTimeframe.Create( H1, stateText );
var Ohlc: IMycIndicator<TDataPoint<TOhlcItem>, TOhlcItem> := TMycGenericIndicator<TDataPoint<TOhlcItem>, TOhlcItem>.Create( 0,
var Ohlc: IMycConverter<TDataPoint<TOhlcItem>, TOhlcItem> := TMycGenericConverter<TDataPoint<TOhlcItem>, TOhlcItem>.Create(
function( const Ohlc: TDataPoint<TOhlcItem> ): TOhlcItem
begin
Result := Ohlc.Data;
end );
strategy.Observers.Link(Ohlc);
OhlcPoint.Sender.Link(Ohlc);
var Closes: IMycIndicator<TOhlcItem, Double> := TMycGenericIndicator<TOhlcItem, Double>.Create( 0,
var Closes: IMycConverter<TOhlcItem, Double> := TMycGenericConverter<TOhlcItem, Double>.Create(
function( const Ohlc: TOhlcItem ): Double
begin
Result := Ohlc.Close;
end );
Ohlc.Observers.Link( Closes );
Ohlc.Sender.Link( Closes );
var Hull: IMycIndicator<Double, Double> := THullMovingAverage.Create( 50 );
var Hull: IMycConverter<Double, Double> := THullMovingAverage.Create( 250 );
Closes.Observers.Link( Hull );
Closes.Sender.Link( Hull );
Hull.Observers.Link(chart.CreateDoubleListener);
chart.AddDoubleSeries( Hull.Sender );
var done := ExecuteStrategy( Symbol, strategy );
var done := ExecuteStrategy( Symbol, OhlcPoint );
/////
@@ -205,7 +206,7 @@ begin
FProcessDone := TState.All([FProcessDone, done]);
strategy.Observers.Link(chart.CreateOhlcListener);
chart.AddOhlcSeries( OhlcPoint.Sender );
end;
procedure TForm1.TreeViewDblClick(Sender: TObject);
@@ -531,7 +532,7 @@ begin
end;
end );
dataProvider.Observers.Link( Processor );
dataProvider.Sender.Link( Processor );
Result := FServer.ProcessData( Symbol, terminated, dataProvider );
end;