Der Nachteil dieses Mechanismus ist offensichtlich: auf einer K-Linie kann nur ein Verkauf erzeugt werden, und der Preis wird normalerweise auf der K-Linie geschlossen. Und eine K-Linie kann nur vier Preise erhalten, und es gibt keine Informationen darüber, wie sich der Preis in einer K-Linie ändert, ob der höchste Preis zuerst eintritt oder der niedrigste Preis zuerst eintritt.
FMZ-Plattform-Rückmeldung gibt es in zwei Arten: Analog-Level-Rückmeldung und Realdisk-Rückmeldung. Die Analog-Level-Rückmeldung erzeugt 14 Rückmeldungszeitpunkte pro Untergrund-K-Linien-Zyklus, basierend auf dem Tick, mit dem die Analogie erzeugt wird.Die tatsächliche Tick-Stufe ist die tatsächliche Tick-Sammlung, die etwa alle paar Sekunden stattfindet und derzeit teilweise die tatsächliche Tiefe (einschließlich 20 Schichten) und die tatsächliche Einzeltransaktion unterstützt.Die Datenmenge ist groß und die Wiederholungsgeschwindigkeit ist langsam, so dass eine besonders lange Zeit nicht zurückgeführt werden kann. Der Wiederholungsmechanismus von FMZ ermöglicht es, dass die Strategie mehrmals auf einer K-Leitung gehandelt wird, was eine Situation vermeidet, in der nur ein Verkaufspreis geschlossen werden kann, und ist genauer und berücksichtigt die Wiederholungsgeschwindigkeit.https://www.fmz.com/digest-topic/4009
Die Wiederholungsstrategie ist wie bei der Festplatte und ist ein toter Kreislauf. Da die Wiederholung an unterschiedlichen Wiederholungspunkten springt, kann sie ohne Sleep durchgeführt werden und springt automatisch zum nächsten Zeitpunkt am Ende eines Kreislaufs.Sleep(10)
Ich habe mich in meinem Haus aufgehalten, um nicht zu sterben.
Die Reviews-Engine trifft den Verkaufspreis anhand des Bestellpreises und des Abrechnungszeitraums des Benutzers, wenn der Kaufpreis höher ist als der Verkaufspreis, um eine Transaktion zu verkaufen. Wenn keine Transaktion möglich ist, wird eine Hangover-Liste erzeugt.
GetRecords()
Die Funktion kann auch die Parameter für die Periode in ihrem Code angeben.Wie bereits erwähnt, kann es passieren, dass die API auf der Festplatte verwendet wird, wenn der Zugriff fehlschlägt und zurückkehrt.null
Das ist eine sehr schwierige Strategie, da die Daten, die in den Datensätzen gespeichert werden, Fehler verursachen und die Festplatte zum Stillstand bringen.
Die häufigsten Fehler:
Bevor man die API verwendet, um Daten zurückzugeben, muss man entscheiden, ob sie null sind.
//1.判断为null进行处理
var ticker = exchange.GetTicker();
while(ticker == null){
Log('ticker 获取出错');
ticker = exchange.GetTicker();
}
Log(ticker.Last);
// 2.判断不为null再进行引用
var ticker = exchange.GetTicker();
if(!ticker){
Log(ticker.Last);
}
// 3._C()函数重试
var ticker = _C(exchange.GetTicker);
Log(ticker.Last);
// 4. try catch容错
try{
var ticker = exchange.GetTicker();
Log(ticker.Last);
}
catch(err){
Log('ticker 获取出错');
}
Wenn Sie falsche Informationen erhalten möchten, können Sie sie verwenden.GetLastError()
, wird die letzte Fehlermeldungsstring zurückgeben, um die Fehler zu differenzieren.
In der Tat, es gibt eine Reihe von Fehlern bei der Zusammenfassung von Foren-Top-Posts:https://www.fmz.com/bbs-topic/1427Hier finden Sie eine Auswahl von Problemen, die Sie mit Ctrl+F durchsuchen können.
Wie wird ein Treuhänder eingesetzt?
Weitere Informationen finden Sie im Abschnitt Administrator hinzufügen.
Kann man eine Strategie finden, wie man das schreibt?
https://www.fmz.com/marketsEinige von ihnen bieten Transkriptionsdienste an oder beraten in Gruppen und müssen sich selbst anmelden, auf eigenes Risiko.
Zugriff auf alle Schnittstellen zeigt eine Auslaufzeit an
Dies bedeutet, dass der Zugriff auf die Interface der Börse überholt wird, wenn es gelegentlich nicht zu einem Problem kommt, wenn immer darauf hingewiesen wird, dass das Netzwerk, in dem es sich befindet, nicht zugänglich ist, und dass ein ausländischer Server benötigt wird.
Fehler beim Erstellen von ERR_INVALID_POSITION
Die Fehlermeldung des Retargeting-Systems, die im Allgemeinen für Strategien mit Fehlern geschrieben wird, führt zu einem Versuch, eine Position ohne oder mit unzureichender Anzahl von Positionen zu platzieren.
Symbol nicht eingestellt
Futures-Exchange-Rückprüfungen, bei denen kein Vertrag in den Code eingestellt wurde, siehe exchange.SetContractType
BITMEX 429 Fehler, {
error :{ message : Rate limit exceeded retry in 1 seconds...... }}
Die Frequenz für den Zugang zu den Börsen-Interfaces ist zu hoch.
Der Zeitstempel ist außerhalb der Reichweite.
Server-Zeitfenster außerhalb des Bereichs benötigen eine Aktualisierung der Serverzeit, die nicht zu weit abgelenkt werden kann
GetOrder ((455284455)): Fehler: ungültige Bestell-ID oder Bestellung storniert.
Einige Börsen haben ihre Bestellungen abgesagt, und die Information über diese Bestellung ist nicht verfügbar, da die Börse diese nicht aufrechterhält.
GetOrders: 400: {
code :-1121, msg : ungültiges Symbol. }
Ein ungültiges Transaktionspaar wird überprüft, ob ein Fehler bei der Einstellung des Transaktionspaares vorliegt.
Geheime Schlüssel entschlüsseln fehlgeschlagen
Bei einer Änderung des FMZ-Codes nach der Konfiguration von APIKEY, versuchen Sie, die APIKEY neu zu konfigurieren, indem Sie die Exchange-Seite in FMZ hinzufügen.
Signature not valid: Invalid Submission time or incorrect time format (Unbestimmte Zeitspanne oder falscher Zeitformat)
Es wird empfohlen, Linux-Server zu verwenden, oder in diesen Windows-Systemen, in denen das Problem auftritt, Zeitsynchronisierungssoftware zu installieren.
Warum ist ein globaler Proxy eingerichtet, der den Administratoren keinen Zugriff auf die API der Börse gibt?
Global Agents haben keine Agent-Host-Netzwerk-Ports, daher ist es besser, Hosts mit ausländischen Servern aufgrund von Verzögerungen zu installieren.
Wie bleibt die Strategie lokal und nicht auf dem hochgeladenen FMZ?
Mit Python kann man lokale Dateien importieren, die normalerweise auf der Basis der FMZ-API geschriebenen Strategien als Dateien auf dem eigenen Server unter dem Ausführungsweg speichern und direkt auslesen.
#!python2.7
def run(runfile):
with open(runfile,"r") as f:
exec(f.read())
def main():
run('my.py')
Wie man ein Testnetz für eine Börse nutzt oder die API-Basisadresse ändert
Mit exchange.SetBase kann man direkt auf die entsprechende API-Basisadresse wechseln.
exchange.SetBase("https://www.okex.me")
SchnüfflerApisäure
WissenschaftWie funktioniert die Implementierung von Strategien lokal? Ich habe eine einfache Log-Ausgabe geschrieben und folge der Bewegung am Ende des Satzes. Der erste Schritt ist, mit einem Laptop als Server den Administrator zu starten. Der zweite Schritt ist das Schreiben eines einfachen Test.py-Programms, das Log-Informationen ausführt (API-Interface-Funktion für FMZ). Schritt 3: Wie am Ende des Textes schreiben Sie eine Runfile, die mit run.py aufgerufen wird und mit test.py ausgeführt wird.
Gyp9Was ist mit dem Quantified Cloud Trading Kurs, den ich gekauft habe?
Ich bin nicht derjenige, der das sagt.viele
Ich bin nicht derjenige, der das sagt.Ich bin hier.
Ich bin ein Freund von dir.Lernen
WqyEs gibt einen kleinen Schreibfehler, GetAccount erhält das Konto.
Lieutenant Yayoi.Getorder outtime, wie geht's mit der OKEX-Börse?
Ich bin ein junger Mann.Wenn Sie nicht in der Lage sind, die garantierten Anlagegebühren zu erhalten, bis zu 0% werden die garantierten Anlagegebühren gezwungen.
Schiebung 2020Ich sehe die 1 Minute k-String-Operation, also kann die Sleep-Zeit für den Python-Todzyklus auf 0.1s gesetzt werden, also sleep ((100)
Ostwindeexchange.SetDirection (("closebuy"); // Wenn es sich um einen dauerhaften Vertrag handelt, setzen Sie exchange.SetDirection (("sell") direkt ein Hier habe ich OKex-Permanente-Kontrakte ausprobiert, wenn sie auf Sell gesetzt werden, werden sie direkt frei, und das ist nicht sehr billig.
Ostwindeexchange.SetDirection (("closebuy"); // Wenn es sich um einen dauerhaften Vertrag handelt, setzen Sie exchange.SetDirection (("sell") direkt ein Hier habe ich OKex-Permanente-Kontrakte ausprobiert, wenn sie auf Sell gesetzt werden, werden sie direkt frei, und das ist nicht sehr billig.
OstwindeIn GetOrders-Code gibt es zwei Spellfehler. Eines ist, dass die Funktion in fuction geschrieben wurde, das andere in der Bedingung für den For-Loop.
OstwindeIch habe mich geirrt. exchange.Buy ((-1, 0.5), das ETH_BTC-Paar, das für den Kauf von 0,5 BTC auf der Börse steht exchange.Buy ((price, 0.5)), wenn es sich um eine solche Preisbeschränkung handelt, bedeutet, dass 0.5ETH zum Preis des Preises gekauft wird
Ostwindeexchange.Buy ((-1, 0.5), das ETH_BTC-Paar, das für den Kauf von ETH in Höhe von 0,5 BTC zum Marktpreis steht Hier sollte man sich für den Marktpreis von 0,5 ETH kaufen.
Gyp9Ich danke Ihnen.
Das GrasDas Programm ist seitdem im Internet verfügbar: https://study.163.com/course/courseMain.htm?share=2&shareId=400000000602076&courseId=1006074239&_trace_c_p_k2_=c3f5d238efc3457d93c8b92c0398d2b2
Das GrasWeChat ist ein Webseite-System, das Sie in die Gruppe bringt.
WqyWenn Sie Probleme haben, fragen Sie, ob wir eine offizielle Kommunikationsgruppe haben?
Das GrasÄndert
Das GrasWiederholung
Das GrasSie können diese Informationen mit GetRawJSON oder in einem Info-Feld anzeigen.
OstwindeIch habe viele Schreibfehler in meinem Code gefunden, haha.
Das GrasOh, das ist korrigiert, danke für die Fehler.
Das GrasEinige dauerhafte Verträge erlauben eine Bindung an zwei Wege und benötigen ein Bindungssystem. Ich habe aktualisiert, es war nur Bitmex.