JavaScript-Handelssteuerelemente
StockSharp JS-Handelssteuerelemente ist eine Sammlung von Browserpanels für ein Handelsterminal. Das Paket ist als @stocksharp/trading-controls auf npm veröffentlicht; alle Steuerelemente können in der Online-Demo betrachtet werden.

Die Abbildung zeigt außerdem ein Kerzendiagramm aus dem separaten Paket @stocksharp/chart. @stocksharp/trading-controls enthält sieben eigenständige Steuerelemente:
| Steuerelement | Klasse | Kennung |
|---|---|---|
| Aktive Aufträge | ActiveOrdersWidget |
activeOrders |
| Positionen | PositionsWidget |
positions |
| Ausführungshistorie | TradeHistoryWidget |
tradeHistory |
| Instrumentenliste | WatchlistWidget |
watchlist |
| Auftragseingabe | OrderEntryWidget |
orderEntry |
| Orderbuch | OrderBookWidget |
orderbook |
| Handelsstrom | TradeFeedWidget |
tradefeed |
Die Kennungswerte sind über das exportierte Objekt ControlTypes verfügbar.
Installation
npm install @stocksharp/trading-controls
Die Basisstile sind erforderlich. Die fertige helle und dunkle Farbpalette kann zusätzlich eingebunden oder durch eigene CSS-Variablen --t-* ersetzt werden:
import '@stocksharp/trading-controls/styles.css';
import '@stocksharp/trading-controls/theme.css'; // Optional: vorgefertigtes Theme.
Die Steuerelemente verwenden Klassen von Bootstrap Icons, liefern die Schriftarten und SVG-Dateien jedoch nicht selbst mit. Die Hostseite muss die Symbole separat einbinden.
Für Seiten ohne Bundler ist die Datei dist/sstradingcontrols.js vorgesehen, die das globale Objekt window.SSTradingControls erzeugt.
Gemeinsames Erstellungsschema
Jedes Steuerelement wird mit der statischen Methode create erstellt. Die Methode prüft den Host, erzeugt das eigene DOM und fügt das Wurzelelement in den übergebenen Container ein:
import {
PositionsWidget,
type TradingHost,
} from '@stocksharp/trading-controls';
declare const host: TradingHost;
const positions = PositionsWidget.create(
document.querySelector<HTMLElement>('#positions')!,
{},
{
host,
closePosition: (portfolioId, instrumentId, symbol) =>
console.log('schließen', portfolioId, instrumentId, symbol),
reversePosition: (portfolioId, instrumentId, symbol) =>
console.log('umkehren', portfolioId, instrumentId, symbol),
refreshPositions: () => console.log('aktualisieren'),
},
);
positions.update([]);
Das zweite Argument ist der gespeicherte Zustand der Instanz. Die Abhängigkeiten im dritten Argument unterscheiden sich je nach Steuerelement: Das Positionspanel erhält beispielsweise Handler zum Schließen und Umkehren, während das Orderbuch Handler für die Auswahl und Ausführung eines Preises erhält.
TradingHost-Vertrag
Die Steuerelemente greifen nicht direkt auf globale Übersetzungsfunktionen, Einstellungspeicher, Handelsverbindungen oder Fenstermanager zu. Jede externe Interaktion läuft über ein einziges Objekt TradingHost.
| Hostelement | Zweck |
|---|---|
isPrimary |
Kennzeichnet die primäre Instanz eines Steuerelements auf der Seite. |
t(key, ...args) |
Übersetzt sichtbaren Text und setzt Argumente ein. |
presentation |
Formatiert Seite, Typ und Status eines Auftrags sowie Gewinnklassen und die Canvas-Palette. |
preferences, cache |
Speichern dauerhafte Einstellungen und temporäre Daten. |
trading.api |
Sucht Instrumente und lädt Ausführungen. |
trading.marketData |
Verwaltet Abonnements und stellt aktive Aufträge bereit. |
trading.portfolioId() |
Gibt das aktuelle Portfolio zurück. |
trading.pickInstrument(...) |
Öffnet die Instrumentenauswahl. |
ticker |
Empfängt sichtbare Instrumente und deren Kurse. |
allow(action) |
Prüft die Berechtigung für eine Aktion. |
close, spawn, persistState, saveLayout |
Verwalten Lebenszyklus und Zustand des Panels. |
register, unregister, broadcast |
Registrieren Instanzen und verteilen Änderungen zwischen ihnen. |
log(message) |
Empfängt Diagnosemeldungen. |
Alle Elemente sind erforderlich. assertHost prüft verschachtelte Funktionen, bevor das Steuerelement gerendert wird, und meldet den genauen fehlenden Pfad. Wenn eine Anwendung einen Teil der Funktionen nicht benötigt, können für Pflichtbefehle sinnvolle Platzhalter übergeben werden, etwa log: console.warn oder ein leeres saveLayout.
Lokalisierung und Gestaltung
Sichtbaren Text beziehen die Steuerelemente ausschließlich über host.t. Die vollständige aktuelle Liste mit 153 Schlüsseln wird als @stocksharp/trading-controls/translation-keys.json ausgeliefert. Ein unbekannter Schlüssel wird dem Benutzer unverändert angezeigt; deshalb muss der Host Übersetzungen für die gesamte Liste definieren.
Die Datei styles.css enthält Regeln, bezieht Farben, Schriftarten und Abmessungen jedoch aus den CSS-Variablen --t-*. Wenn das fertige theme.css nicht verwendet wird, muss die Anwendung diese Variablen definieren. Die Canvas-Farben für Orderbuch und Bubble-Tape liefert host.presentation.canvasPalette().
Ressourcen freigeben
Rufen Sie beim Entfernen eines Panels dispose() auf. Die Methode entfernt Handler, deaktiviert bei Bedarf Beobachter und Abonnements des jeweiligen Steuerelements und ruft anschließend host.unregister auf.
positions.dispose();
Aus dem Quellcode erstellen
git clone https://github.com/StockSharp/JS-TradingControls.git
cd JS-TradingControls
npm install
npm test
npm run build