avatar of 发明者量化-小小梦 发明者量化-小小梦
konzentrieren Sie sich auf Private Nachricht
4
konzentrieren Sie sich auf
1271
Anhänger

Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

Erstellt in: 2019-07-17 10:22:20, aktualisiert am: 2023-10-24 21:40:50
comments   3
hits   4351

Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

Lernen Sie die Handelsstrategie der visuellen Modulkonstruktion kennen – das Einführungskapitel – und erlangen Sie ein konzeptionelles Verständnis der Konstruktion und des Zusammenfügens visueller Module. Anschließend ist es leicht, den Umgang mit anderen Modulen zu erlernen. Einige komplexere Funktionen können kombiniert werden.

  • ## Modul „Transaktionskategorie“

In früheren Studien und Tests sind wir mit mehreren Modulen der „Transaktionskategorie“ in Kontakt gekommen. Zum Beispiel: Modul „Börsenkurse“ Modul „Börsenabruf K-Linie“ …

Auf die bereits verwendeten werde ich hier nicht näher eingehen.

  • 1. Ermitteln Sie die Anzahl der Austausche

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wenn Sie eine Strategie für den Handel mit einem Roboter schreiben, können Sie mehr als ein Austauschobjekt hinzufügen, beispielsweise eine Absicherungsstrategie. Oder Sie müssen die Börsenobjekte durchlaufen (durchlaufen bedeutet, sie einzeln aufzurufen), um auf die Marktbedingungen zuzugreifen. Zu diesem Zeitpunkt müssen Sie ein Modul verwenden, um die Anzahl der Austausche zu ermitteln.

    Wir können zunächst eine einfache Struktur verwenden, um die Anzahl der aktuell konfigurierten Börsen auszudrucken: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Tatsächlich ist es so, als würde man den folgenden JavaScript-Richtliniencode aufrufen:

    function main () {
        Log(exchanges.length)
    }
    

    Schauen wir uns die Ergebnisse der Ausführung dieses kombinierten Moduls an: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Sie können sehen, dass wir 3 Exchange-Objekte hinzugefügt haben, die drei verschiedene Exchange-Konten darstellen, und das Ergebnis der Backtest-Protokollausgabe ist 3.

  • 2. Holen Sie sich den Namen der Börse

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Beim Hinzufügen von drei Austauschobjekten werden in der Dropdown-Box drei Optionen angezeigt. Lernen Sie vorab ein Loop-Modul im Loop-Typ. Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Lassen Sie uns vorab ein Modul zur bedingten Beurteilung lernen: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Die Beurteilungsbedingung kann wie folgt geschrieben werden: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wir verwenden das Loop-Modul, um über die hinzugefügten Börsennamen zu iterieren Verwenden Sie das Modul zur bedingten Beurteilung, um zu bestimmen, ob die aktuelle Schleifenanzahl dem auszudruckenden Austauschnamen entspricht.

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Ergebnisse des Backtestlaufs: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wie der JavaScript-Strategiecode:

    function main () {
        for (var i = 1 ; i <= exchanges.length ; i++) {
            if (i == 1) {
                Log(exchanges[0].GetName())
            } else if (i == 2) {
                Log(exchanges[1].GetName())
            } else {
                Log(exchanges[2].GetName())
            }
        }
    }
    
  • 3. Holen Sie sich das aktuelle Handelspaar der Börse

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Ein einfaches Beispiel holt das Handelspaar des ersten aktuell eingestellten Börsenobjekts und weist es der Textvariable (die vorab in der Variablenkategorie erstellt wurde) zu.

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Backtesting-Ergebnisse: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wenn Sie den JavaScript-Richtliniencode aufrufen:

    function main () {
        var text = exchange.GetCurrency()
        Log(text)
    }
    
  • 4. Bestellmodul

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Dieses Modul ist sehr wichtig und wird für Bestellvorgänge verwendet. Die Preisvariable wird in die erste Zapfenposition (Nut) eingebettet, um den Bestellpreis anzugeben. Sie können auch direkt einen festen Wert eingeben. In der zweiten Zapfenposition (Punkt) wird die Bestellmengenvariable eingebettet, welche zur Angabe der Bestellmenge dient.

    Als Beispiel erstellen wir ein Beispiel für die Platzierung einer Kauforder auf Grundlage des neuesten Preises der aktuellen Tick-Marktdaten mit einem Slippage von 10 Yuan, legen die Ordermenge auf 0,1 Münzen fest und drucken die Order-ID. Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Ergebnisse des Backtestlaufs: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wie der folgende JavaScript-Richtliniencode:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
        Log(id)
    }
    
  • 5. Modul zum Abrufen der Auftragsvergabe für das aktuelle Handelspaar

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Dieses Modul gibt alle nicht abgeschlossenen Aufträge für das aktuelle Handelspaar zurück. Die zurückgegebene Struktur ist eine Liste (Array), die von Modulen des Listentyps verarbeitet werden kann (Durchlaufoperationen usw.). Beispiel: Wir modifizieren das obige Beispiel für das Bestellmodul [4] leicht und ändern den bei der Bestellung hinzugefügten Preis von 10 Yuan in einen Preisabzug von 10 Yuan. Die Order wird nicht sofort ausgeführt, sondern bleibt in der Kauf- und Verkaufstiefe (also auf einer bestimmten Ebene zwischen Kauf 1, Kauf 2 und Kauf N) hängen, sodass die Order in einer schwebenden Order auf ihre Ausführung wartet. Anschließend verwenden wir das Modul „Get the current trading pair’s anvertrauen order“, um eine Liste der Aufträge im Status PENDING (auf Ausführung wartend) zu erhalten. Um zu vermeiden, dass Aufträge unter nachfolgenden Marktbedingungen ausgeführt werden und die endgültige Beobachtung des Backtests beeinträchtigt wird, verwenden wir nach der Ausführung des Moduls „Holen Sie sich den Auftrag des aktuellen Handelspaars“ und dem Ausdrucken der Auftragsliste sofort die Funktion „Ausnahme auslösen“. “-Modul, um das Programm zu stoppen.

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Backtesting zeigt: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Der Preis der Kauforder liegt 10 Yuan unter dem aktuellen Preis, daher wird die Transaktion nicht sofort abgeschlossen. Holen Sie sich anschließend die zur Ausführung anstehenden Aufträge und drucken Sie diese aus. Schließlich wird eine Ausnahme ausgelöst, um das Programm zu stoppen.

    Das gesamte zusammengestellte Modul ist wie der Aufruf einer JavaScript-Strategie:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
        Log(id)
        Log(exchange.GetOrders())
        throw "stop"
    }
    
  • 6. Modul „Bestellung stornieren“

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Dieses Modul wird zum Stornieren einer Bestellung verwendet.

    Es gibt viele Szenarien, in denen dies beim Schreiben von Richtlinien erforderlich ist:

    Stornieren Sie alle derzeit ausstehenden Bestellungen.

    Dies erfordert zweifellos die Verwendung des „Auftragsstornierungsmoduls“. Während wir das Auftragsstornierungsmodul lernen, können wir [5] verwenden, um das Modul für die Betrauungsorder des aktuellen Handelspaars zu erhalten und sie zu kombinieren, um diese Funktion zu erreichen.

    Um zunächst die Stornierung aller Bestellungen zu testen, ist es nicht ganz offensichtlich, eine Bestellung aufzugeben. Wir beginnen mit der Aufgabe von zwei Bestellungen mit unterschiedlichen Preisen und Mengen, um die beiden Bestellungen unterscheiden zu können.

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Verwenden Sie das Modul „Jedes Element in der Liste durchlaufen“ im Modul vom Typ „Schleife“, um die Aufträge in der aktuellen Liste ausstehender Aufträge zu durchlaufen. Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Während der Durchquerung wird jede abgerufene Reihenfolge der variablen Modulreihenfolge zugewiesen (erstellt im variablen Modultyp, wie unten gezeigt:) Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Verwenden Sie das Werkzeugtypmodul: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Nehmen Sie die Auftrags-ID heraus und übergeben Sie sie an die Zapfenposition (konkave Position) des Moduls zur Auftragsstornierung. Das Modul zur Auftragsstornierung führt dann den Stornierungsauftrag aus.

    Backtest-Lauf: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Beschreibung der JavaScript-Richtlinie verwenden:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
        Log(id)
        var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
        Log(id2)
        var orders = exchange.GetOrders()
        Log(orders)
        for (var i in orders) {
            var order = orders[i]
            Log(exchange.CancelOrder(order.Id))
        }
    }
    
  • 7. Ein Modul zum Abrufen detaillierter Informationen zu einer Bestellung basierend auf der Bestellnummer

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Dieses Modul kann detaillierte Bestellinformationen zurückgeben, indem es ein variables Bestell-ID-Modul mit der Zapfenlochposition verbindet.

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Achten Sie auf die Reihenfolge, die nach der Ausführung zurückgegeben wird: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Vergleicht man die Ergebnisse mit dem Laufbeispiel [5], so ist festzustellen, dass es sich bei dem ausgedruckten Auftrag um eine eigenständige Auftragsinformation handelt.[] In eckige Klammern eingeschlossen. Da Beispiel [5] eine Liste zurückgibt, wird in diesem Beispiel nur eine einzelne Bestellinformation zurückgegeben (erhalten anhand der ID-Variablenmodul an der vom Modul übergebenen Zapfenposition).

    Das obige Beispiel entspricht der Ausführung einer JavaScript-Richtlinie:

    function main () {
        var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
        Log(exchange.GetOrder(id))
    }
    
  • 8. Futures-Handelsmodul

    Wir werden die oben genannten Module nacheinander studieren und den Testaustausch auf Rohstoff-Futures einrichten.

    Backtesting-Einstellungen: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Das folgende Beispiel führt einen Backtest dieses Setups durch.

    • Modul zur Beurteilung des Verbindungsstatus zwischen CTP-Rohstoff-Futures und Futures-Unternehmensservern

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Rohstoff-Futures haben Öffnungs- und Schließzeiten. Wenn der Markt geschlossen ist, können Sie keine Verbindung herstellen.

    • Einrichten des Vertragsmoduls

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wenn das Börsenobjekt als Terminbörse konfiguriert ist und Sie den Vertrag nicht festlegen und die Marktinformationen nicht direkt abrufen, wird ein Fehler gemeldet: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wir haben den Vertrag auf MA909 festgelegt, den aktuellen Hauptvertrag für Methanol. Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten Auf diese Weise wird der neueste Preiswert im aktuellen Tick-Markt des MA909-Kontrakts ermittelt.

    • Einrichten des Orderrichtungsmoduls für den Futures-Handel

    Im Ausführungsreihenfolgemodul Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten
    Die Auftragsrichtung muss angegeben werden, da Futures Folgendes haben: kaufen: eine Long-Position eröffnen verkaufen: eine Short-Position eröffnen closebuy: Long-Position schließen closesell: Short-Position schließen Vier Richtungen (Rohstoff-Futures haben zwei weitere Richtungen: closebuy_today schließt Long-Positionen heute, closesell_today schließt Short-Positionen heute).

    Wenn das Auftragsmodul beispielsweise auf Kaufen eingestellt ist, dann gibt es zwei Bedeutungen: Öffnen einer Long-Position und Schließen einer Short-Position, was zu Mehrdeutigkeiten führt. Daher wird das Modul „Set Futures Trading Order Direction“ benötigt, um eine klare Orderrichtung festzulegen.

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Backtesting zeigt: Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wie der JavaScript-Strategiecode:

      function main () {
          while (true) {
              if (exchange.IO("status")) {
                  exchange.SetContractType("MA909")
                  Log(exchange.GetTicker().Last)
                  exchange.SetDirection("buy")
                  Log(exchange.Buy(1000, 1))
                  throw "stop"
              } else {
                  Log("未连接商品期货前置机")
              }
              Sleep(1000)
          }
      }
    
  • 9. Modul für den Handel mit Kryptowährungs-Futures

    Die Verwendung von digitalen Währungs-Futures ist grundsätzlich die gleiche wie die Verwendung von Rohstoff-Futures in [8] oben.

    • Am Beispiel von OKEX kann der Vertragscode wie folgt lauten:

      • this_week : diese Woche
      • next_week : nächste Woche
      • Viertel: Viertel
      • tauschen: unbefristet
    • BitMEX :

      • XBTUSD
      • ETHUSD
    • Einstellen des Leverage-Moduls

    Visualisierungsmodul zum Erstellen von Handelsstrategien - Fortgeschritten

    Wird verwendet, um den Hebel für digitale Währungs-Futures festzulegen.

      # 注意 : 回测不支持。
    

    Wie in der JavaScript-Strategie:

      function main () {
          exchange.SetMarginLevel(10)
      }
    

Visualisierungsbeispielstrategie:

Weitere Strategien finden Sie unter: https://www.fmz.com/square

Weitere Artikel dieser Reihe

Langweilige Programmierung lässt sich mithilfe von Bausteinen ganz einfach erledigen. Probieren Sie es aus, es ist sehr interessant!