Visualisieren Sie Module, um eine Transaktionsstrategie zu erstellen - Fortschritt

Schriftsteller:Kleine Träume, Erstellt: 2019-07-17 10:22:20, Aktualisiert: 2023-10-24 21:40:50

img

Visualisierungsmodule entwickeln eine Transaktionsstrategie

Das erste Mal, dass ich ein Konzept für die Konstruktion und das Zusammenfügen von Visualisierungsmodulen gelernt habe, war, dass ich ein Konzept für die Konstruktion und das Zusammenfügen von Visualisierungsmodulen hatte. Es ist einfach, andere Module zu lernen. Es gibt viele verschiedene Funktionen, die mit einer Kombination von komplexeren Funktionen kombiniert werden können.

  • Module für Transaktionskategorien

    In früheren Lern- und Tests haben wir einige Module der "Transaktionskategorie" behandelt. Zum Beispiel: Modul "Börsen, die Märkte erwerben" "Börsen erhalten K-Line" Modul Ich bin nicht derjenige.

    Die meisten von ihnen sind nicht in der Lage, sich zu bewegen.

    • 1. Erhalten Sie die Anzahl der Börsen

      img

      Bei der Erstellung von Strategien mit Roboterhandel kann mehr als ein Austauschobjekt hinzugefügt werden, z. B. eine Strategie zur Absicherung. Es kann auch sein, dass Sie die Börse durchsuchen müssen, wenn Sie eine Börse besuchen. Das bedeutet, dass wir die Module benötigen, um die Anzahl der Börsen zu ermitteln.

      Wir können zunächst die Anzahl der aktuell konfigurierten Börsen mit einer einfachen Struktur drucken:img

      Das ist, als würde man diesen JavaScript-Strategiekode aufrufen:

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

      Die Ergebnisse dieser Kombination von Modulen:img

      Man kann sehen, dass wir 3 Exchange-Objekte hinzugefügt haben, die drei verschiedene Exchange-Konten repräsentieren, und dass die Log-Ausgabe 3 ist.

    • 2. Erhalten Sie den Namen der Börse

      img

      Wenn Sie drei Börsenobjekte hinzufügen, zeigt das Dropdown-Boxen drei Optionen an. Lernen Sie im Voraus ein Loop-Modul, in einem Loop-Typ.img

      Das ist eine sehr schwierige Aufgabe, aber es ist wichtig, dass Sie sich mit dem Thema beschäftigen.imgDie Urteilsvoraussetzungen können folgendermaßen sein:img

      Wir haben die Namen der Börsen, die wir mit dem Kreislauf-Module über die ganze Welt hinzugefügt haben. Die Module werden von Conditional Judgement verwendet, um zu bestimmen, ob die aktuelle Zykluszählung den Namen der Börse entspricht, die gedruckt werden soll.

      img

      Die Ergebnisse des Tests:img

      Das ist ein Beispiel für JavaScript-Strategiekode:

      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. Erhalten Sie die aktuellen Handelspare der Börse

      img

      Ein einfaches Beispiel ist, dass das erste Exchange-Objekt mit dem aktuell eingestellten Transaktionspaar erworben und der Variable text (vorab in der Variablenkategorie erstellt) einen Wert zugewiesen wird.

      imgDie Ergebnisse:img

      Wenn Sie JavaScript-Strategiekode aufrufen:

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

      imgDas Modul ist sehr wichtig für die Bestelloperationen, wobei die erste Position "" () die Preisvariablen eingebettet, die für die Angabe des Bestellpreises verwendet werden, oder die direkte Eingabe von festen Zahlen ermöglicht. Die zweite Position ist eingebettet, um die Menge der Bestellung anzugeben.

      Zum Beispiel haben wir ein Beispiel zusammengestellt, bei dem der letzte Preis basierend auf den aktuellen Ticketdaten, plus 10 US-Dollar Schiebepreis bezahlt wird, die nächste Ordermenge auf 0.1 Cent gesetzt wird und die Order-ID gedruckt wird.img

      Die Ergebnisse des Tests:img

      Das ist ein Beispiel für den folgenden JavaScript-Strategiekode:

      function main () {
          var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
          Log(id)
      }
      
    • 5. Erhalten Sie Module für aktuelle Transaktionen an Auftraggeber.

      img

      Das Modul gibt alle Auftragsbestellungen zurück, die in der aktuellen Transaktionspaare in unvollendetem Zustand sind, und gibt eine Listestruktur (Array) zurück, die mit einem Modul des Listentyps (Streaming-Operation usw.) bearbeitet werden kann. Zum Beispiel: Wir haben das oben beschriebene Modulmodell für die Ein- und Ausschreibung von P4 und P4 leicht geändert, um den Preis von 10 US-Dollar bei der Bestellung auf 10 US-Dollar minus 10 US-Dollar zu ändern. Die Bestellung wird nicht sofort abgewickelt, sondern hängt in der Kauf- und Verkaufstiefe (d. h. auf einem der Rangstufen von 1 / 2 / 2 / N), so dass die Bestellung in der Pending-Liste steht. Dann nutzen wir das Modul "Erhalten aktueller Transaktionen auf Auftragsbestellungen", um eine Liste von Bestellungen zu erhalten, die im PENDING-Status sind. Um zu verhindern, dass die Auftragsvergabe in der nachfolgenden Börse die letzte Beobachtung beeinflusst, drucken wir nach der Ausführung des Moduls "Aktuelle Transaktion auf Auftragsbestellungen erhalten" die Liste der Aufträge aus und stoppen den Prozess sofort mit dem Modul "Ausfall werfen".

      img

      Die Ergebnisse zeigen:img

      Der nächste Kaufpreis ist niedriger als der aktuelle Preis von 10 US-Dollar und wird daher nicht sofort abgewickelt. Dann erhält man die Pending Orders und druckt sie aus. Schließlich wird eine Ausnahme ausgelöst, um das Programm zu stoppen.

      Das ganze zusammengesetzte Modul ist wie ein Anruf einer JavaScript-Strategie:

      function main () {
          var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
          Log(id)
          Log(exchange.GetOrders())
          throw "stop"
      }
      
    • 6. Löschen Sie das Modul

      img

      Das Modul wird für die Stornierung von Bestellungen verwendet.

      Es gibt viele Szenarien, in denen man bei der Erstellung einer Strategie so handeln muss:

      Ich habe eine Liste von Bestellungen, die ich nicht mehr habe, und ich habe eine Liste von Bestellungen, die ich nicht mehr habe.

      Dies ist zweifellos mit dem "Widerrufsmodul" zu tun, und während wir den Widerrufsmodul lernen, können wir mit dem Modul von 5Ton, um den aktuellen Handel mit Auftragsbestellungen zu erhalten, die Kombination nutzen, um diese Funktion zu realisieren.

      Zuerst, um zu testen, ob alle Bestellungen widerrufen werden, ist es nicht offensichtlich, eine Bestellung aufzuhängen, wir beginnen, zwei Male zu bestellen, wobei unterschiedliche Preise verwendet werden, um die beiden Bestellungen zu unterscheiden.

      img

      Verwenden Sie den Modul "Jedes Element der Liste durchsuchen" im Modul Loop-Typ, um die Bestellungen in der aktuellen Auflistung zu durchsuchen.imgBeim Durchlaufen wird jede entnommene Bestellung dem Variablenmodul ord ((in dem Variablenmodultyp erstellt, wie in der Abbildung unten:)imgIn den Modulen mit Tooltypen:imgErhebt die Order-ID, leitet sie an die Position der Annullierungs-Module weiter und führt die Annullierungs-Order durch.

      Die Wiederholung läuft:img

      Beschreibung mit JavaScript-Strategien:

      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. Module, die Details zu einer Bestellung nach der Bestell-ID erhalten

      img

      Das Modul ist in der Lage, einen Modul mit einer Order-ID-Variablen zu erreichen, um die Orderdetails zurückzugeben.

      img

      Hier sind einige der Bestellungen, die nach dem Start zurückgegeben wurden:img

      Ein Vergleich der Ergebnisse der Ausführung in den 5 Tonnen-Prägen zeigt, dass die gedruckte Bestellung eine separate Bestellnachricht ist, ohne dass die Daten über die Ausgabe von Bestellungen in der Datenbank gespeichert werden.[]In den Zwischenklammern verpackt. Da in Beispiel 5 die Liste zurückgegeben wird, wird in diesem Fall eine separate Bestellmeldung zurückgegeben (modulbasierte Erfassung der ID-Variablen an der Position der Zwiebel, an der das Modul übermittelt wurde).

      Die folgenden Beispiele zeigen, wie man JavaScript-Strategien ausführt:

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

      In den Modulen oben lernen wir einzeln, wie wir die Börsen testen, die wir als Commodity-Futures einrichten.

      Wiederholung:imgDie folgenden Beispiele werden nach dieser Einstellung getestet.

      • Beurteilen Sie den Status eines CTP-Kommoditäts-Futures mit dem Server der Futures-Firma

        img

        Die Commodity-Futures haben eine offene Börsenzeit, während der offenen Börse ist die Verbindung nicht möglich.

      • Einrichten eines Vertragsmoduls

        img

        Wenn ein Objekt einer Börse als Futures-Börse konfiguriert wird, wird der Fehler zurückgegeben, wenn der Kontrakt nicht eingerichtet und direkt auf den Markt zugegriffen wird:img

        Wir haben den Vertrag für MA909 eingerichtet, Methanol ist der derzeitige Hauptvertrag.imgSo wird der aktuelle Tick für den MA909-Vertrag mit dem aktuellsten Preiswert in der Box abgerufen.

      • Einrichtung eines Moduls unter Futures Trading

        Unterordnungsmodul ausgeführtimg
        Es ist notwendig, eine Richtung anzugeben, da die Futures: Buy: mehr als eine Aktie Verkaufen: Leerstand closebuy: Plötzlich mehr Lager Closesell: Leerstand Vier Richtungen (kommoditäre Futures: zwei weitere Richtungen: closebuy_today, closeesell_today, offene Position)

        Zum Beispiel, wenn man das Modul als Einkauf einstellt, dann gibt es zwei Bedeutungen, mehrere Lager und flache Lager, was zweideutigkeit erzeugt. Es ist daher notwendig, die Module "Einzelrichtung für den Futures-Handel einstellen" zu verwenden, um eine eindeutige Unterrichtung zu setzen.

        img

        Die Nachforschungen zeigen:img

        Das ist ein Beispiel für JavaScript-Strategiekode:

        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. Futures Trading Module für digitale Währungen

      Die Verwendung von Futures für digitale Währungen ist im Wesentlichen die gleiche wie die Verwendung von Commodity Futures in den oben aufgeführten 8 Futures.

      • Der Vertragskodex in OKEX kann folgendermaßen sein:

        • this_week: Diese Woche
        • next_week: nächste Woche
        • Quartal: Quartal
        • swap: dauerhaft
      • BitMEX:

        • XBTUSD
        • ETHUSD
      • Setzen Sie das Hebelmodul ein

        img

        Die Anwendungen werden von den Anbietern der digitalen Währung verwendet, um Futures-Leverage zu setzen.

        # 注意 : 回测不支持。
        

        Das ist ein Beispiel für die JavaScript-Politik:

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

Die Strategie zur Visualisierung von Beispielen:

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

Weitere Artikel in dieser Serie

Das ist langweiliges Programmieren, das mit den Bausteinen leicht gemacht werden kann, probieren Sie es aus, es ist sehr lustig!


Verwandt

Mehr

- Ich weiß nicht.Ich habe einen Monat lang programmiert und kann keine Strategien schreiben, aber jetzt bin ich auf Steine angewiesen!

Kleine TräumeDank der Unterstützung werden wir diese Serie fortsetzen. In der Tat ist es sehr einfach, mit JS-Strategien zu schreiben, basierend auf dem entsprechenden JavaScript-Strategiekode hinter jedem Parameter.