Skip to content

Stonks2Moon/BoersenAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoonStonks Börsen API

Offizielle API der MoonStonks Börse, um jegliche Art von Order zu stellen.

Installation

npm install moonstonks-boersenapi

oder

yarn add moonstonks-boersenapi

Setup

import { BörsenAPI } from 'moonstonks-boersenapi';

public api = new BörsenAPI('moonstonks token')

Eine Order stellen

Es gibt viele verschiedene Orders, diese können je nach bedarf dynamisch oder statisch gestellt werden. Hierzu gibt es mehrere Methoden, welche über unsere BörsenAPI erreichbar sind.

import { OrderManager } from "moonstonks-boersenapi";

public orderManager = new OrderManager(api, 'onPlace' 'onMatch', 'onComplete', 'onDelete')

Eine Buy Market Order stellen

async function placeBuyMarketOrder(shareId: string, amount: number): Promise<Job>;
orderManager
  .placeBuyMarketOrder('shareId', 20)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Buy Limit Order stellen

async function placeBuyLimitOrder(shareId: string, amount: number, limit: number): Promise<Job>;
orderManager
  .placeBuyLimitOrder('shareId', 20, 200)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Buy Stop Market Order stellen

async function placeBuyStopMarketOrder(shareId: string, amount: number, stop: number): Promise<Job>;
orderManager
  .placeBuyStopMarketOrder('shareId', 20, 200, 300)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Buy Stop Limit Order stellen

async function placeBuyStopLimitOrder(shareId: string, amount: number, limit: number, stop: number): Promise<Job>;
orderManager
  .placeBuyStopLimitOrder('shareId', 20, 200, 350)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Sell Market Order stellen

async function placeSellMarketOrder(shareId: string, amount: number): Promise<Job>;
orderManager
  .placeSellMarketOrder('shareId', 20)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Sell Limit Order stellen

async function placeSellLimitOrder(shareId: string, amount: number, limit: number): Promise<Job>;
orderManager
  .placeSellLimitOrder('shareId', 20, 200)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Sell Stop Market Order stellen

async function placeSellStopMarketOrder(shareId: string, amount: number, stop: number): Promise<Job>;
orderManager
  .placeSellStopMarketOrder('shareId', 20, 200, 300)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Sell Stop Limit Order stellen

async function placeSellStopLimitOrder(shareId: string, amount: number, limit: number, stop: number): Promise<Job>;
orderManager
  .placeSellStopLimitOrder('shareId', 20, 200, 350)
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Eine Order verwalten

Eine Order abfragen

async function getOrder(orderId: string): Promise<Order>;
orderManager
  .getOrder('orderId')
  .then((order) => console.log('Order', order))
  .catch((error) => console.error(error));

Eine Order löschen

async function deleteOrder(orderId: string): Promise<Job>;
orderManager
  .deleteOrder('orderId')
  .then((job) => console.log('Job', job))
  .catch((error) => console.error(error));

Einen Job löschen

async function deleteJob(jobId: string): Promise<boolean>;
const deleted = await orderManager.deleteJob('jobId');

Shares

Shares sind items, welche in der MoonStonks Börse gehandelt werden können. Hierzu stellt die Börse verschiedene Methoden zur Verfügung, um Informationen wie den aktuellen Kurs, die Preisentwicklung und andere abzurufen.

import { ShareManager } from 'moonstonks-boersenapi';

Alle handelbaren Items abrufen

static async function getShares(): Promise<Share[]>;
ShareManager.getShares();

Den aktuellen Kurs eines items erhalten

static async function getPrice(shareId: string): Promise<number>;
ShareManager.getPrice('shareId');

Die Preisentwicklung abrufen

static async function getPrices(shareId: string, options?: PriceOptions): Promise<Price[]>;
ShareManager.getPrices('shareId');
ShareManager.getPrices('shareId', { limit: 10 });
ShareManager.getPrices('shareId', { from: 1616751375000 });
ShareManager.getPrices('shareId', { until: 1616841375000 });
ShareManager.getPrices('shareId', { from: 1616751375000, until: 1616841375000 });
ShareManager.getPrices('shareId', { from: 1616751375000, until: 1616841375000, limit: 10 });

