Erweiterte API für den Handel mit Alarmsignalen in TradingView (empfohlen)

Schriftsteller:Kleine Träume, Erstellt: 2020-04-29 17:08:27, Aktualisiert: 2023-10-08 19:56:04

img

Erweiterte API für den Handel mit Alarmsignalen in TradingView mit der Quantitative Trading Platform der Erfinder

Video-Link zur B-Station

Die Inventor-Quantitative-Trading-Plattform-Erweiterungs-API wurde kürzlich aktualisiert und unterstützt den direkten Zugriff, um die automatische Transaktion von TradingView-Alarmsignalen an die Inventor-Quantitative-Trading-Plattform-Roboter zu ermöglichen.

Erfinder Quantitative Handelsplattform Erweiterung API

Verknüpfungen zu Inventor-API-Dokumentationen

Die Hauptaufgabe der API-Erweiterung ist es, die verschiedenen Funktionen der quantitativen Handelsplattform für programmatisch betriebene Erfinder zu interagieren, z. B. gleichzeitig den Roboter in Serie zu starten, den Roboter zu starten, zu stoppen, Roboterinformationen auszulesen usw. Wir nutzen die API-Erweiterung der Inventor-Quantitativen Handelsplattform, um Alarmsignale zu handeln.CommandRobot(RobotId, Cmd)Die Schnittstelle kann den Robotern, die die ID benötigen, eine Interaktionsanweisung senden, die sie dann ausführen kann (z. B. ein Kauf, ein Verkauf usw.).

Um die API zu verwenden, müssen Sie zunächst ein eigenes Erfinderkonto erstellen.API KEY: img API KEYDer Geheimschlüssel wurde vonaccess keyundsecret keySie haben sich nicht verändert.API KEYDas bedeutet, dass die Schlüssel für die quantitativen Handelsplattformen der Programmierbetreiber korrekt aufbewahrt und niemals verbreitet werden müssen.API KEYSie können die Berechtigungen festlegen, wie zum Beispiel in der Grafik oben, nur für dieseAPI KEYZugriff gewährtCommandRobot(RobotId, Cmd)Die Berechtigungen für die Schnittstelle, in diesem Fall nur für die Erweiterung von FMZ aus SicherheitsgründenAPI KEYVerleihungCommandRobot(RobotId, Cmd)Die Zugriffsberechtigung für die Schnittstelle.

Ein direkter Zugriff auf die erweiterte API

Der direkte Zugriff bedeutet,API KEYIn der query, die direkt in der url geschrieben wird, kann beispielsweise die url für den zugriff auf die inventor quantified trading platform extension api geschrieben werden:

https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]

Sie sind in der Lage,https://www.fmz.com/api/v1Das ist die Adresse der Schnittstelle.?Und dann:Query, Parameteraccess_keyEin Beispiel für den geheimen Schlüssel ist der Parameter "xxx" (für den Zugriff auf das eigene FMZ-Konto, wenn man es benutzt).secret_keyDer Geheimschlüssel wird mit "yyyy" angegeben (siehe unten).methodDer Name der erweiterten API, auf die zugegriffen werden soll.argsFür den AnrufmethodDie Parameter der Schnittstelle.

Wir benutzen TradingView als Signalquelle, um Handelsbefehle an die Erfinder zu schicken, die Quantitative Trading-Plattform-Roboter, die eigentlich nur für den Einsatz von Trading-Systemen verwendet werden.CommandRobotDie Schnittstelle.

Handelsansicht

Zunächst müssen Sie ein TradingView Pro-Konto haben, bei dem Sie nicht die WebHood-Funktion in der Alarmanlage verwenden können.

img

Ein Indikator kann einem Diagramm hinzugefügt werden, oder es kann ein anderer Algorithmus sein.MACDDer Indikator wird dann auf eine K-Linien-Periode von 1 Minute eingestellt (für schnelleres Auslösen des Signals und eine einfache Darstellung).

img

