Zusammenfassung der häufig gestellten Fragen (Aktualisierung...)

Schriftsteller:Lydia., Erstellt: 2023-07-13 14:44:41, Aktualisiert: 2024-02-05 20:04:06

[TOC]

img

Zusammenfassung der häufig gestellten Fragen (Aktualisierung...)

  • Suchen Sie nach FAQs für eine einfache Ansicht. VerwendungCtrl + fUm die Seite zu öffnen und zu suchen, geben Sie ein Schlüsselwort ein, zum Beispiel: docker. Dann wird der Standort auf der Seite mit dem Wort docker gesucht.

  • Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • Weixin:

    img

API-Schnittstelle

  • Warum?Kaufen Sie einen PreisundVerkaufen Sie einen PreisdurchGetTickerund die durchGetDepthsind unterschiedlich?

    Die Daten vonGetTickerundGetDepthEs gibt eine Zeitverzögerung, so dass sich die Daten ändern werden.GetTickerDie Daten werden ein wenig schneller sein, denn die Daten sind kleiner als die Daten, die durchGetDepth.

  • exchang.GetOrdersErhält die unvollendeten Befehle, wo bekommt man die ausgeführten Befehle?

    Es gibt eine andere API, um Befehle abzufragen, das heißt,exchange.GetOrderEs sucht alle Arten von Aufträgen nachIDGeben Sie die Reihenfolge ein.ID, erhalten Sie den Auftrag. Daher, um ausgeführte Aufträge zu erhalten, müssen Sie sehen, ob Plattformen diese Art von Schnittstellen bieten; die Schnittstellen, die von jeder Plattform bereitgestellt werden, sind ziemlich unterschiedlich.

  • InJavaScriptDas Ergebnis der Zeitstring-Konvertierung auf Zeitstempel ist falsch.

    Sie müssen die Zeitzone in den Systemzeiteinstellungen berücksichtigen.

    img

  • Warum sind der Eröffnungspreis und der Schließpreis, den ich gedruckt habe, derselbe?

    1.Vielleicht gab es zum Zeitpunkt des Druckens tatsächlich keinen Handel auf der Plattform, so dass die Öffnungs-, Schließ-, Höchst- und Tiefstpreise von BAR die ganze Zeit gleich sind. 2.Sie müssen überprüfen, ob der BAR, den Sie beobachtet haben, der letzte BAR ist, denn die Eröffnungs-, Schließ-, Höchst- und Tiefstpreise des letzten BAR sind dieselben.

  • Fehler bei der Überprüfung der Zeit mit dem Server, z. B.Signature not valid:Invalid submission time or incorrect time format

    Dieser Fehler ist das Problem der alten Betriebssysteme wiewindows2000/2003/XP, siehe:

https://support.microsoft.com/en-us/help/821893/the-system-clock-may-run-fast-when-you-use-the-acpi-power-management-t

Wir empfehlen Ihnen,LinuxServer, oder Sie können Zeit-Synchronisierungs-Software in diesenwindowsSysteme, in denen der Fehler auftritt, um die Zeit mit hoher Frequenz zu synchronisieren und den Fehler bei der Zeitüberprüfung zu verhindern.

  • Warum gibt es einen Unterschied zwischen den Werten derATR (TR) von Mylanguage und die durchTA/talibDie Bibliothek?

