Zum Inhalt

Thread-Sicherheit

Wie cTrader Algorithmen ausführt

cTrader führt jeden Indikator oder cBot in einem separaten Unterprozess aus, der vom Hauptprozess von cTrader Windows isoliert ist. Das bedeutet, dass alle neuen Instanzen von Indikatoren und cBots in separaten Prozessen ausgeführt werden.

Dieser Ansatz ermöglicht es cTrader, Code-Zugriffsbeschränkungen für separate Prozesse durchzusetzen, was die Sicherheit und Stabilität verbessert.

Darüber hinaus teilen separate Indikator- oder cBot-Prozesse ihre Ressourcen nicht mit dem Hauptprozess von cTrader Windows. Wenn etwas mit einem Indikator oder einem cBot schiefgeht, wirkt sich das zugrunde liegende Problem nicht auf cTrader selbst aus.

Methoden und Thread-Sicherheit

Nur wenige Methoden in der API sind thread-sicher, was bedeutet, dass Sie sie von jedem Thread aus aufrufen können. Alles andere sollte im Haupt-Thread des cBots oder Indikators ausgeführt werden.

Code im Haupt-Thread ausführen

Um etwas im Haupt-Thread eines cBots oder Indikators auszuführen, verwenden Sie die Methode BeginInvokeOnMainThread(). Sie akzeptiert einen Action-Delegaten, und Sie können sie von jedem laufenden Thread aus aufrufen.

Daten zwischen Instanzen teilen

Da jede Indikator- oder cBot-Instanz in einem einzelnen untergeordneten Prozess ausgeführt wird, können Sie statische Eigenschaften oder Felder verwenden, um Daten zwischen den verschiedenen Instanzen desselben cBots oder Indikators zu teilen.