Klicken Sie mit der rechten Taste auf das Diagramm und wählen Sie "Alarm hinzufügen" aus dem Pop-up-Menü.

img

Einstellung in der Alarm-Punkte-FensterWebHookWir haben die Roboter, die die Signalüberwachung an der Seite der Plattform quantifizieren, in Gang gesetzt.

Ein Roboter, der ein Überwachungssignal erhält

Die Strategie ist hier:

// 全局变量
var BUY = "buy"     // 注意:现货用的命令
var SELL = "sell"   //      现货用的命令
var LONG = "long"   // 期货用的命令
var SHORT = "short" // 期货用的命令
var COVER_LONG = "cover_long"   // 期货用的命令
var COVER_SHORT = "cover_short" // 期货用的命令

function main() {
    // 清空日志,如不需要,可以删除
    LogReset(1)

    // 设置精度
    exchange.SetPrecision(QuotePrecision, BasePrecision)

    // 识别期货还是现货
    var eType = 0
    var eName = exchange.GetName()
    var patt = /Futures_/
    if (patt.test(eName)) {
        Log("添加的交易所为期货交易所:", eName, "#FF0000")
        eType = 1
        if (Ct == "") {
            throw "Ct 合约设置为空"
        } else {
            Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000")
        }
    } else {
        Log("添加的交易所为现货交易所:", eName, "#32CD32")
    }
    
    var lastMsg = ""
    var acc = _C(exchange.GetAccount)
    while(true) {
        var cmd = GetCommand()
        if (cmd) {
            // 检测交互命令
            lastMsg = "命令:" + cmd + "时间:" + _D()
            var arr = cmd.split(":")
            if (arr.length != 2) {
                Log("cmd信息有误:", cmd, "#FF0000")
                continue
            }

            var action = arr[0]
            var amount = parseFloat(arr[1])

            if (eType == 0) {
                if (action == BUY) {               
                    var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
                    Log("buyInfo:", buyInfo)
                } else if (action == SELL) {        
                    var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
                    Log("sellInfo:", sellInfo)
                } else {
                    Log("现货交易所不支持!", "#FF0000")
                }
            } else if (eType == 1) {
                var tradeInfo = null
                var ticker = _C(exchange.GetTicker)
                if (action == LONG) {
                    exchange.SetDirection("buy")
                    tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                } else if (action == SHORT) {        
                    exchange.SetDirection("sell")
                    tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                } else if (action == COVER_LONG) {        
                    exchange.SetDirection("closebuy")
                    tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
                } else if (action == COVER_SHORT) {        
                    exchange.SetDirection("closesell")
                    tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
                } else {
                    Log("期货交易所不支持!", "#FF0000")
                }
                if (tradeInfo) {
                    Log("tradeInfo:", tradeInfo)
                }
            } else {
                throw "eType error, eType:" + eType
            }
            acc = _C(exchange.GetAccount)
        }
        var tbl = {
            type : "table", 
            title : "状态信息", 
            cols : ["数据"], 
            rows : []
        }
        // tbl.rows.push([JSON.stringify(acc)])   // 测试时使用
        LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
        Sleep(1000)
    }
}

Strategie-Quellcode

Die Strategie-Code ist sehr einfach.GetCommandDie Funktion kann den Wert zurückgeben, den die Funktion zurückgibt, wenn eine Interaktionsnachricht an einen Politiker gesendet wird.GetCommandDie Funktion gibt diese Nachricht zurück, und dann macht der Scheduler eine entsprechende Handelsoperation, die auf den Inhalt der Nachricht basiert. Die Strategie verfügt über einen Interaktionsknopf, mit dem die Interaktionsfunktionen getestet werden können, z. B. die Ausführung der Strategie, die dem Roboter die simulierte Börse anbietet, auf der die Erfinder die Handelsplattform quantifizieren.WexApp

img

Klicken Sie auf die Interaktionstaste und testen Sie die Funktion, mit der der Roboter die Bestellung erhält.

img