Market

import { MarketManager } from 'moonstonks-api';

Prüfen, ob der Market gerade geöffnet ist

static async function isOpen(): Promise<boolean>;
MarketManager.isOpen();

Prüfen, ob der Market gerade geschlossen ist

static async function isClosed(): Promise<boolean>;
MarketManager.isClosed();

Den aktuellen Status des Markets abrufen

static async function getStatus(): Promise<string>;
MarketManager.getStatus();

Datenmodelle

Order

Attribut Type Beschreibung
id string eindeutige Order ID
shareId string ID des gewählten Shares
timestamp number Zeitstempel des Stellens der Order
type "buy" | "sell" Ordertyp: Kauf- oder Verkaufsorder
amount number Menge der zu kaufenden/verkaufenden Shares
limit? number Limit zu dem man diese Order ausführen möchte; Wenn leer = Marketorder
stop? number Grenze der Stop-Market Order

Job

Attribut Type Beschreibung
id string eindeutige Job ID
broker Broker Job Owner
placeOrder? PlaceOrderDto Bündel der Daten für das Platzieren einer Order
deleteOrder? DeleteOrderDto Bündel der Daten für das Löschen einer Order
triggerId? string ID der Order, deren Stop erreicht wurde

Share

Attribut Type Beschreibung
id string eindeutige Share ID
name string Name des Shares
color string Farbe zur Identifikation des Shares
thumbnail string Bild/Grafik zur Identifikation des Shares
price number aktueller Preis des Shares

Price

Attribut Type Beschreibung
timestamp number Zeitstempel des aktuellen Preises
price number Höhe des aktuellen Preises

PriceOptions

Attribut Type Beschreibung
from? number Zeitstempel, ab dem die Preise ausgegeben werden
until? number Zeitstempel, bis zu dem die Preise ausgegeben werden
limit? number Begrenzt die Anzahl der Suchergebnisse

Broker

Attribut Type Beschreibung
type 'private' | 'business' | 'simulation' | 'stockmarket' Art des Brokers
displayName string Anzeigename des Brokers

DTOs

PlaceOrderDto

Attribut Type Beschreibung
shareId string Id des gewählten Shares
amount number Menge der zu handelnden Shares dieser Order
onPlace string aufgerufener Endpunkt vom Broker, wenn Order platziert wird
onMatch string aufgerufener Endpunkt vom Broker, wenn Order gematcht wird
onComplete string aufgerufener Endpunkt vom Brokert, wenn Order ausgeführt
onDelete string aufgerufener Endpunkt vom Broker, wenn Order gelöscht wird
type 'buy' | 'sell' Ordertyp: Kauf- oder Verkaufsorder
limit? number Limit zu dem man diese Order ausführen möchte, wenn leer = Marketorder
stop? number Grenze der Order

UnqueueJobDto

Attribut Type Beschreibung
jobId string eindeutige Job ID

DeleteOrderDto

Attribut Type Beschreibung
orderId string eindeutige Order ID

OrderCompletedDto

Attribut Type Beschreibung
orderId string eindeutige Order ID
timestamp number Zeitstempel, wann die Order erfüllt wurde

OrderDeletedDto

Attribut Type Beschreibung
orderId string eindeutige Order ID
timestamp number Zeitstempel, wann die Order gelöscht wurde
remaining number Menge der übrig gebliebenen Shares

OrderMatchedDto

Attribut Type Beschreibung
orderId string eindeutige Order ID
timestamp number Zeitstempel, wann die Order gematched wurde
amount number Menge der Shares, die gematched wurden
remaining number Menge der ürbig gebliebenen Shares nach dem Match
price number Preis, zu dem die Order gematched wurde

// TBC..