# Verfügbare Variablen und Datenstrukturen

<div class="table-wrap" id="bkmrk-variable-typ-referen"><table class="wrapped relative-table confluenceTable tablesorter tablesorter-default" role="grid" style="width: 126.667%;"><colgroup><col style="width: 2.47217%;"></col><col style="width: 15.8219%;"></col><col style="width: 11.0012%;"></col><col style="width: 22.7403%;"></col><col style="width: 47.9638%;"></col></colgroup><thead><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label=": No sort applied, activate to apply an ascending sort" aria-sort="none" class="numberingColumn confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">  
</div></th><th aria-disabled="false" aria-label="Variable: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Variable</div></th><th aria-disabled="false" aria-label="Typ-Referenz: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" colspan="1" data-column="2" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Typ-Referenz</div></th><th aria-disabled="false" aria-label="Hintergründe: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="3" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Hintergründe</div></th><th aria-disabled="false" aria-label="Beispiel-Zugriffe: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="4" role="columnheader" scope="col" tabindex="0"><div class="tablesorter-header-inner">Beispiel-Zugriffe</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="numberingColumn confluenceTd">1</td><td class="confluenceTd">varApplication</td><td class="confluenceTd" colspan="1">[TApplication](https://lazarus-ccr.sourceforge.io/docs/lcl/forms/tapplication.html)</td><td class="confluenceTd">Zugriff auf das Applikationsobjekt der Anwendung wie z.B.

- Application.ProcessMessages (Abarbeitung von UI-Refreshs)

</td><td class="confluenceTd">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd">2</td><td class="confluenceTd">varParamCombobox</td><td class="confluenceTd" colspan="1">TAdvOfficeComboBox</td><td class="confluenceTd">Zugriff auf eine Auswahlbox, die für den Nutzer angezeigt wird, um für das Script Auswahloptionen für den Nutzer zur Verfügung zu stellen. In der Susan-Levermann-Strategie wird über diese eine Liste der verfügbaren Watchlisten angezeigt und nutzbar gemacht. Für Nutzer der Strategie steht der entsprechende Source-Code zur Verfügung.  
z.B. für

- Watchlisten
- Depots
- Marktsegmente

</td><td class="confluenceTd">Auswahlbox für den Nutzer füllen mit allen Watchlisten-Einträgen, danach mit allen MarktSegment-Einträgen und final als ersten Eintrag (Index=0) "Kein-Watchlisten-Filter" einfügen.

```
varParamCombobox.Items.Clear;
for lIx:=1 to varWatchlists.Count do
    varParamCombobox.Items.AddObject('Watchliste: '+varWatchlists.Items[lIx-1].Displayname, varWatchlists.Items[lIx-1]);

for lIx:=1 to varSegments.Count do
   varParamCombobox.Items.AddObject('Markt: '+varSegments.Items[lIx-1].Displayname, varSegments.Items[lIx-1]);

varParamCombobox.Items.Insert(0,'Kein Watchlisten-Filter');
varParamCombobox.ItemIndex:=0;
varParamCombobox.Enabled:=true;
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">3</td><td class="confluenceTd" colspan="1">varParamCheckbox</td><td class="confluenceTd" colspan="1">TAdvOfficeCheckBox</td><td class="confluenceTd" colspan="1">Zugriff auf eine Checkbox, die für den Nutzer angezeigt wird, um für das Script Auswahloptionen für den Nutzer zur Verfügung zu stellen. In der Susan-Levermann-Strategie wird diese für "Detaillierte Konfiguration" als Option genutzt.</td><td class="confluenceTd" colspan="1">Aktiviere überhaupt die Auswahlbox für den Nutzer. Im Standard wird die Auswahlbox überhaupt nicht angezeigt.  
Hinweis: Dies sollte vorzugsweise in einer "doInit-Methode" passieren.

```
  varParamCheckbox.Caption:='Frage Strategie-Parameter individuell ab ...';
  varParamCheckbox.Enabled:=true;
  varParamCheckbox.Visible:=true;
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">4</td><td class="confluenceTd" colspan="1">varLog</td><td class="confluenceTd" colspan="1">TAdvListView</td><td class="confluenceTd" colspan="1">Die Primärausgabe erfolgt über das varLog-Objekt vom Typ TAdvListview. Es ist eine Komponente zur hierarchischen, gruppierten Tabellenausgabe von Informationen. Die Objekte besitzt Columns und eine GroupView-Eigenschaft zur automatischen Gruppierung von Einträgen.