Sie können sehen, dass der Roboter die Befehlsstring empfängt:buy:0.01

Wenn wir nur einen TradingView-Alarm auslösen, fordert WebHook in der URL auf, die API für die Erfindung der Quantitative Trading Platform Extension zu besuchen.CommandRobotDie Parameter, die bei der Schnittstelle getragen werden, sind:buy:0.01Das ist alles.

Einrichten von WebHook für TradingView

Zurück in TradingView, füllen wir die URL von WebHook ein.access_keysecret_keyDie Parameter füllen sich selbst ein.API KEYmethodDas ist nicht einfach.CommandRobotDas ist eine API-Erweiterung.argsDie Parameter sind:[机器人ID,命令字符串]In Form einer Roboter-ID, die wir direkt über die Roboter-Seite erhalten können, sehen wir folgende Abbildung:imgWenn wir das Signal auslösen, dann kaufen wir 0.02 Münzen, und die Befehlszeile lautet:"buy:0.02"Hiermit ist die WebHook-URL fertig. Diese Methode unterstützt nur das Schreiben von Signalen in der URL.https://www.fmz.com/api#直接验证

https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]

In TradingView ist es möglich:

img

Warten Sie, bis das Signal auslöst. Warten Sie, bis das Signal auslöst. 等待信号触发.

img

Der Roboter empfängt ein Signal:

img

So kann man mit den reichhaltigen Diagrammfunktionen in TradingView, den Indikator-Algorithmen, die mit dem Strategie-Roboter der Erfinder-Quantifizierung der Handelsplattform zusammenarbeiten, die gewünschten automatischen Trades realisieren. Die Schwierigkeit des Transports von Strategien in TradingView in JavaScript oder Python ist geringer.

"Monitoring Signal Robot" Strategiecode ist nur für Lern- und Forschungszwecke bestimmt, für den Einsatz auf dem realen Markt erfordert eine eigene Optimierung, unterstützt Futures, wird empfohlen, auf den Marktpreismodus zu setzen, um weitere Strategiecodeparameter zu finden. Wenn Sie Fragen haben, lassen Sie uns gerne eine Nachricht hinterlassen.


Verwandt

Mehr

pw1013Bitte können Sie mich an die Deepcoin-Börse anschließen?

Mingxi1005Wann werden die Erfinder die Münzen paaren und Futures-Kontrakte gewinnen?

Mingxi1005Wann werden die Erfinder die Münzen paaren und Futures-Kontrakte gewinnen?

Er lächelt.Du bist ein guter Mann, ich habe eine Strategie für den Vertrag gemacht, manchmal werden die Positionen in der Mitte nach der Eröffnung erhöht, dann, wenn ich zuletzt ausgleichen will, wie kann ich alle Positionen mit cover_long ausgleichen (weil ich nicht weiß, ob die Mitte mehrmals erhöht wird), was wird aus 1 in "cover_long:1" und kniete Code

Tyck950115Meine TV-Strategie-Nachricht lautet folgendermaßen: {{strategy.order.action}}@{{strategy.order.contracts}} Wenn ich einen Vertrag abschließen will, muss ich dann vier Warnungen hinzufügen: mehr, weniger, weniger, weniger? Kann webhook die Felder in der Strategie zitieren? Oder muss ich sie nur abschreiben? Wie können die vier Möglichkeiten in webhook long, cover_long\short, cover_short mit den Nachrichten in der Warnung verknüpft werden?

Kleine Kürbische QuantisierungIch möchte auch den Text der Nachrichten von tv übertragen, leider kann ich ihn nicht tragen, nur die URL kann die Parameter tragen, nicht die Informationen für Tradingview.