Der Grund dafür ist, dass die Berechnungsmethode der Mylanguage-Indikatoren mit dem zugrunde liegenden Algorithmus derTA/talibBeide sind richtig, aber die Algorithmen sind anders.MACDEinige benutzen einenDIF-DEA, und manche zweimal benutzenDIF-DEA, die beide richtig sind.

  • Was bedeutet es, wenn der Name der PlattformFutures_Esunny?

    Sie stellt den Austauschobjekt vonProtokoll von Esunny, die von der Funktion zurückgegeben werden kannexchange.GetName()- Ich weiß. Derzeit unterstützt FMZ internationale Station nur Kryptowährungsgeschäft. Rohstoff-Futures, Wertpapiere und andere Geschäfte werden von FMZ inländische Station unterstützt, können Sie sich anmelden:https://www.fmz.cn.

    • Mylanguage bezieht sich auf Daten in mehreren Perioden, nach#EXPORTTEST...#ENDdie Variablen in der Mehrzeitcode-Blockreferenz angegeben.REFDie Daten werden nach dem aktuellen Zeitraum verwiesen, der sich von dem unterscheidet, was Sie erwartet haben.

    Die von Ihnen benötigten Daten für mehrere Zeiträume werden in#EXPORTTEST...#END, so dass Sie es direkt extern verwenden können.

  • Ich finde keine FMZ-API-Dokumentation.

    Sie können direkt die Adresse der Seite eingeben:https://www.fmz.com/api, oder klicken Sie auf den folgenden Link:

    img

  • Warum?MACDWie unterscheidet sich die durch FMZ berechnete Leistung von der durch Plattformen berechnete Leistung?

    Bei einem Vergleich ist darauf zu achten, ob die K-Linienperioden gleich sind, ob dieMACDAußerdem gibt es viele Algorithmen, die dieMACDEinige sindDIF-DEA, und einige sind2*(DIF-DEA); DIFundDEAsollte konsistent sein.

  • Was ist mit der erhaltenen K-Linien-Nummer verbunden, wenn die K-Linien-Daten der Geschichte erhalten werden?

    Wenn Sie auf dieexchange.GetRecordsDie Anzahl der von jeder Plattform zurückgegebenen K-Linien ist möglicherweise inkonsistent (sogar einige Plattformen bieten keine K-Linien-Schnittstellen an). In diesem Fall ruft der Docker die Schnittstelle an, um die Handelshistorie der Plattform zu erhalten, wenn die Strategie aufruftexchange.GetRecords. Die Datenoberfläche synthetisiert die K-Linie entsprechend der Handelsgeschichte). Die vom Docker empfangenen K-Linien werden kontinuierlich zusammengehäuft, und es ist notwendig, auf dieexchange.GetRecordsDie Daten sind in der Regel mit einer bestimmten Frequenz zu verarbeiten, da sonst die Kontinuität der Daten beeinträchtigt werden kann.

  • Ich finde, dass die Funktionexchange.BuyNur RücksendungenIDin der API-Dokumentation, aber warum gibt es so viele Informationen zurück, wenn ich arbeite?

    Die Funktionen, die Log-Export in FMZ-API-Funktionen erzeugen können, wie z. B.Log, exchange.Buy, exchange.CancelOrder, etc., können alle nach den notwendigen Parametern durch einige zusätzliche Parameter gefolgt werden.exchange.CancelOrder(orders[i].Id, orders[j])exportiert zusätzlich die Auftragsinformationen bei Stornierungorders[j].

  • Wie führt man eine WeChat Push-Nachricht in einem Bot aus?

    WeChat Push ist nur für Bots gültig; hinzufügen'@'am Ende derLogFunktion, und dann die gedruckten Informationen derLogSie können die Details im API-Dokument unter:https://www.fmz.com/api#LogDerzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn- Ich weiß. Der WeChat-Push wird nur im inländischen Sender von FMZ unterstützt.

  • Können Rohstoff-Futures kontinuierliche Hauptverträge und Indexverträge verwenden?

    Es unterstützt die wichtigsten kontinuierlichen und Indexverträge von Rohstofffutures. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • var records = exchange.GetRecords(PERIOD_D1)Was sollte ich schreiben, wenn ich die spezifischen Vertrag täglichen K-Line Daten, wie die K-Line Daten von RB oder I erhalten möchte?

    Sie solltenVertragskodeVor dem Erhalt der TAQ (mindestens einmal seit Beginn des Programms den Vertragscode einstellen).SetContractType("rb1805"), Setzen Sie den aktuell betriebenen Vertrag aufrb1805. Rufen Sie erneut die API, die TAQ erhält, können Sie die TAQ Daten von rb1805 Vertrag zu bekommen. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • Wie schreibt man den Vertragskode der Rohstoff-Futures?

    Sie können sich auf die FMZ-API-Dokumentation beziehen. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • - Ich weiß.exchange.GetAccountWenn der Benutzer nicht in der Lage ist, die Informationen aufgrund von Netzwerk- und anderen Problemen zu erhalten, und die Unterschicht des FMZ-Systems den Fehler bereits verarbeitet hat? Oder müssen die Benutzer sich selbst mit dem Versagen der Anfrage befassen? Warum behandelt der FMZ-Beamte ihn nicht? Ist es nicht bequemer für die Benutzer, ihn auf diese Weise zu verwenden?

    Es wird Fehler geben, die Benutzer zur Fehlerverträglichkeit veranlassen. Die Unterschicht von FMZ verarbeitet keine Daten, und die Daten, die an Benutzer zurückgegeben werden, sind unverarbeitete Daten. Die spezifische Fehlerverträglichkeitsmethode oder Logik wird von der spezifischen Strategie formuliert. Denn wenn sie verarbeitet wird, kann sie die Entscheidung der Benutzer beeinflussen, und die Entscheidung wird von der Strategie verarbeitet, die sich speziell aufFilterfehlerinformationenoderWiederholenund andere Verarbeitungsmethoden.

  • Wie lautet die Einheit für das Auftragsvolumen eines OKEX-Kontrakts? Ist es der Münzbetrag oder der Vertragsbetrag?

    Das Auftragsvolumen eines OKEX-Kontrakts wird anhand des Auftragsbetrags berechnet.exchange.Buy(1000,1)bedeutet, einen Auftrag zum Preis von 1000 mit einem Vertragsbetrag von 1 zu erteilen.

  • Bedeutet das, dass ich Grenzbefehle erteilen muss, wenn ich anrufe?exchange.Sellundexchange.Buyauf FMZ?

    Für Details müssen Sie sich den ersten Parameter ansehen, der übermittelt wird (der erste Parameter ist der Auftragspreis).-1Die Bedeutung von Kaufvolumen und Verkaufsvolumen unterscheidet sich (der zweite Parameter), und wenn der Preis nicht-1In den meisten Spot-Plattform-Order-Schnittstellen beträgt das Auftragsvolumen des MarktkaufordersVermögenswert- Nein.MünzbetragIn den Auftragsschnittstellen der Kryptowährungs-Futures-Plattformen ist das Auftragsvolumen im Allgemeinen eine ganze Zahl des Vertragsbetrags.

    Schauen Sie sich die Kommando-Schnittstellen an:https://www.fmz.com/api#exchange.buyprice-amount https://www.fmz.com/api#exchange.sellprice-amount

  • Funktion der Post

    Mail("smtp.qq.com", "xxxx@qq.com", "xxx", "xxx@qq.com", "test title", "test body")
    

    Zugang zu QQs smtp203.205.232.7Derzeit sind die meisten Cloud-Server von Port 25 abgeschirmt, außer für physische Server, werden die Betreiber Port 25 nicht abschirmen.

  • Musterparameter für Pine language, Mylanguage: Die Anzahl der maximalen Perioden der Variablen beeinflusst die Indikatorberechnung

