DataStream updated
This commit is contained in:
+13
-31
@@ -102,11 +102,8 @@ type
|
||||
private
|
||||
FOnEvent: TNotifyEvent;
|
||||
{ Private declarations }
|
||||
{$ifdef TICKDATA}
|
||||
FServer: IDataServer<TAuraAskBidFileItem>;
|
||||
{$else}
|
||||
FServer: IDataServer<TOhlcItem>;
|
||||
{$endif}
|
||||
FFileCache: IDataFileCache<TArray<TBytes>>;
|
||||
FServer: IDataServer;
|
||||
FSymbols: TFuture<TArray<String>>;
|
||||
FTerminate: TEvent;
|
||||
FProcessDone: TState;
|
||||
@@ -228,10 +225,11 @@ begin
|
||||
FTerminate := TEvent.CreateEvent;
|
||||
|
||||
// Create an instance of the TAuraTABFileServer. The server can be reused for multiple stream creations. [364]
|
||||
FFileCache := TDataFileCache<TArray<TBytes>>.Create;
|
||||
{$ifdef TICKDATA}
|
||||
FServer := TAskBidFileServer.Create('\\COFFEE\TickData\Pepperstone');
|
||||
FServer := TTickFileServer.Create(FFileCache, '\\COFFEE\TickData\Pepperstone');
|
||||
{$else}
|
||||
FServer := TM1FileServer.Create('\\COFFEE\TickData\Pepperstone');
|
||||
FServer := TM1FileServer.Create(FFileCache, '\\COFFEE\TickData\Pepperstone');
|
||||
{$endif}
|
||||
|
||||
SymbolsComboBox.Enabled := false;
|
||||
@@ -339,7 +337,7 @@ begin
|
||||
var panel := pnlChart.AddPanel;
|
||||
panel.AddDoubleSeries(equity, TAlphaColors.Blue, 3);
|
||||
|
||||
FProcessDone := FProcessDone + FServer.ProcessData(Symbol, terminated, ticker.Consumer);
|
||||
FProcessDone := FProcessDone + (FServer as IM1FileServer).ProcessData(Symbol, terminated, ticker.Consumer);
|
||||
|
||||
end;
|
||||
|
||||
@@ -587,44 +585,28 @@ begin
|
||||
var terminated := TFlag.CreateObserver(FTerminate.Signal).State;
|
||||
|
||||
{$ifdef TICKDATA}
|
||||
var ticker := TConverter.CreateTicker<TDataPoint<TAskBidItem>>;
|
||||
var ticker := TConverter.CreateTicker<TDataPoint<TTickRecord>>;
|
||||
|
||||
var lastPrice :=
|
||||
ticker.Chain<TDataPoint<Double>>(
|
||||
function(const Tick: TDataPoint<TAskBidItem>): TDataPoint<Double>
|
||||
ticker.Producer.Chain<TDataPoint<Double>>(
|
||||
function(const Tick: TDataPoint<TTickRecord>): TDataPoint<Double>
|
||||
begin
|
||||
Result.Time := Tick.Time;
|
||||
Result.Data := 0.5 * (Tick.Data.Ask + Tick.Data.Bid);
|
||||
end
|
||||
);
|
||||
|
||||
var OhlcPoint := lastPrice.Chain<TDataPoint<TOhlcItem>>(TConverter.CreateTickAggregation(Timeframe));
|
||||
OhlcPoint.Producer.Link(Consumer);
|
||||
var OhlcPoint := lastPrice.Chain<TDataPoint<TOhlcItem>>(TTradeConverter.CreateTickAggregation(Timeframe));
|
||||
OhlcPoint.CreateLink(Consumer);
|
||||
|
||||
var Producer :=
|
||||
TConverter<TArray<TDataPoint<TAuraAskBidFileItem>>, TArray<TDataPoint<TAskBidItem>>>.CreateGeneric(
|
||||
function(const Values: TArray<TDataPoint<TAuraAskBidFileItem>>): TArray<TDataPoint<TAskBidItem>>
|
||||
begin
|
||||
SetLength(Result, Length(Values));
|
||||
for var i := 0 to High(Result) do
|
||||
begin
|
||||
Result[i].Time := Values[i].Time;
|
||||
Result[i].Data.Ask := Values[i].Data.Ask;
|
||||
Result[i].Data.Bid := Values[i].Data.Bid;
|
||||
end;
|
||||
end
|
||||
);
|
||||
|
||||
Producer.Producer.Link(ticker);
|
||||
|
||||
FProcessDone := FProcessDone + FServer.ProcessData(Symbol, terminated, Producer);
|
||||
FProcessDone := FProcessDone + (FServer as ITickFileServer).ProcessData(Symbol, terminated, ticker.Consumer);
|
||||
{$else}
|
||||
|
||||
var ticker := TConverter.CreateTicker<TDataPoint<TOhlcItem>>;
|
||||
|
||||
ticker.Producer.Chain(Consumer);
|
||||
|
||||
FProcessDone := FProcessDone + FServer.ProcessData(Symbol, terminated, ticker.Consumer);
|
||||
FProcessDone := FProcessDone + (FServer as IM1FileServer).ProcessData(Symbol, terminated, ticker.Consumer);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user