NiederlageBitte: [1234567, "buy:50"] Das ist BTC im Wert von 50 USD, die für den Kauf von Bitcoin in den Vereinigten Staaten verwendet wird. Aber als ich sie verkaufte, zeigte sie mir einen Fehler: Sell ((-1, 50): insufficient balance. Wie kann ich das so einrichten, dass ich das gesamte BTC, das ich zum ersten Mal gekauft habe, verkaufe?

WqyDie Funktion ist großartig!

LangezeitHallo, ich habe Ihnen Schritt für Schritt gezeigt, dass der Server den Server des Erfinders ausgewählt hat, aber der Fernseher hat bereits ein Signal gesendet, aber der Roboter auf der Seite des Erfinders führt den Signalbefehl nicht aus.

- Ich weiß nicht.Das ist großartig, nehmen Sie die Sammlung langsamer.

Umgekehrt/upload/asset/19a5ed382b58652c4dd19.png /upload/asset/19b0ea9ffa5100a3594f3.png /upload/asset/19a806e32e9b589696fa0.png /upload/asset/19a5005173219393cf2d9.png Warum zeigt der Code, den ich in den Schritten hinzugefügt habe, immer noch einen Fehler an, ist das der falsche Schritt?

WuxianWenn zum Beispiel mehrere Leerzeichen in der TV-Politik angegeben sind, wird dies nach den Hinweisen in der TV-Politik ausgeführt?

PY008Was steht in den Futures-Contract-Codes?

Melo23Wo sind die Video-Tutorials für Futures?

SchlagstoffBinance Futures werden nicht unterstützt? Welche Börsen unterstützen?

YuanlijieWie ist das mit dem Vertrag? Programmieren ist klein und weiß kein Englisch außer den Buchstaben.

- Ich weiß nicht.Ich habe eine große, kleine, weiße Welle, die sich sofort ausbreitet, das ist zu stark.

SkyfffireEin toller, schlanker Schritt.

PredigtSehr gut.

pw1013Ich habe den Autor gefragt, was mit dir los ist.

Hexiao49Ich habe ein Problem in meiner Gemeinde, und ich möchte, dass Sie mir helfen, es zu sehen.

Kleine TräumeEs gibt keine API.

Hexiao49Ich habe das nicht getan, aber ich habe es getan.

Kleine TräumeDas hängt davon ab, wie viele Benutzer es wollen.

Kleine TräumeDas ist eine Strategie, die konkret geändert werden muss, und nicht nur eine oder zwei Worte. FMZ unterstützt direkt die PINE-Sprache, sodass es einfacher ist, direkt PINE-Skripte auszuführen.

Mingxi1005Ich möchte die Funktion zum Aufhängen von Stoppschaden auf dem Roboter, den Sie veröffentlicht haben, hinzufügen, wo soll ich das hinzufügen?

Kleine TräumeJa, ich habe auch ihren Kundendienst gefragt, ob sie die nicht vertraglich vereinbarten API-Schnittstellen ausrotten können.

Mingxi1005Das geht nicht.

Kleine TräumeDas ist die aktuelle API, Boss! #_#! Die Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk-Funk

Mingxi1005https://www.coinw.fit/front/API Die Website verfügt über eine API, die Sie mit einer Leiter öffnen können /upload/asset/2986424014eb005f8cda2.png

Mingxi1005https://www.coinw.fit/front/API Die Website verfügt über eine API, die Sie mit einer Leiter öffnen können.

Kleine TräumeDiese Adresse kann nicht geöffnet werden. Es gibt keine API-Dokumentation.

Mingxi1005API-Eingabe-Link: https://coinw.pw/API

Kleine TräumeDas ist die Live-API von Coinw, die von Coinw Live-FMZ unterstützt wird, und sie haben keine Contract-Interface.

Mingxi1005Wir können uns selbst mit dem Universal-Protokoll binden? Bitte füllen Sie einfach die IP-Adresse ein, welche IP-Adresse wird ausgefüllt? API-Eingabe-Link: https://coinw.pw/API

Kleine TräumeIch bin sehr peinlich, aber sind Sie sich sicher, dass CoinWin-Kontrakte eine API haben?

Mingxi1005Ja, kleine Dreh-Lehrerin, wenn Sie zugreifen, wird es viel quantitative Zugriffe geben, weil Bitcoin 80% Kommission gewinnt.

Kleine TräumeHallo, benötigen Sie einen Coinw-Vertrag, um auf diese Börse zuzugreifen?

Zwei, zwei alte WellenIch habe das Problem auch schon erlebt.

LangezeitBruder, hast du die Strategie des Fernsehens, FMZ direkt zu verlinken, geschafft?

Kleine TräumeDas kann man speziell gestalten, z.B. wenn man die Anfrage cover_long:1 in cover_long:all umwandelt, so dass man in der FMZ-Aufhörpolitik die Interaktionscover_long bei Empfang ändert, um zu beurteilen, ob alle, dann alle gleich liegen. Ich weiß. // globale Variablen var BUY = "buy" // Hinweis: Befehl für die Handlung var SELL = "sell" // Befehl für die Hand var LONG = "long" // Kommando für Futures var SHORT = "short" // Kommando für Futures var COVER_LONG = "cover_long" // Befehl für Futures var COVER_SHORT = "cover_short" // Befehl für Futures Ich bin nicht derjenige. Ich bin nicht derjenige. Ich weiß nicht. Ich bin nicht derjenige. } else if (eType == 1) { Var tradeInfo = null Das ist ein sehr schwieriger Fall. Wenn (Aktion == LONG) { exchange.SetDirection (siehe "Kauf") TradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount) ist ein Bestelldatum, das von einem Kunden mit einer hohen Anzahl von Bestellungen erworben wird. } else if (action == SHORT) { exchange.SetDirection (("sell") tradeInfo = IsMarketOrder? exchange.Sell ((-1, amount)): exchange.Sell ((ticker.Buy, amount) ist ein Bestelldatum, das von einem Kunden mit einem Anforderungsdatum erhalten wird. } else if (action == COVER_LONG) { // COVER_LONG ist die cover_long, entscheidet, ob es sich um diese action handelt, und geht hier ins if Hier können Sie Parameter wie all spezifizieren, um die Funktionsgestaltung für die gesamte Plattform zu erstellen und speziell zu schreiben. exchange.SetDirection (siehe "closebuy") tradeInfo = IsMarketOrder? exchange.Sell ((-1, amount)): exchange.Sell ((ticker.Buy, amount) ist ein Bestelldatum, das von einem Kunden mit einem Anforderungsdatum erhalten wird. } else if (action == COVER_SHORT) { ist der Wert, der für eine Aktion verwendet wird. exchange.SetDirection (("closesell") ist eine Software, die von den Benutzern verwendet wird. TradeInfo = IsMarketOrder? exchange.Buy ((-1, amount)): exchange.Buy ((ticker.Sell, amount) ist ein Bestelldatum, das von einem Kunden mit einer hohen Anzahl von Bestellungen erworben wird. } else { Log (("Futures werden nicht unterstützt!", "#FF0000") Wir sind hier. Wenn (tradeInfo) { Log (("tradeInfo:", tradeInfo) Wir sind hier. } else { throw "eType error, eType:" + eType Wir sind hier. Acc = _C (exchange.GetAccount) Wir sind hier. Ich weiß.

YidaiHaben Sie Ihre Frage gelöst?

Kleine TräumeEs ist nicht so klar, ob die Alarmanlage des Fernsehgeräts stabil ist.

Beiyeargs=[191755, "buy:0.02"], hier wird ein Parameter hinzugefügt, um mehr zu tun und gleichzeitig etwas zu tun. Kann man einen Parameter weglassen?

Kleine TräumeFernsehanfragen werden mit der erweiterten FMZ-API empfangen und die Body-Inhalte werden abgerufen: https://www.fmz.com/api# Jetzt können die Daten in den Requests auch in der URL des Fernsehers empfangen werden, und die Daten im Body werden auch empfangen.

1131717062Bitte fragen Sie mich, wie man eine Strategie für die Eröffnung von Aktienanmeldungen auf tv, webhook url erstellt.

Kleine TräumeÜber die erweiterte API von FMZ können Sie die TV-Anfragen für den Inhalt von Body abrufen: https://www.fmz.com/api#%E7%9B%B4%E6%8E%A5%E9%AA%8C%E8%AF%81

Kleine Kürbische Quantisierung https://www.fmz.com/strategy/221850,看到了,感谢大神!!

Kleine TräumeEs gibt eine einfache Verbindung, um die Informationen im angeforderten Body zu erhalten und sie unter der Strategie-Platz-Suche zu finden.

Kleine TräumeDie Politik wurde geändert, um 50 auf den damaligen Preis zu verteilen.

Kleine TräumeWenn ein Befehl empfangen wird, wird der Roboter-Status-Tab aktiviert, und der Last Received Command-Tab wird angezeigt. Überprüfen Sie, ob Sie keine Konfiguration haben.

LangezeitDie Konfiguration ist bei Binance auf dem Markt, es gibt keine Hinweise im Roboter-Log, der Fernseher hat nur die Auslöserbedingungen und die Webhook-Einstellungen.

Kleine TräumeWenn Sie sich die Frage stellen, ob die Börse, die Sie auf Ihrem Roboter konfiguriert haben, eine Börse ist, ist es ein Börsenhandel, eine Futures-Börse?

Kleine Träume/upload/asset/16afbca03eec23516d37.png Sie haben die falsche Börse hinzugefügt.

Kleine TräumeIch habe einen neuen Computer, und ich habe einen neuen Computer, und ich habe einen neuen Computer.

Umgekehrt/upload/asset/19aee891571def2a6c4f3.png Ich habe alle API-Rechte bei Binance geöffnet, ich habe auch ein Kontraktkonto geöffnet, aber die Strategie läuft immer nicht.

Kleine TräumeDas Logbook zeigt, dass Binance erklärt, dass das hinzugefügte Austauschobjekt Binance Cash ist.

Kleine TräumeEs ist notwendig, einen Alarm in der Trading-Ansicht einzurichten und die Webhook-Adresse in die Alarm-Einstellungen einzufüllen.

Kleine Träumehttps://www.fmz.com/api#exchange.setcontracttype... Diese Funktion ist in der Beschreibung enthalten.

Kleine TräumeDer Link zu diesem Artikel steht zu Beginn.

Melo23Wie heißt das Video?

Kleine TräumeDie Verwendung von Futures ist die gleiche, nur dass die Parameter innerhalb des Links ersetzt werden. Var BUY = "kaufen" Var SELL = "sell" Var LONG = "lang" Var SHORT = "kurz" Das ist ein sehr schwieriger Fall. Das ist ein sehr schwieriger Fall. long ist eine offene Mehrfachposition, short ist eine offene Mehrfachposition, cover_long ist eine flache Mehrfachposition, cover_short ist eine flache Mehrfachposition. Ich weiß nicht. https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755, "buy:0.02"] Ich weiß nicht. Der Link "buy" ist nicht mehr relevant.

Kleine TräumeAuf dem Fernseher werden zwei Alarme hinzugefügt.

SchlagstoffWenn es sich um mehrere Platten handelt, d.h. die Signal-Einstellungen sind cover_long:10 und short:10, aber der Fernseher kann nur ein Signal ausführen, dann ist das nicht verloren?

Kleine TräumeEs ist nicht mehr möglich, Futures mit Futures zu verkaufen, sondern mit einem Verkauf zu kaufen.

Kleine TräumeDie Futures-Kontrakte werden so eingerichtet, dass die Strategieparameter die Webhook-URLs des Fernsehgeräts mit den Kommandos long und cover_long konfigurieren.

Schlüssel 986Das ist der Betriebscode für die eingestellte Futures, bitte fragen Sie, ob die Futures einen Neuschreibcode haben sollten.

Kleine TräumeEs gibt ein Video-Tutorial, das Sie auf der B Station sehen können.