Standardmäßig beträgt die variable Höchstzahl von Perioden 600, wenn der Indikatorparameter zu groß eingestellt ist, z. B. bei der Berechnung von MA ((1000).

Fehlerberichterstattung

  • Popup-Fehlermeldung: SyntaxError: Variablenname erwartet.

Überprüfen Sie, ob beim Deklarieren einer Variablen ein Variablennamen fehlt, z. B. wenn Sie vergessen haben, den Namen in var name = a zu schreiben. Überprüfen Sie auch, ob beim Einstellen der Strategie-Schnittstellenparameter Programmiersprach-Schlüsselwörter verwendet wurden. Es wird nicht empfohlen, häufig verwendete Programmiersprach-Schlüsselwörter als Variablennamen zu verwenden, da dies zu Konflikten führen kann, auch wenn die aktuelle Programmiersprache dieses spezifische Schlüsselwort nicht hat.

  • BITMEX429 Fehler,{"error":{"message":"Rate limit exceeded retry in 1seconds……"}}

    Wenn Sie einen Fehler 429 sehen, bedeutet das, dass die Häufigkeit des Zugriffs auf eine Plattform zu hoch ist.

  • Only support CTPFehler

    Das heißt, du hast einenFutures auf Rohstoffe CTPSchnittstelle oder Bibliothek in einemKryptowährungsstrategie- Ich weiß. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • BittrexFehler bei Bots:{"success":false,"message":"NOT_ALLOWED","result":null}

    Es zeigt die Plattform Grenzen Rechte.Bittrex, und prüfen, ob es notwendig ist, die Informationen, wie z. B. die Benutzervereinbarung, zu überprüfen.

  • Fehler beim Bot-Betrieb:TypeError:value has no property at

    img

    Da die Fehler, die im Backtest und beim Bot gemeldet werden, unterschiedlich sind, kann dieser Fehler nicht während des Backtests erkannt werden.

  • unable to open databaseFehler

    imgWenn das SystemMac OSDas System, achten Sie darauf, zu überprüfen, ob es sich um ein Genehmigungsproblem handelt. Oder es könnte der Fehler sein, der durch den vollen Platz der Festplatte des Geräts verursacht wurde, der die Erstellung der Bot-Datenbankdatei deaktivierte.

  • Fehler:do not support the function

    Es bezieht sich auf die Situation, dass das während des Backtests hinzugefügte Austauschobjekt eine Kryptowährungs-Spot-Plattform ist, aber die Futures-API-Funktion im Code aufgerufen wird.

  • Fehler:in SetCurrency OSError: exception: access violation reading 0x000000FCF25F0000

    In einer Kryptowährung FuturesPythonDas Backtest-System verwendet einen privaten Docker, und das Handelspaar wird im Code gewechselt, wodurch der Fehler gemeldet wird. Der Grund dafür ist, dass das Backtest-System keinen Kryptowährungs-Futures-Backtest für den Wechsel von Handelsparen unterstützt.

  • Fehler entschlüsselt [Bild]imgAufgrund der Änderung des FMZ-Konto-Passworts wurde der konfigurierte API-Key ungültig gemacht, was den Fehler verursachte. Lösung: konfigurieren Sie die Plattform API KEY erneut, stoppen und starten Sie den Docker neu und versuchen Sie dann, den Bot neu zu starten.

  • Pythonlokalen Rückprüfungsergebnissen für den MotorEOFerror.

    EOFDie Ausnahme ist ausreichend und Sie können es überall anrufenPythonwird unterstützt.

 # encoding: utf-8  

 '''backtest
 start: 2021-08-30 00:00:00
 end: 2022-09-05 00:00:00
 period: 1d
 basePeriod: 1h
 exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
 '''

 from fmz import *
 task = VCtx(__doc__)             # initialize backtest engine from __doc__  

 def main():  

     while not exchange.IO("status"):
         Sleep(1000)
     exchange.SetContractType("swap")
     
     while True:
         bars_1min = _C(exchange.GetRecords, PERIOD_M1)    # Get 1min K-line              
         print(len(bars_1min))
         _CDelay(2000)      

 # Calling the main function  

 try:
     main()
 except:
     print(task.Join(False))
  • Mylanguage beinhaltet einen sehr versteckten Fehler bei der Periodenberechnung, und der berechnete Wert kann N/A sein, wie im folgenden Beispiel:

    img

    Der Grund dafür ist, dass der Parameter der Berechnungszeit den Datenbereich übersteigt, was zur Berechnung des N/A-Wertes führt.

    img

  • In Mylanguage ist ein Fehler aufgetreten: Fehler beim Parsen, und die Strategie hat nur einfachen Code, die Anzahl der Fehlerzeilen ist sehr lang und die Fehlerursache kann nicht gefunden werden.

    Es könnte ein Fehler sein, der durch das Problem der frühen Mylanguage-Vorlagen verursacht wurde. Lösung: 1. Exportieren Sie die Strategie als xml-Datei. 2. Erstellen Sie eine neue leere Mylanguage-Strategie. 3. Importieren Sie die xml-Datei in die neu erstellte leere Strategie. 4. Fügen Sie einen Bot zum Testen hinzu.

  • Fehler:fatal error:unexpected signal during runtime execution...go routine 11[syscall,locked to thread]

    Überprüfen Sie, ob die StrategieC++verwendet einen Nullzeiger und schlägt vor, dass Sie den fehlertoleranten Modus-Backtest verwenden, um zu erkennen.

    img

  • Fehler beim Anrufenexchange.SetMarginLevel(10): Futures_OP 0:403:{"error":{"message":"Access Denied","name":"HTTPError"}}

    Überprüfen Sie, ob die zugehörigen Berechtigungen desAPI KEYDie von der Plattform angewandten Daten sind eingeschaltet.

  • Rücktestfehler:symbol not set

    Es liegt daran, dass Sie den Vertrag während des Backtests der Futures-Plattform nicht in den Code eingestellt haben.exchange.SetContractTypeFunktion in der API-Dokumentation.

  • FehlerERR_INVALID_POSITION

    Wenn das Backtest-System den Fehler meldet, handelt es sich im Allgemeinen um einen Fehler, der durch Fehler beim Schreiben der Strategie verursacht wird. Wenn Sie versuchen, eine Position zu schließen, wenn keine Position vorhanden ist oder die Anzahl der Positionen unzureichend ist, wird der Fehler gemeldet. Überprüfen Sie, ob durch unvollendete Aufträge eine Position eingefroren wird.

  • FehlerERR_INVALID_ORDERWenn das Backtest-System den Fehler meldet, handelt es sich im Allgemeinen um einen Fehler, der durch Fehler beim Schreiben von Strategien verursacht wird. Sie sollten beachten, dass Sie den Auftragspreis überprüfen (die Kryptowährungs-Futures im Backtest-System unterstützen temporär keine Marktordern), ob das Auftragsvolumen 0, eine negative Zahl oder einen Dezimalbruchteil ist (das Auftragsvolumen von Futures-Kontrakten wird durch den Vertragsbetrag berechnet, der eine ganze Zahl ist).

  • FehlerERR_INSUFFICIENT_ASSET

    Wenn der Backtest den Fehler meldet, zeigt er normalerweise an, dass der verfügbare Vermögenswert bereits nicht ausreicht, um die aktuelle Bestellung zu platzieren.

  • Binding Error:Cannot passnon-string to std::stringFehlerinformationen

    In Strategiecodes wird der Fehler in der Regel durch die falsche Angabe eines Attributnamens (mit einem undefinierten Attribut) verursacht.

  • Fehler{"status":6004,"msg":"timestamp is out of range"}

    Der Fehler bedeutet, dass der Zeitstempel des Servers außerhalb des Bereichs liegt, und Sie müssen den Zeitstempel des Servers ohne große Abweichung aktualisieren.

  • Fehlertimeout

    Der Fehler ist ein Timeout-Fehler, der einen Fehler anzeigt, der aufgrund der Nichtbeschaffung der Reaktionsdaten von der Plattformoberfläche für einen bestimmten Zeitraum nach dem Zugriff auf die Plattformoberfläche gemeldet wurde. Im Allgemeinen handelt es sich um ein Netzwerkzugangsproblem des Systems, in dem sich der Docker befindet (viele Probleme werden durch Wände verursacht), oder um ein Problem der Plattformoberfläche. Allgemeine Lösung: Verwenden Sie ausländische Server, um den Docker auszuführen.

  • Fehler beim Ausführen des Bots nach dem Schreiben der Strategie:syntax error invalid label

    Fehlerquelle:

    function main(){
        if(1){
            continue
        }
    }
    //That will cause the error during operation 
    

    continueDie Aussage muss in der Schleife verwendet werden!

  • Fehler:(CTP_T@9999)Error:140CTP:change the password when first log in, and please log in again after changingWelches Passwort wurde geändert?

    Hier wird angegeben, um zu ändernsimnowPasswort des Kontos; wenn Sie sich mit einem bestimmten Futures-Unternehmenskonto anmelden, müssen Sie auch das Passwort für den ersten Login ändern (ein neues Konto hat ein erstes Passwort, und Sie können das Konto nicht verwenden, ohne das ursprüngliche Passwort zu ändern). Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • Fehler:400:{"error":{"message":"Nonce is not increasing.This nonce:1523891993165,last nonce:1523891993165","name":"HTTPError"}}

    Es ist einnonceÜberprüfungsfehler und die Fehlerinformationen im Zusammenhang mitnonceSie können versuchen, die Uhrzeit des Systems zu synchronisieren, in dem sich der Bot-Docker befindet.

  • FehlerSecretkey decrypt failed

    img

    Der Fehler zeigt das Scheitern der Entschlüsselung anAPI KEY. Überprüfen Sie, ob Sie das FMZ-Konto-Passwort geändert haben, nachdem Sie dieAPI KEYVersuchen Sie, dieAPI KEYauf der Seite Plattform hinzufügen von FMZ, den Docker neu starten und den Bot erneut zum Testen ausführen.

  • Offene Position für Rohstofffutures Fehler:CTP: only close position

    Es gibt viele Gründe, warum der Bericht den Status voncan only close position. Es kann sein, dass das Konto eingefroren wurde (es wurde für eine lange Zeit nicht verwendet, mehr als 1 Jahr), oder es kann in den falschen Kanal eingeloggt werden (CTP hat viele Sitze). Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • Welcher Grund könnte es sein, wenn der Fehler:GetOrder(455284455):Error:invalid order id or order canceled.Er wird immer hochgehoben, wenn ich anrufe.exchange.Getorder?

    Wörtliche Bedeutung: die Bestellung wurde storniert oder die Bestell-ID ist ungültig. Grund: in einigen Plattformen, wenn Sie eine Bestellung stornieren, werden die Bestellinformationen nicht aufbewahrt, und sie werden eliminiert.exchange.GetOrder, wird der Fehler gemeldet, oder die von Ihnen angeforderte Bestell-ID ist ursprünglich falsch.

  • Fehler: Ratenbegrenzung, 429 Zu viele Anfragen

    img

    rate limit, 429 Too Many Requestszeigt an, dass die Häufigkeit des Zugriffs auf eine Plattformoberfläche zu hoch ist, so dass Sie die Häufigkeit des Zugriffs auf die Plattformoberfläche reduzieren müssen.

  • Immer erhöhen.Invalid order price/amountim Bot und Backtest

    Diese Art von Fehlern werden durch den falschen Preis und das Auftragsvolumen verursacht, die bei der Aufforderung der Auftragsfunktion übergeben werdenexchange.Buyoderexchange.SellFür...Negatives Auftragsvolumen, 0und andere Fehlererkennungsmethoden:Logum den Preis- oder Volumenparameter zu exportieren, der vor der Bestellung durchexchange.Buyoderexchange.Sell, um das Problem zu ermitteln.

  • Was für ein Fehler ist das?GetOrders:400:{"code":-1121,"msg":"Invalid symbol."}?

    Der Fehler bedeutet:ungültiges HandelspaarSie müssen überprüfen, ob die Einstellung des Handelspaares falsch ist.

  • Was bedeutet es, wenn es Fehlercodes gibt, wenn die Bots einen Fehler melden?

    Sie können die Erklärungen für die Fehlercodes von verschiedenen Plattform-Schnittstellen in der API-Dokumentation dieser Plattformen sehen.

Bot

  • Druckzeit der realen Marktertragskurve von Pine Language und Mylanguage Drucken Sie regelmäßig nach den Einstellungen der Vorlageparameter Pine language/Mylanguage und drucken Sie, wenn die Strategie vollständig geschlossen ist.

  • Der Mylanguage-Bot druckt die Anzahl der Signal-Trigger-Linien aus, aber es gibt keine Befehlsoperation.

    Es kann sein, dass die Parameter-Einstellungen der Mylanguage-Vorlage unangemessen sind, wie Genauigkeit, Mindestbestellvolumen und andere Parameter. Der Grund ist, dass die Signal-Trigger-Schicht erfolgreich beurteilt wurde und an der Trade-Execution-Schicht wurde beurteilt, dass die Bestellung aufgrund einiger Probleme mit den Parametern nicht platziert werden konnte, und keine Bestellung tatsächlich platziert wurde. Sie können sich auf die Mylanaguage-bezogenen Beiträge beziehen:https://www.fmz.com/bbs-topic/9788 https://www.fmz.com/bbs-topic/9791

  • Warum kann der Bot das Anforderungssignal nicht empfangen, wenn ich bereits eine Webhook-URL-Warnung auf Tradingview eingestellt habe?

    Überprüfen Sie, ob der API KEY in der Webhook-URL-Adresse korrekt ist. Der API KEY hier bezieht sich auf den erweiterten API KEY von FMZ, der in den Konto-Einstellungen in der oberen rechten Ecke von FMZ festgelegt ist. Überprüfen Sie, ob die Bot-ID in der Webhook-URL korrekt ausgefüllt ist. Überprüfen Sie, ob die erweiterten API KEY-Rechte von FMZ korrekt angegeben sind. Die Rechte werden in Englisch durch Kommas getrennt. Der Standardwert ist *, was alle Rechte bedeutet.

  • Warum sind die Symbole von Währungspaaren in der Plattform-Trading-Paar-Konfiguration begrenzt, wenn Sie einen Bot hinzufügen?

    Sie können die benutzerdefinierte Steuerung von Handelspaaren wie folgt einstellen (sie kann nur in Bots eingestellt werden, da die Symbole im Backtest-Rechenzentrum begrenzt sind, kann sie nicht im Backtest eingestellt werden):

    img

  • Warum können Tickers nicht erhalten werden, wenn ich FutuOpenD auf dem Server ausfange, und können die Tickers auf dem lokalen Gerät erhalten werden?

    Sie müssen überprüfen, ob die IP-Adresse des Servers im Ausland ist, denn FutuOpenD hat Grenzen für ausländische IP-Adressen. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • Es gibt keine Maßnahmen, wenn die Mylanguage-Strategie eingesetzt wird, und sie aktualisiert zunächst nur die TAQ.

    Überprüfen Sie, ob Sie das Modell des Schlusspreises verwendet haben, das durch die Strategie-Mylanguage-Vorlageparameter überprüft werden kann.

  • Futures auf Rohstoffe gesperrte Position von gestern Problem

    In CTP kann nur die Shanghai Futures Exchange zum Schließen von heutigen und gestrigen Positionen verwendet werden.
    Der Backtest unterscheidet nichtheute PositionenvonPositionen von gestern, so dass es nicht festgelegt werden kann, ob man heute oder gestern Positionen schließt. Einige Symbole in Bots, wieIF, haben die Standardeinstellung, dass, wenn es heute Positionen gibt, es heute Positionen zuerst schließen wird. Bei dieser Gelegenheit können Sie nicht angeben, und Sie können nur heute Positionen zuerst schließen. Daher werden die Positionsinformationen von heute und gestern Positionen zu einem zusammengeführt. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

  • Warum der Zeitstempel einer Bar inBITMEXK-Liniendaten haben eine Periode mehr als die der gleichen Position in anderen Plattform-K-Liniendaten?

    Der Grund ist:BITMEXnimmt die Endzeit des aktuellen Balkens als K-Zeitstempel ein (einige K-Zeiträume werden nicht vonBITMEXDie Zeitstempel dieser Perioden werden also durch die Startzeit von Bar generiert).

    img

  • In der Rohstoff-Futures-Strategie wird dieProfitin den von der Funktion zurückgegebenen Datenexchange.GetPositionunterscheidet sich von den berechneten variablen Gewinnen und Verlusten?

    Siehe API-Dokumentation:https://www.fmz.com/api#exchange.getposition. ProfitinCTP protocolist definiert alsGewinn und Verlust nach Marktwert, der den Gewinn und Verlust Ihrer aktuellen Position im Verhältnis zum Abwicklungspreis des vorherigen Handelstages darstellt. Derzeit unterstützt FMZ International Station nur Kryptowährungsgeschäfte.https://www.fmz.cn.

Backtest-System

  • Fehler gemeldet durch das Backtestsystem: Fehler gemeldet durch das Backtestsystem:
Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.

Überprüfen Sie, ob die Funktion Custom Data Source verwendet wird und ob die vom benutzerdefinierten Datenquelle-Dienst bereitgestellten Daten korrekt sind.

  • Wie werden die Gebühren für Testteilnehmer/Tester festgesetzt? Erprobung von Szenarien für Gebühren für den Abnehmer/Hersteller.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-02-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var t = exchange.GetTicker()
    exchange.Buy(t.Last - 10, 100/(t.Last - 10))
  
    while(1){
        t = exchange.GetTicker()
        Sleep(1000)
    }
}
  • Im Backtest von Binance Futures undBITMEX, wird die Finanzierungsquote in der Gewinn- und Verlustkurve berechnet, die durch das Backtest-System erzeugt wird?

    Die Finanzierungsquote wird in der Gewinn- und Verlustkurve berechnet, die durch das Backtest-System erzeugt wird.

  • Die Schaltfläche Backtest kann nicht angeklickt werden.

    Sie müssen überprüfen, ob der Proxy eingeschaltet ist, was das Ausladen der Dateien auf der Seite von Backtest beeinflussen wird; überprüfen Sie, ob es Fehlerinformationen auf der Seite-Konsole gibt.

  • In derEchte ZeckeBacktest, warum gibt es ein Limit von 50MB?

    Der reale Markt-Level-Backtest zeigt in dem realen Tick an, dass der TAQ tatsächlich Sekunde für Sekunde aufgezeichnet wird. Darüber hinaus gibt es Markt-Snapshots und Orderflussdaten, die von großem Volumen sind, so dass nur 50MB Datenvolumen unterstützt wird. Das heißt, der maximale Zeitbereich des realen Marktniveaus beträgt mehrere Stunden und die Backtestzeit kann nicht verlängert werden. Der reale Tick-Backtest wird hauptsächlich zur Prüfung von Hochfrequenzstrategien verwendet.

  • Warum hat es nicht funktioniert, als ich die Gebührenparameter im Backtest-System geändert habe?

    img

    Im Backtest-System gelten die Gebührenparameter, wenn Sie die Gebührenparameter zurücksetzen, nachdem Sie das alte Plattform-Handelspaar gelöscht und das Plattform-Handelspaar erneut hinzugefügt haben. Das zuvor hinzugefügte Plattform-Handelspaar kann durch die Steuereinheit auf der Seite nicht geändert werden.

  • Wie lässt sich die Backtest-Anpassung mehr Daten anzeigen lassen?

    Wenn Sie ein benutzerdefiniertes Diagramm (durch dieChartDie Datenmenge der Zeichnung, die im Backtest angezeigt wird, hängt mit derKarteDer Parameter steuert die maximale Strichzahl eines Diagramms.chart.resetDie Funktion wird verwendet, um einen Teil der alten Daten zu löschen.

  • C++Backtest zeigte nichts, es gab keine Fehlermeldung und keine Protokolle, und nichts auf der Seite änderte sich, nachdem ich auf die Schaltfläche geklickt hatte.

    Einige Fehler vonC++Sie können die möglichen Fehler, die während des Betriebs auftreten könnten, Stufe für Stufe erkennen, indem Sie die Ausschlussmethode verwenden.NANund Nummerntyp nachNANDas wird zum Absturz des Programms führen.

  • pythonDer Backtest ist verstopft!

    Man kann die Funktion nicht schreiben.Sleepin dertryFehlererkennung, und das Schreiben im Bild wird den Stau verursachen.

    img

  • Warum gibt es im Backtest nur mehrere Optionen für die Plattform und die Symbole für das Handelspaar sind ebenfalls begrenzt?

    Es gibt zu viele Handelspare auf Plattformen, so dass nur wenige repräsentative Handelspare für den Test im Backtest-System ausgewählt wurden.Zollkontrolledie von diesen Plattformen unterstützten Handelspare in Bots einzusetzen.

  • Warum unterstützt der Backtest nicht mehr Handelspare?

    Das Backtest-System unterstützt derzeit nur die Mainstream-Währungen einiger relativ großer Plattformen, und einige Währungen werden noch nicht unterstützt. Wenn Sie eine Strategie testen müssen, können Sie die Währungen durch andere ähnliche Währungen im Backtest ersetzen. In der Tat, außer dass die Marktkurse betroffen sein können, ist die Verwendung anderer ähnlicher Kryptowährungen zum Backtest der Strategie in Ordnung. Einfach ausgedrückt, versucht das Backtest-System, Mainstream-Handelspaare zu unterstützen, und der Backtest sollte nicht mit einem bestimmten Symbol übereinstimmen. Das heißt, wenn die Strategie wirksam ist, auch wenn es sich um eine Reihe zufällig generierter Marktquoteänderungen mit Handelsregeln oder die Marktquote anderer Währungen handelt, sollten im Grunde positive Gewinne erzielt werden. Dies ist die Universalität einer Strategie. Wenn sie nur einer Periode der Geschichte entsprechen kann oder auf einem bestimmten Symbol gut abschneiden kann, dann hat diese Strategie tatsächlich potenzielle Risiken oder Mängel.

  • Im Backtest-System: Begriffe vonAbschlussgewinn und Verlust, Gewinne und Verluste aus Beteiligungen, Marge, Geschätzte Rendite, Aktuell verfügbare USDT

    Abschlussgewinn und -verlust: Der kumulierte Gewinn und Verlust aller vor der aktuellen Position eröffneten und geschlossenen Geschäfte. Holding P&L: Das ist der Gewinn und Verlust der aktuellen Position, wenn die aktuelle Position nicht gehalten wird, ist er 0, Marge: Die Höhe der Marge, die von der aktuellen Position genutzt wird. Geschätzte Rendite: Der Gewinn und Verlust, der durch Schließen der aktuellen Position zum aktuellen Preis (hypothetisch) entsteht, wird dann dem kumulierten Gewinn und Verlust der geschlossenen Position hinzugerechnet, um die geschätzte Rendite zu berechnen. Derzeit verfügbare USDT: Der aktuelle für die Eröffnung von Positionen verfügbare USDT-Betrag.

  • Berechnung der Gewinnquote im Backtestsystem

    for (var i = 0; i < profits.length; i++) {
        if (i == 0) {
            if (profits[i][1] > 0) {
                winningResult++
            }
        } else {
            if (profits[i][1] > profits[i - 1][1]) {
                winningResult++
            }
        }
        if ((profits[i][1] + totalAssets) > maxAssets) {
            maxAssets = profits[i][1] + totalAssets
            maxAssetsTime = profits[i][0]
        }
        if (maxAssets > 0) {
            var drawDown = 1 - (profits[i][1] + totalAssets) / maxAssets
            if (drawDown > maxDrawdown) {
                maxDrawdown = drawDown
                maxDrawdownTime = profits[i][0]
                maxDrawdownStartTime = maxAssetsTime
            }
        }
    }
    

    Das oben genannte ist der Gewinnrate-Algorithmus, der wie folgt berechnet wird: Nachdem das Backtest-System regelmäßig den schwimmenden Gewinn und Verlust berechnet hat, wird eine schwimmende Gewinn- und Verlustkurve berechnet. Beginnen Sie mit dem ersten Punkt, um mit dem nächsten Punkt zu vergleichen. Wenn er höher ist, wird er als Gewinn aufgezeichnet, und wenn er niedriger ist, wird er als Verlust aufgezeichnet, und dann den Vergleich mit dem nächsten Punkt fortsetzen.

Docker

  • Wo ist das Unterrichtsvideo der BereitstellungLinuxEin Docker?

    Bilibili:https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • Ist es notwendig, die alte zu stoppen, wenn ich den Docker aktualisieren, und löschen Sie dierobotProgramm, und es wieder ausführen?

    Sie können direkt die alten löschenrobotProgrammdatei, ohne den Docker zu stoppen, dann ein neues komprimiertes Paket herunterladen, dekomprimieren die neuerobotDer Docker wird aktualisiert, aber der laufende Bot verwendet immer noch die alte Version im Speicher, und die neueste Version wird nur verwendet, wenn der Bot neu gestartet wird.

  • Docker-Einführung vonLinuxServer

    Schritte zur Installation eines Dockers aufLinux: https://www.bilibili.com/video/BV1eZ4y1c73v?share_source=copy_web

  • Bei AnwendungscreenUm das Docker-Programm auszuführenrobot, -bash:screen:command not foundDies ist ein sehr schwieriger Fall, und der Docker kann nicht laufen.

    LinuxDas System installiert sich nichtscreenSoftware, und die allgemeine Installation ist ausreichend.CentOSSysteminstallationsbefehl:yum install screen.

    Der aktuelle Docker unterstützt bereitsSSHSie können die Schaltfläche in den Hintergrund schalten, um den Schalter zu trennen.screen, können Sie den Befehl direkt imrobotVerzeichnis des Dockerprogramms:./robot -s node.fmz.com/xxxxxxx, und geben Sie das FMZ-Konto-Passwort ein; wennLogin OKDas Programm wird in der Tabelle "Dokumentation" angezeigt, was bedeutet, dass die Bereitstellung erfolgreich ist../robot -s node.fmz.com/xxxxxxxist der eindeutige Identifikationscode jedes FMZ-Kontos, und geben Sie einfach Ihren eigenen ein (nachdem das Konto angemeldet ist, springen Sie auf die Docker-Seite, klicken Sie auf Add docker auf die Add docker Seite zu sehen); Hinweis hier ist nicht nur einzugebenxxxxxxx.

  • Wo ist das Bot-Log, wenn ein Docker einen Bot ausführt?

    In derDB3Datenbankdatei in derlogsDas Docker-Programm befindet sich im Verzeichnis, der Dateinamen der Datenbank ist deridder Bot, und die Erweiterung istdb3.

  • InLinuxSystem, Verwendung./robot -lUm die Namen der Plattformen anzuzeigen, die vom Docker unterstützt werden, welche Plattform ist dieexchangeUnter den Namen?

    Der Austauschobjekt, dessenNameistexchangebezieht sich auf die Plattform,Allgemeines ProtokollEinzelheiten des allgemeinen Protokolls:https://www.fmz.com/api#通用协议

  • Die Docker-Seite zeigt keine Docker in Listenformat an.

    Wenn mehr als 5 Docker hinzugefügt werden, wird ein Steuerelement für die Anzeige im Listenformat angezeigt.

    img

  • Ist es normal, dass bei der Erstellung eines Bots ein Docker nicht von mir selbst in der Combo Box des Dockerparameters eingesetzt wird?

    Der von FMZ bereitgestellte öffentliche Docker ist ein zusätzliches Quick-Start-Tool für Anfänger, so dass die Benutzer beim Lernen keinen Docker bereitstellen müssen und für Anfänger einfach zu starten ist.

  • Ist die Adresszeichenfolge (./robot -s node.fmz.com/1234567) ausschließlich für mich oder andere, wenn ein Docker eingesetzt wird?

    Diese Adresse ist die eigene Adresskennung jedes Benutzers und der Wert der/1234567Ein Teil jedes Benutzers ist einzigartig, um den Benutzer zu identifizieren.Dashboard-> klickenDocker hinzufügen->Docker-Seite hinzufügen, und dann können Sie diese Adresse sehen; kopieren und direkt einfügen und Sie können es verwenden.

  • Die Umgebungsvariable des Systems, in dem sich der Docker befindet, hatpython2.7, aber warum wird immer noch gefragt, ob die Umgebungsvariable nicht gefunden werden kann?

    img

    Wann?windowsSystem installiert erstmalspython, müssen Sie die Umgebungsvariable einstellen und neu starten, um sie gültig zu machen.

Forschung

  • EOF-Fehler

    img

    Python-Backtest wird durch EOF-Ausnahme beendet (weil manchmal eine Strategie eine unendliche Schleife sein kann).

Plattformfunktion

  • Wie viele Bots kann ein Docker betreiben?

    Es gibt keine Grenze für die Anzahl, abhängig von der Serverkonfiguration und der Komplexität der Strategie. Insbesondere muss berücksichtigt werden, ob diese mehreren Bots auf die gleiche Plattformoberfläche zugreifen (unter Berücksichtigung der Häufigkeit der Schnittstellenanrufe, da mehr Bots eine höhere Häufigkeit bedeuten); im Allgemeinen sind 5 bis 6 Bots in Ordnung.

  • Docker, Bot und andere grundlegende Konzepterläuterungen

    https://www.fmz.com/bbs-topic/9152

  • Der Inhalt der Seiten Bot und Docker verschwindet

    Wenn der Inhalt des Bots und der Docker-Seite alle verschwunden sind, wenn der Bot und der Docker beide normal auf dem Server laufen, müssen Sie die Fehlermeldung des Browsers lesen, um zu sehen, ob der Browser ein Plugin installiert hat, was das globale Variablenverschmutzungsproblem verursacht. Die Lösung besteht darin, im Plugin des Browsers zu schreiben oder einen Browser ohne Browser-Plugin zu verwenden, um sich bei FMZ anzumelden.

  • Wird die Gebühr für die offiziellen Vermietungs- und Ein-Klick-Vermietung eines Docker-Servers automatisch verlängert, solange der FMZ-Konto ausreicht?

    Die gemieteten Strategien werden nicht automatisch Gebühren aufladen, und die Ein-Klick-Vermietung eines Dockers wird automatisch aufgeladen.

  • Ich möchte einige Funktionen in die Vorlage trennen, damit andere Strategien sie auch verwenden können.

    Die Beschreibung inFMZ APIUnterlagen:https://www.fmz.com/api#模板类库

  • Wird diewexAppSimulationsplattform von FMZ simulierter Bot nur zur Verfügung stellenBTC_USDTWie kann ich andere Handelspare anpassen?

    wexAppsimulierter Bot unterstützt derzeit nur wenige Haupthandelspare, und nicht alle Handelspare werden simuliert.

  • Ich habe ein Problem mit gleichzeitigen Aufrufen der erweiterten API, d.h. während der Gleichzeitigkeit wird immer ein annoce-Verifizierungsfehler gemeldet.

    Sie können mehrere FMZ-Plattformen erstellenAPI KEYs für gleichzeitige Anfragen.

  • Werden die auf einem Docker erstellten Debug-Threads den Log-Status beim Benutzen des Debug-Tools aufzeichnen?

    Wenn das Debug-Tool ausgeführt wird, wird das zuvor erstellte Exchange-Objekt beibehalten und nicht freigegeben, wenn zum zweiten Mal nichts geändert wird.WährungsmodusoderHebelwirkung.

  • Warum, als ich diewexAppSie simulierten die Plattform und meldeten sich an, es gab keine Vermögenswerte, sowohl in der Brieftasche als auch im Währungsabschnitt?

    Nach der Registrierung müssen Sie Ihre E-Mail bestätigen, um Ihr Konto zu aktivieren, und Sie können Ihr Konto im persönlichen Zentrum aktivieren.

  • Die Log-Informationen sind relativ lang und abgeschnitten, und am Ende zeigte es"... Aber ich muss die Struktur der Daten sehen, was soll ich tun?

    Die Lösung besteht darin, dieDebug-Toolauf derDashboard, und verwenden SiereturnDie Anzeige des Inhalts wird nicht abgeschnitten.

  • Was machen die Funktionen mit$.in derJavaScriptWas bedeutet Strategie?

    Die Funktionen mit Beginn$.sind Exportfunktionen von Vorlagen, ähnlich wie die Schnittstellenfunktionen von Modulen; siehe Beschreibung in der API-Dokumentation:https://www.fmz.com/api#模板类库

    Die Exportfunktionen derpythonStrategie mitext.Ich habe es am Anfang gesehen.

  • Wie zeichnen Sie gerade Linien auf dem Marktdiagramm des Backtest-Ergebnisses?

    Es gibt zwei Arten von Diagrammen, die schließlich im Backtest angezeigt werden: eine wird vom System erzeugt, die die Strategie nicht kontrollieren kann.ChartFunktion der FMZ-API-Schnittstelle im Strategiecode.https://www.fmz.com/api#chart...

  • Ich habe den Google-Validator aus Versehen gelöscht, wie kann ich den Google-Validator zurücksetzen? Auf der Account-Einstellungsseite der Plattform konnte ich nicht den Ort finden, an dem ich ihn per E-Mail zurücksetzen kann.

Sie können sich mit einem anderen Browser in die FMZ-Plattform einloggen und wenn Sie den Google-Verifizierungscode eingeben müssen, klicken Sie auf Enable twofactor, um auf die Seite für die Entbindung per E-Mail zu springen.

Andere

  • PlattformAPI KEYSicherheitskontrolle

    DieAPI KEYDie Daten des Benutzers werden verschlüsselt und auf der Browserseite hochgeladen.Https protocol.

  • Strategiesicherheitsfrage

    Dazu können Sie sich auf:https://www.fmz.com/bbs-topic/1657.

  • FMZ-Rechnungswesen

    Abrechnungsstandards für den Live-Handel:

    1. Die Abrechnung erfolgt einmal pro Stunde für jedes Live-Handelskonto (0,05 USD/Stunde) und basiert auf einer Nutzungsdauer von einer Stunde.
    2. Die Einstellung und Wiederaufnahme des Live-Handelskontos innerhalb einer Stunde führt nicht zu einer doppelten Abrechnung.
    3. Ein Live-Handelskonto, das bereits gestoppt wurde, wird für die nächste Stunde nicht berechnet.
    4. Neugegründete Live-Handelskonten werden sofort für eine Stunde in Rechnung gestellt.

    img

    Die oben genannte Abrechnungszeit bezieht sich auf die Bearbeitungszeit für Abrechnungsvorgänge. Aufgrund der für diese Abrechnungsvorgänge erforderlichen Zeit kann die Abzugszeit verzögert werden. Zum Beispiel, wenn die aktuelle Abrechnungszeit 9:00 Uhr ist, ist es möglich, dass die Bearbeitungszeit für diese Abrechnungsvorgänge 9:02 Uhr ist (wie im Screenshot gezeigt). Dies wird während der nächsten Abrechnungsvorgänge angepasst (die nächste Abzugszeit wird 10:00 Uhr sein, keine Vorausabrechnung).

  • Die Talib-Bibliothek verarbeitet Daten mit begrenzter Präzision.

    Wenn die Daten besonders klein sind, werden sie abgeschnitten und schließlich als 0 angezeigt. Siehe:https://github.com/TA-Lib/ta-lib-python/issues/157


Mehr