Um ein neuen Log-Eintrag zu erzeugen, kann über varLog.Items.Add eine neue Zeile eingefügt werden. Das dabei zurückgegebene Objekt ist vom Typ TListItem, was eine Caption, eine GroupID, ImageIndex, Checked-Eigenschaft besitzt.

</td><td class="confluenceTd" colspan="1">Kopfzeile der Logausgabe gestalten:

```
(* BeginUpdate/EndUpdate sollte aus Performancegründen zwingend genutzt werden! *)
varLog.BeginUpdate;
varLog.Items.Clear;

(* Header für das Logging passend vorbereiten *)
varLog.Columns.Clear;
lColumn:=varLog.Columns.Add; lColumn.Caption:='Name'; lColumn.Width:=350;
lColumn:=varLog.Columns.Add; lColumn.Caption:='Alter Wert'; lColumn.Width:=200;
lColumn:=varLog.Columns.Add; lColumn.Caption:='Neuer Wert'; lColumn.Width:=200;

varLog.GroupView:=false;
varLog.EndUpdate;
```

Konkretes Logging:

```
function doLogWithOneSubMessage( logMessage, logSubMessage ): TListItem;
begin
  result:=varLog.Items.Add;
  with result as TListItem do
  begin
    Caption:=logMessage;
    subitems.add( logSubMessage );
    groupID:=0;
  end;
end;
```

Automatische Sortierung:

```
varLog.SortColumn:=pColumn+1;
varLog.SortDirection:=pSortDirection;
varLog.SortType:=3;
varLog.Sort;
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">5</td><td class="confluenceTd" colspan="1">varPanelStatus</td><td class="confluenceTd" colspan="1">TAdvOfficeStatusPanel</td><td class="confluenceTd" colspan="1">Status-Updates für den Nutzer über die Statuszeile. Dabei können primär Textnachrichten über die varPanelStatus.Text Eigenschaft ausgegeben werden.-</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">6</td><td class="confluenceTd" colspan="1">varPanelProgress</td><td class="confluenceTd" colspan="1">TAdvOfficeStatusPanel</td><td class="confluenceTd" colspan="1">Status-Updates für den Nutzer über die Statuszeile. Dabei liegt der Fokus auf der Fortschrittsanzeige.</td><td class="confluenceTd" colspan="1">```
varPanelProgress.Progress.Max:=varStocks.Count;
varPanelProgress.Progress.Min:=1;
varPanelProgress.Progress.ShowGradient:=true;
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">7</td><td class="confluenceTd" colspan="1">varIsCanceled</td><td class="confluenceTd" colspan="1">Boolean</td><td class="confluenceTd" colspan="1">Der Nutzer kann ein Script in der Berechnung abbrechen. Dabei wird das Script nicht hart abgebrochen, sondern zunächst nur die Variable auf "true" gesetzt. Innerhalb des Scripts sollte diese daher immer abgefragt werden, um einen geordneten Abbruch zu realisieren.</td><td class="confluenceTd" colspan="1">Haupt-Iteration über alle Aktien, wobei aber bei jeder Iteration explizit die Abbruchsvariable "varIsCanceled" geprüft wird, um geordnet abzubrechen:

