Testing TValue as Params

This commit is contained in:
Michael Schimmel
2025-07-28 00:55:39 +02:00
parent 1ddc295c9d
commit 75675b8dc1
4 changed files with 107 additions and 145 deletions
+3 -25
View File
@@ -293,6 +293,7 @@ end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Test1(LogMemo.Lines);
end;
function TForm1.CreateStrategy2(Timeframe: TTimeframe): IConsumer<TDataPoint<TOhlcItem>>;
@@ -321,19 +322,7 @@ begin
var Lowest: Double := Double.MaxValue;
var Highest: Double := Double.MinValue;
var ATR :=
Ohlc
.Chain<TATR.TArgs>(
TConverter<TOhlcItem, TATR.TArgs>.CreateConverter(
function(const Ohlc: TOhlcItem): TATR.TArgs
begin
Result.Close := Ohlc.Close;
Result.High := Ohlc.High;
Result.Low := Ohlc.Low;
end
))
.Chain<Double>(TATR.CreateATR(50))
.MakeParallel;
var ATR := Ohlc.Chain<Double>(TATR.CreateATR(50)).MakeParallel;
// next stage
@@ -638,18 +627,7 @@ begin
var Rsi := Closes.Chain<Double>(TRSI.CreateRSI(14));
var Macd := Closes.MakeParallel.Chain<TMacd.TResult>(TMACD.CreateMACD(12, 26, 9));
var Stoch :=
Ohlc
.Chain<TStochastic.TArgs>(
TConverter<TOhlcItem, TStochastic.TArgs>.CreateConverter(
function(const Ohlc: TOhlcItem): TStochastic.TArgs
begin
Result.Close := Ohlc.Close;
Result.High := Ohlc.High;
Result.Low := Ohlc.Low;
end
))
.Chain<TStochastic.TResult>(TStochastic.CreateStochastic(14, 3));
var Stoch := Ohlc.Chain<TStochastic.TResult>(TStochastic.CreateStochastic(14, 3));
chart.SetXAxisSeries(timeframe, Timestamps);