Data Types
This commit is contained in:
+54
-3
@@ -84,12 +84,15 @@ type
|
||||
StrategyButton: TSpeedButton;
|
||||
Strat2Button: TSpeedButton;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure StopButtonClick(Sender: TObject);
|
||||
procedure TreeViewDblClick(Sender: TObject);
|
||||
procedure AddWorkspaceActionExecute(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure Button2Click(Sender: TObject);
|
||||
procedure LogMemoChange(Sender: TObject);
|
||||
procedure Strat2ButtonClick(Sender: TObject);
|
||||
procedure TestActionExecute(Sender: TObject);
|
||||
procedure StrategyButtonClick(Sender: TObject);
|
||||
@@ -126,7 +129,8 @@ implementation
|
||||
|
||||
uses
|
||||
Myc.Data.Records,
|
||||
TestModule;
|
||||
TestModule,
|
||||
Strategy2;
|
||||
|
||||
{$R *.fmx}
|
||||
|
||||
@@ -296,6 +300,46 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TForm1.Button2Click(Sender: TObject);
|
||||
begin
|
||||
var Symbol := SelectedSymbol;
|
||||
if Symbol = '' then
|
||||
exit;
|
||||
|
||||
var terminated := TFlag.CreateObserver(FTerminate.Signal).State;
|
||||
|
||||
var ticker := TConverter.CreateTicker<TDataPoint<TOhlcItem>>;
|
||||
|
||||
var Layout := CurrLayout<TVertScrollBox>;
|
||||
if Layout = nil then
|
||||
exit;
|
||||
|
||||
var chart1 := TMycChart.Create(Self);
|
||||
AlignControl(chart1);
|
||||
chart1.Height := Layout.ChildrenRect.Width * 9 / 20;
|
||||
chart1.Lookback.Value := 50000;
|
||||
|
||||
var chart2 := TMycChart.Create(Self);
|
||||
AlignControl(chart2);
|
||||
chart2.Height := Layout.ChildrenRect.Width * 9 / 20;
|
||||
chart2.Lookback.Value := 50000;
|
||||
|
||||
var equity := Strategy2.CreateStrategy2(ticker.Producer, LogMemo.Lines, chart1, chart2);
|
||||
|
||||
var pnlChart := TMycChart.Create(Self);
|
||||
AlignControl(pnlChart);
|
||||
pnlChart.Height := Layout.ChildrenRect.Width * 9 / 24;
|
||||
pnlChart.Lookback.Value := 50000;
|
||||
|
||||
pnlChart.SetXAxisCounter<Double>(equity);
|
||||
|
||||
var panel := pnlChart.AddPanel;
|
||||
panel.AddDoubleSeries(equity, TAlphaColors.Blue, 3);
|
||||
|
||||
FProcessDone := FProcessDone + FServer.ProcessData(Symbol, terminated, ticker.Consumer);
|
||||
|
||||
end;
|
||||
|
||||
function TForm1.CreateStrategy2(Timeframe: TTimeframe): IConsumer<TDataPoint<TOhlcItem>>;
|
||||
type
|
||||
TSignal = record
|
||||
@@ -332,7 +376,7 @@ begin
|
||||
|
||||
var lastHull, lastSma: Double;
|
||||
|
||||
var conv := TConverter.Join<Double>([Ohlc.Field<Double>('Low'), Ohlc.Field<Double>('High'), Closes, ATR, Hull, Sma]);
|
||||
var conv := TConverter.Join<Double>(jmAll, [Ohlc.Field<Double>('Low'), Ohlc.Field<Double>('High'), Closes, ATR, Hull, Sma]);
|
||||
|
||||
var Signal :=
|
||||
TConverter<TArray<Double>, TSignal>.CreateConverter(
|
||||
@@ -477,7 +521,7 @@ begin
|
||||
|
||||
var mean := TConverter<TArray<Double>, Double>.CreateConverter(TMean.CreateMean());
|
||||
|
||||
TConverter.Join<Double>([Hull, Sma]).Chain<Double>(mean);
|
||||
TConverter.Join<Double>(jmAll, [Hull, Sma]).Chain<Double>(mean);
|
||||
|
||||
panel.AddDoubleSeries(mean.Producer, TAlphaColors.Blue, 5);
|
||||
|
||||
@@ -581,6 +625,12 @@ begin
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
procedure TForm1.LogMemoChange(Sender: TObject);
|
||||
begin
|
||||
if LogMemo.Lines.Count > 1000 then
|
||||
LogMemo.Lines.Clear;
|
||||
end;
|
||||
|
||||
function TForm1.SelectedSymbol: String;
|
||||
begin
|
||||
Result := '';
|
||||
@@ -690,6 +740,7 @@ begin
|
||||
// ExecuteStrategy(Symbol, timeframe, CreateStrategy2(timeframe));
|
||||
|
||||
var tstStrat := StrategyTest.CreateStrategy1(timeframe);
|
||||
|
||||
ExecuteStrategy(Symbol, timeframe, tstStrat.Consumer);
|
||||
|
||||
var Layout := CurrLayout<TVertScrollBox>;
|
||||
|
||||
Reference in New Issue
Block a user