```
   (* Durchlauf alle Titel zur Prüfung *)
    for idxStock:=1 to varStocks.Count do if (not varIsCanceled) then
    begin
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">8</td><td class="confluenceTd" colspan="1">varStocks</td><td class="confluenceTd" colspan="1">[TStocks](https://www.shareholder24.de/docs/class_t_stocks.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle Assets/Stocks in ShareHolder. Der Zugriff kann dabei sowohl lesend, als auch schreibend erfolgen. So können z.B. automatisiert Namensanpassungen vorgenommen werden.</td><td class="confluenceTd" colspan="1">Iteration über alle Stocks:

```
(* Durchlauf alle Titel zur Prüfung *)
 for idxStock:=1 to varStocks.Count do if (varIsCanceled=false) then
 begin
     itStock:=varStocks.Items[idxStock-1];
```

Zugriff auf Stock-Variablen, um diese automatisiert zu verändern:

```
(* Zugriff entspricht itStock.StockVariables.ItemsName['RIC[isin]']; Über die ID ist es jedoch "stabiler" *)

lStockVar:=lStock.StockVariables.ItemsNr[12];
if (lStockVar<>nil) then
   begin
...
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">9</td><td class="confluenceTd" colspan="1">varIndicators</td><td class="confluenceTd" colspan="1">[TIndicatorGroups ](https://www.shareholder24.de/docs/class_t_indicator_groups.html)</td><td class="confluenceTd" colspan="1">Mittels Indicator.Parameter.Items\[1\].Wert:=10; könnten die Parameter des Indikators verändert werden. Die Bedeutung der Parameter muss pro Indikator nachgeschaut werden z.B. über Einstellungen / Indikatorengruppen / Doppelklick auf den Indikator.</td><td class="confluenceTd" colspan="1">```
   itIndicator:=varIndicators.CreateIndicatorWithTypeID(cRSL);

```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">10</td><td class="confluenceTd" colspan="1">varSegments</td><td class="confluenceTd" colspan="1">[TSegments ](https://www.shareholder24.de/docs/class_t_segments.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle Marktsegmente z.B. DAX, MDAX etc.</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">11</td><td class="confluenceTd" colspan="1">varTransactions</td><td class="confluenceTd" colspan="1">[TTransactions ](https://www.shareholder24.de/docs/class_t_transactions.html)</td><td class="confluenceTd" colspan="1">  
</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">12</td><td class="confluenceTd" colspan="1">varWatchlists</td><td class="confluenceTd" colspan="1">[TWatchlists](https://www.shareholder24.de/docs/class_t_watchlists.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die internen Watchlisten. </td><td class="confluenceTd" colspan="1">Neue Watchliste erzeugen, wenn nicht zuvor angelegt mit dem Namen "Wa:ETF-Momentum-Sortlist"

```
if (fFirst) and (fUseSeparatWL) then
begin
  fWatchlist:=varWatchlists.FindOrCreate('Wa:ETF-Momentum-Sortlist');
  fWatchlist.Clear();
  fFirst:=false;
