Skip to main content

Optionale Handelsstrategie-Parameter

image-1655631860873.png

Handelsstrategien können einfacher benutzt werden, wenn statt statischer Code-Anpassung beim Durchlauf einer Strategie eine Vorauswahl durch den Nutzer erfolgen kann. Hierfür ist eine "Optionale Auswahlbox" (s.o.) verfügbar gemacht, die in der Strategie selbst individuell initialisiert werden kann mit Werte und auch individuell ausgewertet werden kann. Beispiele hierfür sind:

    Anzeige und Auswahl aus den verfügbaren Watchlisten auf denen die Strategie angewendet werden soll Anzeige und Auswahl aus den verfügbaren Marktsegmenten auf denen die Strategie angewendet werden soll Auswahl eines Detail-Levels für die Anzeige z.B. Log-Info, Log-Error, Log-Details

    Die Auswahlbox ist im Default leer und muss auch nicht benutzt werden. Um diese in der eigenen Strategie zu nutzen, muss lediglich eine SubRoutine "doInit" eingerichtet werden. Nachfolgend ein Beispiel für die Auswahl einer optionalen Watchliste:

    Initialisierungs-Routine "doInit" für die Auswahlbox

    procedure doInit;
    begin
      varWatchlists.InitStrings( varParamCombobox.Items, true);
      varParamCombobox.Items.Insert(0,'Kein Watchlisten-Filter');
      varParamCombobox.ItemIndex:=0;
      varParamCombobox.Enabled:=true;
    end;


    Nutzung der Nutzerauswahl in der Auswahlbox

    procedure doRun;
    var fCheckWatchlist: TWatchlist;
    begin
        varPanelStatus.Text:='Los gehts ... ';
        varPanelProgress.Progress.Max:=varStocks.Count;
        varPanelProgress.Progress.Min:=1;
        itLogItem:=nil;
    
        if (varParamCombobox.ItemIndex>=0) and (varParamCombobox.Items.Objects[varParamCombobox.ItemIndex]<>nil) then
          fCheckWatchlist:=varWatchlists.getItemWithName(varParamCombobox.Items[varParamCombobox.ItemIndex]) else
          fCheckWatchlist:=nil;
    
        for idxStock:=1 to varStocks.Count do if (varIsCanceled=false) then
        begin
          itStock:=varStocks.Items[idxStock-1];
          itBenchmarkStock:=varStocks.ItemISIN[getBenchmarkISIN];
          iPoints:=0;
          varPanelProgress.Progress.ShowGradient:=true;
          varPanelProgress.Progress.Position:=idxStock;
          if (idxStock mod 500=0) then
            varApplication.ProcessMessages;
    
          if (itStock.StockNetValues.Count>3) and
             (calcMarktkapitalisierung>0.01) and
             //(Segments.getAndToInternalNrAsBool(itStock.StockSegments, itSegment.Nr)) and
             ((fCheckWatchlist=nil) or (fCheckWatchlist.List.FindISIN(itStock.ISIN)))
          then
          begin
    
    
    


    Nutzung im Handelsstrategie-Studio

    Im Studio steht die Auswahlbox für die Entwicklung ebenfalls zur Verfügung. Um die Routine zu starten, muss einmalig der Button "Initialisierung" aufgerufen werden. Die Hauptroutine (hier im doRun) sollte aber auch damit umgehen können, wenn die Auswahlbox leer ist d.h. varParamCombobox.Count=0 oder varParamCombobox.ItemIndex=-1 keine aktuelle Auswahl besitzt.

    image-1655631869338.png