end;
```

Eintrag hinzufügen

```
if (fWatchlist<>nil) then
  begin
     if (not fUseSeparatWL) then
       fWatchItem:=fWatchlist.List.FindISIN(fItem.SubItems[pISINColumn]) else
     begin
       fWatchItem:=TWatchListItem.Create(itStock);
       fWatchlist.List.Add(fWatchItem);
     end;

     if (fWatchItem<>nil) then
     begin
        fWatchItem.CompareDate:=Now;
        //itWatchItem.Comment:='..';
        fWatchItem.PosNr:=StrToFloat(fItem.SubItems[pSumColumn]);
     end;
  end;
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">13</td><td class="confluenceTd" colspan="1">varDepot</td><td class="confluenceTd" colspan="1">[TCalculatedDepotItems ](https://www.shareholder24.de/docs/class_t_calculated_depot_items.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle berechneten Depot-Positionen mit Stückzahl, gemittelten Preis, letzter Transaktion etc.</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">14</td><td class="confluenceTd" colspan="1">varStops</td><td class="confluenceTd" colspan="1">[TStopRates](https://www.shareholder24.de/docs/class_t_stop_rates.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle definierten Stopps im Programm für Titel. Dabei enthält die Liste nur definierte Stopps d.h. Titel müssen keine Stopps haben. Stopps sind unabhängig von Depotpositionen.</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">15</td><td class="confluenceTd" colspan="1">varProgramSettings</td><td class="confluenceTd" colspan="1">[TProgramSettings ](https://www.shareholder24.de/docs/class_t_program_settings.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle internen Programmeinstellungen wie Schriftgrößen, Kalkulationsbasis etc.</td><td class="confluenceTd" colspan="1">Verwende die offizielle Programmeinstellung für die KGV-Berechnung d.h. aktuelles Basisjahr (0), kommendes Jahr etc.

```
function calcPointsKGVRAW: Double;
begin
  Result:=itStock.KGV(varProgramSettings.ErgBasis);
end;
```

</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">16</td><td class="confluenceTd" colspan="1">varStockExchanges</td><td class="confluenceTd" colspan="1">[TStockExchanges](https://www.shareholder24.de/docs/class_t_stock_exchanges.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die definierten Börsen wie F, Nasdaq, Xetra</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">17</td><td class="confluenceTd" colspan="1">varINetVars</td><td class="confluenceTd" colspan="1">[TINetVars](https://www.shareholder24.de/docs/class_t_i_net_vars.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die definierten Aktualisierungs-Internetvariablen</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">18</td><td class="confluenceTd" colspan="1">varINetAddrs</td><td class="confluenceTd" colspan="1">[TINetAddrs](https://www.shareholder24.de/docs/class_t_i_net_addrs.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die definierten Aktualisierungs-Internetadressen</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">19</td><td class="confluenceTd" colspan="1">varAssets</td><td class="confluenceTd" colspan="1">[TAssets](https://www.shareholder24.de/docs/class_t_assets.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die definierten Asset-Klassen</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">20</td><td class="confluenceTd" colspan="1">varStrategy</td><td class="confluenceTd" colspan="1">[TStrategy](https://www.shareholder24.de/docs/class_t_strategy.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle definierten Strategien</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">21</td><td class="confluenceTd" colspan="1">varNNetze</td><td class="confluenceTd" colspan="1"><a rel="nofollow">TNets</a></td><td class="confluenceTd" colspan="1">Zugriff auf alle definierten Vorhersage-Modelle</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">22</td><td class="confluenceTd" colspan="1">varAccounts</td><td class="confluenceTd" colspan="1">[TAccounts](https://www.shareholder24.de/docs/class_t_accounts.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle Konten</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">23</td><td class="confluenceTd" colspan="1">varImpFormate</td><td class="confluenceTd" colspan="1">[TImpFormats ](https://www.shareholder24.de/docs/class_t_imp_formats.html)</td><td class="confluenceTd" colspan="1">Zugriff auf alle Importformate</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">24</td><td class="confluenceTd" colspan="1">varTradeMethods</td><td class="confluenceTd" colspan="1">[TTradeMethods](https://www.shareholder24.de/docs/class_t_trade_methods.html)</td><td class="confluenceTd" colspan="1">  
</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">25</td><td class="confluenceTd" colspan="1">varAssessments</td><td class="confluenceTd" colspan="1">[TAssessments](https://www.shareholder24.de/docs/class_t_assessments.html)</td><td class="confluenceTd" colspan="1">  
</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">26</td><td class="confluenceTd" colspan="1">varSparplaene</td><td class="confluenceTd" colspan="1">[TDepotSavingPlans ](https://www.shareholder24.de/docs/class_t_depot_saving_plans.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die Sparpläne</td><td class="confluenceTd" colspan="1">  
</td></tr><tr role="row"><td class="numberingColumn confluenceTd" colspan="1">27</td><td class="confluenceTd" colspan="1">varINetUpdateGroups</td><td class="confluenceTd" colspan="1">[TINetUpdateGroups](https://www.shareholder24.de/docs/class_t_i_net_update_groups.html)</td><td class="confluenceTd" colspan="1">Zugriff auf die Kursaktualisierungsgruppen</td><td class="confluenceTd" colspan="1">  
</td></tr></tbody></table>

</div>## Registrierung von Variablen und Kontext im Detail für das Scripting-Studio

Version 19.3.2

```PASCAL
 with Scripter do
  begin
    LibOptions.SearchPath.Add(IDEEngine.BasePath);
    LibOptions.SourceFileExt := '.script';
    LibOptions.CompiledFileExt := '.psc';

    Scripter.OptionExplicit := false;
    logList.Items.Clear;
    Scripter.AddObject('varApplication', Application);
    Scripter.AddObject('varParamCombobox', fAdvCombobox);
    Scripter.AddObject('varParamCheckbox', fAdvCheckbox);


    Scripter.DefineClassByRTTI(TApplication);
    Scripter.DefineClassByRTTI(TBasisobject); // ,roInclude,false,'TBasisObject',[mvPublic,mvPublished]
    Scripter.DefineClassByRTTI(TAdvListView);
    Scripter.DefineClassByRTTI(TListItems);
    Scripter.DefineClassByRTTI(TStrings);
    Scripter.DefineClassByRTTI(TListItem);
    Scripter.DefineClassByRTTI(TListGroup);
    Scripter.DefineClassByRTTI(TListGroups);
    Scripter.DefineClassByRTTI(TStringList);


    Scripter.AddObject('varLog', flogList);
    Scripter.DefineClassByRTTI(TListColumns);
    Scripter.DefineClassByRTTI(TListColumn);
    Scripter.AddObject('varPanelStatus', fStatusPanel);
    Scripter.AddObject('varPanelProgress', fProgressPanel);
    Scripter.AddVariable('varIsCanceled', fIsCanceled);

    Scripter.DefineClassByRTTI(TStocks);
    Scripter.DefineClassByRTTI(TAsset);
    Scripter.DefineClassByRTTI(TAssets);
    Scripter.DefineClassByRTTI(TAutoImports);
    Scripter.DefineClassByRTTI(TCalculatedDepotAccount);
    Scripter.DefineClassByRTTI(TCalculatedDepotAccounts);
    Scripter.DefineClassByRTTI(TCalculatedDepotItem);
    Scripter.DefineClassByRTTI(TCalculatedDepotItems);
    Scripter.DefineClassByRTTI(TCandle);
    Scripter.DefineClassByRTTI(TCandleFormation);
    Scripter.DefineClassByRTTI(TChartindicator);
    Scripter.DefineClassByRTTI(TDepotSavingPlan);
    Scripter.DefineClassByRTTI(TDepotSavingPlans);
    Scripter.DefineClassByRTTI(TDynamicFilter);
    Scripter.DefineClassByRTTI(TDynamicFilterCondition);
    Scripter.DefineClassByRTTI(TDynamicFilterConditions);
    Scripter.DefineClassByRTTI(TDynamicFilterConditionTree);
    Scripter.DefineClassByRTTI(TDynamicFilterConditionTrees);
    Scripter.DefineClassByRTTI(TDynamicFilterResult);
    Scripter.DefineClassByRTTI(TDynamicFilterResults);
    Scripter.DefineClassByRTTI(TDynamicFilters);
    Scripter.DefineClassByRTTI(TEnhancedList);
    Scripter.DefineClassByRTTI(TFilterTaipan);
    Scripter.DefineClassByRTTI(TFilterTaipanItem);
    Scripter.DefineClassByRTTI(THelperAverage);
    Scripter.DefineClassByRTTI(THTMLParser);
    Scripter.DefineClassByRTTI(TIAroon);
    Scripter.DefineClassByRTTI(TIBollinger);
    Scripter.DefineClassByRTTI(TICandleFormationen);
    Scripter.DefineClassByRTTI(TICandleFormationenCache);
    Scripter.DefineClassByRTTI(TICCI);
    Scripter.DefineClassByRTTI(TIChaikin);
    Scripter.DefineClassByRTTI(TICoppock);
    Scripter.DefineClassByRTTI(TIDMI);
    Scripter.DefineClassByRTTI(TIDSStochastik);
    Scripter.DefineClassByRTTI(TIForceIndex);
    Scripter.DefineClassByRTTI(TIGDEMA);
    Scripter.DefineClassByRTTI(TIGDUmsatz);
    Scripter.DefineClassByRTTI(TIHistVol);
    Scripter.DefineClassByRTTI(TIMACD);
    Scripter.DefineClassByRTTI(TIMFI);
    Scripter.DefineClassByRTTI(TIMomentum);
    Scripter.DefineClassByRTTI(TImpFormat);
    Scripter.DefineClassByRTTI(TImpFormats);
    Scripter.DefineClassByRTTI(TIndicator);
    Scripter.DefineClassByRTTI(TIndicatorGroup);
    Scripter.DefineClassByRTTI(TIndicatorGroups);
    Scripter.DefineClassByRTTI(TIndicatorParam);
    Scripter.DefineClassByRTTI(TIndicatorParams);
    Scripter.DefineClassByRTTI(TIndicatorSignals);
    Scripter.DefineClassByRTTI(TINegativeVolumeIndex);
    Scripter.DefineClassByRTTI(TInetAddr);
    Scripter.DefineClassByRTTI(TINetAddrs);
    Scripter.DefineClassByRTTI(TINetUpdateGroup);
    Scripter.DefineClassByRTTI(TINetUpdateGroups);
    Scripter.DefineClassByRTTI(TINetVar);
    Scripter.DefineClassByRTTI(TINetVars);
    Scripter.DefineClassByRTTI(TINewHigh);
    Scripter.DefineClassByRTTI(TINewLow);
    Scripter.DefineClassByRTTI(TINNKorrelation);
    Scripter.DefineClassByRTTI(TINNPrognose);
    Scripter.DefineClassByRTTI(TInternetProperties);
    Scripter.DefineClassByRTTI(TIntSignalIndicatorCache);
    Scripter.DefineClassByRTTI(TIOnBalanceVolume);
    Scripter.DefineClassByRTTI(TIPFE);
    Scripter.DefineClassByRTTI(TIPositiveVolumeIndex);
    Scripter.DefineClassByRTTI(TIPSAR);
    Scripter.DefineClassByRTTI(TIPvt);
    Scripter.DefineClassByRTTI(TIRAVI);
    Scripter.DefineClassByRTTI(TIRMI);
    Scripter.DefineClassByRTTI(TIRSI);
    Scripter.DefineClassByRTTI(TIRSL);
    Scripter.DefineClassByRTTI(TIRWI);
    Scripter.DefineClassByRTTI(TISignalIndicator);
    Scripter.DefineClassByRTTI(TISignalIndicatorCache);
    Scripter.DefineClassByRTTI(TISignalIndicators);
    Scripter.DefineClassByRTTI(TIStdDev);
    Scripter.DefineClassByRTTI(TIStochastik);
    Scripter.DefineClassByRTTI(TITrix);
    Scripter.DefineClassByRTTI(TITRWinkel);
    Scripter.DefineClassByRTTI(TITSF);
    Scripter.DefineClassByRTTI(TIVHF);
    Scripter.DefineClassByRTTI(TIVolumeNotis);
    Scripter.DefineClassByRTTI(TIVolumePriceTrend);
    Scripter.DefineClassByRTTI(TIWilderVol);
    Scripter.DefineClassByRTTI(TParamEnhancedList);
    Scripter.DefineClassByRTTI(TProfitStop);
    Scripter.DefineClassByRTTI(TProgramSettings);
    Scripter.DefineClassByRTTI(TProperties);
    Scripter.DefineClassByRTTI(TSegment);
    Scripter.DefineClassByRTTI(TSegments);
    Scripter.DefineClassByRTTI(TSignalItem);
    Scripter.DefineClassByRTTI(TSplit);
    Scripter.DefineClassByRTTI(TSplits);
    Scripter.DefineClassByRTTI(TStock);
    Scripter.DefineClassByRTTI(TStockExchange);
    Scripter.DefineClassByRTTI(TStockExchanges);
    Scripter.DefineClassByRTTI(TStockNetValue);
    Scripter.DefineClassByRTTI(TStockNetValues);
    Scripter.DefineClassByRTTI(TStockNews);
    Scripter.DefineClassByRTTI(TStockNewsList);
    Scripter.DefineClassByRTTI(TStockProfile);
    Scripter.DefineClassByRTTI(TStockProfiles);
    Scripter.DefineClassByRTTI(TStocks);
    Scripter.DefineClassByRTTI(TStockVariable);
    Scripter.DefineClassByRTTI(TStockVariables);
    Scripter.DefineClassByRTTI(TStopRate);
    Scripter.DefineClassByRTTI(TStopRates);
    Scripter.DefineClassByRTTI(TStrategy);
    Scripter.DefineClassByRTTI(TStringParser);
    Scripter.DefineClassByRTTI(TTaipanCatalogItem);
    Scripter.DefineClassByRTTI(TTaipanCatalogItems);
    Scripter.DefineClassByRTTI(TTradeMethod);
    Scripter.DefineClassByRTTI(TTradeMethods);
    Scripter.DefineClassByRTTI(TTradingSystem);
    Scripter.DefineClassByRTTI(TTradingSystemMetricHelper);
    Scripter.DefineClassByRTTI(TTradingSystemMetrics);
    Scripter.DefineClassByRTTI(TTradingSystemThread);
    Scripter.DefineClassByRTTI(TTradingSystemTrades);
    Scripter.DefineClassByRTTI(TTrailingStop);
    Scripter.DefineClassByRTTI(TWatchlist);
    Scripter.DefineClassByRTTI(TWatchlistItem);
    Scripter.DefineClassByRTTI(TWatchlistItems);
    Scripter.DefineClassByRTTI(TWatchlists);
    Scripter.DefineClassByRTTI(THistoryItem);
    Scripter.DefineClassByRTTI(TKurse);
    Scripter.AddObject('varStocks', Stocks);

    Scripter.AddConstant('ctTrendfolger', ctTrendfolger);
    Scripter.AddConstant('typMA', typMA);
    Scripter.AddConstant('cRMI', cRMI);
    Scripter.AddConstant('cCandlesticks', cCandlesticks);
    Scripter.AddConstant('cMA', cMA);
    Scripter.AddConstant('cBollinger', cBollinger);
    Scripter.AddConstant('cPSAR', cPSAR);
    Scripter.AddConstant('cGDUmsatz', cGDUmsatz);
    Scripter.AddConstant('cMomentum', cMomentum);
    Scripter.AddConstant('cRSI', cRSI);
    Scripter.AddConstant('cStochastik', cStochastik);
    Scripter.AddConstant('cChaikin', cChaikin);
    Scripter.AddConstant('cDSStochastik', cDSStochastik);
    Scripter.AddConstant('cMFI', cMFI);
    Scripter.AddConstant('cCoppock', cCoppock);
    Scripter.AddConstant('cRSL', cRSL);
    Scripter.AddConstant('cMACD', cMACD);
    Scripter.AddConstant('cTRIX', cTRIX);
    Scripter.AddConstant('cCCI', cCCI);
    Scripter.AddConstant('cRMI', cRMI);
    Scripter.AddConstant('cPFE', cPFE);
    Scripter.AddConstant('cTSF', cTSF);
    Scripter.AddConstant('cPVT', cPVT);
    Scripter.AddConstant('cNewHigh', cNewHigh);
    Scripter.AddConstant('cNewLow', cNewLow);
    Scripter.AddConstant('cStdDev', cStdDev);
    Scripter.AddConstant('cHistVol', cHistVol);
    Scripter.AddConstant('cVHF', cVHF);
    Scripter.AddConstant('cWilderVOl', cWilderVOl);
    Scripter.AddConstant('cADX', cADX);
    Scripter.AddConstant('cRAVI', cRAVI);
    Scripter.AddConstant('cTRWinkel', cTRWinkel);
    Scripter.AddConstant('cRWI', cRWI);
    Scripter.AddConstant('cAroon', cAroon);
    Scripter.AddConstant('cNNKorrelation', cNNKorrelation);
    Scripter.AddConstant('cNNPrognose', cNNPrognose);
    Scripter.AddConstant('cForceIndex', cForceIndex);
    Scripter.AddConstant('cOnBalanceVolume', cOnBalanceVolume);
    Scripter.AddConstant('cVolumePriceTrend', cVolumePriceTrend);
    Scripter.AddConstant('cNegativeVolumeIndex', cNegativeVolumeIndex);
    Scripter.AddConstant('cPositivVolumeIndex', cPositivVolumeIndex);
    Scripter.AddConstant('cVolumeNotisV', cVolumeNotisV);

    Scripter.DefineClassByRTTI(TIndicator);
    Scripter.DefineClassByRTTI(TChartindicator);
    Scripter.DefineClassByRTTI(TISignalIndicator);
    Scripter.DefineClassByRTTI(TIRMI);
    Scripter.DefineClassByRTTI(TIndicatorGroups);
    Scripter.DefineClassByRTTI(TIndicatorParams);
    Scripter.DefineClassByRTTI(TIndicatorParam);
    Scripter.DefineClassByRTTI(TIndicatorSignals);
    Scripter.AddObject('varIndicators', IndicatorGroups);

    Scripter.DefineClassByRTTI(TSegments);
    Scripter.DefineClassByRTTI(TSegment);
    Scripter.AddObject('varSegments', Segments);

    Scripter.DefineClassByRTTI(TTransaction);
    Scripter.DefineClassByRTTI(TTransactions);
    Scripter.DefineClassByRTTI(TAssessments);
    Scripter.AddObject('varTransactions', Transactions);


    Scripter.DefineClassByRTTI(TWatchlist);
    Scripter.DefineClassByRTTI(TWatchlists);
    Scripter.DefineClassByRTTI(TWatchlistItems);
    Scripter.DefineClassByRTTI(TWatchlistItem);
    Scripter.AddObject('varWatchlists', Watchlists);

    Scripter.DefineClassByRTTI(TCalculatedDepotItems);
    Scripter.DefineClassByRTTI(TCalculatedDepotItem);
    Scripter.AddObject('varDepot', CalculatedDepotItems);
    Scripter.DefineClassByRTTI(TStoprate);
    Scripter.AddObject('varStops', StopRates);
    Scripter.AddObject('varProgramSettings', ProgramSettings);

    Scripter.AddObject('varStockExchanges', StockExchanges);
    Scripter.AddObject('varINetVars', INetVars);
    Scripter.AddObject('varINetAddrs', INetAddrs);
    Scripter.AddObject('varAssets', Assets);
    Scripter.AddObject('varStrategy', Strategy);
    Scripter.AddObject('varNNetze', NNetze);
    Scripter.AddObject('varAccounts', Accounts);
    Scripter.AddObject('varImpFormate', ImpFormate);
    Scripter.AddObject('varTradeMethods', TradeMethods);
    Scripter.AddObject('varAssessments', Assessments);
    Scripter.AddObject('varSparplaene', Sparplaene);
    Scripter.AddObject('varINetUpdateGroups', INetUpdateGroups);
  end;
```

Alle TAdv\* Objekte sind genauer durch den Komponentenhersteller beschrieben und können aus Lizenzgründen auch von mir nicht genauer aufgegriffen werden.

Siehe hierzu unter: [https://www.tmssoftware.com/site/tmspack.asp](https://www.tmssoftware.com/site/tmspack.asp)