Die erweiterte API auf der FMZ Quant Trading Platform wurde kürzlich aktualisiert, um den direkten Zugriff zu unterstützen, so dass sie das TradingView-Alarmsignal leicht an den FMZ Quant Trading Platform-Roboter für den automatischen Handel senden kann.
Einige Links zur API-Dokumentation über FMZ (https://www.fmz.com/api)
Die Hauptfunktion der erweiterten API besteht darin, Schnittstellen für verschiedene Funktionen auf der FMZ Quant Trading Platform für programmatische Operationen bereitzustellen, z. B. Roboter gleichzeitig in Chargen zu starten, Roboter gleichzeitig zu starten und zu stoppen, Roboterinformationsdetails zu lesen usw. Wir verwenden die erweiterte API auf der FMZ Quant Trading Platform, um den Bedarfsplan des TradingView-Alarmsignals zu realisieren, der nur dieCommandRobot(RobotId, Cmd)
Diese Schnittstelle kann dem Roboter interaktive Anweisungen mit einer spezifizierten ID senden und der Roboter kann nach Erhalt der Anweisungen entsprechende Operationen ausführen (z. B. eine Bestellung zum Kaufen, Verkaufen usw.).
Um die erweiterte API zu verwenden, müssen Sie eineAPI KEY
für Ihr eigenes FMZ-Konto zuerst:
Der geheime Schlüssel vonAPI KEY
besteht ausaccess key
undsecret key
. API KEY
Der Schlüssel zur Quantifizierung der FMZ Quant Trading Plattform des programmatischen Betriebs ist, so dass sie ordnungsgemäß aufbewahrt und nicht offengelegt werden muss.API KEY
Auf FMZ können Sie Berechtigungen angeben.API KEY
Zugriff auf dieCommandRobot(RobotId, Cmd)
Für dieses Beispiel, basierend auf Sicherheitsüberlegungen, geben Sie bitte nur die erweiterteAPI KEY
Auf FMZ-Zulassung für den Zugang zuCommandRobot(RobotId, Cmd)
interface.
Der direkte Zugangsmodus bedeutet, dass dieAPI KEY
wird direkt in der URL-Abfrage geschrieben. Zum Beispiel kann die URL für den Zugriff auf die erweiterte API auf der FMZ Quant Trading Platform wie folgt geschrieben werden:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
Wo ist er?https://www.fmz.com/api/v1
ist die Schnittstellenadresse,?
wird durchQuery
, Parameteraccess_key
Der geheime Schlüssel wird beispielsweise durch xxx dargestellt (ausfüllen Sie den Access_key Ihres eigenen FMZ-Kontos, wenn Sie ihn verwenden).secret_key
wird durch yyyy (füllen Sie in Ihrem eigenen Konto secret_key, wenn Sie es verwenden) dargestellt.method
ist der spezifische Name der erweiterten API-Schnittstelle, auf die zugegriffen werden soll, undargs
ist der Parameter dermethod
Interface, die aufgerufen werden soll.
Wir verwenden TradingView als Signalquelle, um Transaktionsbefehle an den FMZ Quant Trading Platform Roboter zu senden.CommandRobot
interface.
Die WebHood-Funktion in der Warnung kann nicht auf der Basisebene verwendet werden.
In der TradingView-Diagramm, können Sie einen Indikator zum Diagramm oder andere Skript-Algorithmen hinzufügen.MACD
Wir setzen die K-Linienperiode auf 1 Minute (für schnellere Signal-Auslösung und einfache Demonstration).
Klicken Sie mit der rechten Maustaste auf das Diagramm und wählen Sie im Popup-Menü
AusgestattetWebHook
In diesem Punkt können wir den Überwachungssignalroboter auf der FMZ Quant Trading Plattform starten.
Strategie-Quellcode:
// Global variable
var BUY = "buy" // Note: The command used for spot
var SELL = "sell" // The command used for spot
var LONG = "long" // The command used for future
var SHORT = "short" // The command used for future
var COVER_LONG = "cover_long" // The command used for future
var COVER_SHORT = "cover_short" // The command used for future
function main() {
// Clear the log and delete it if not needed
LogReset(1)
// Set precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Identify future or spot
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added exchange is a futures exchange:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct Contract set to null"
} else {
Log(exchange.SetContractType(Ct), "set contract:", Ct, "#FF0000")
}
} else {
Log("The added exchange is a spots exchange:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect interactive commands
lastMsg = "command:" + cmd + "time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd incorrect information:", 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("The spots exchange is not supported!", "#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("The futures exchange is not supported!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "status information",
cols : ["data"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // Use it when testing
LogStatus(_D(), eName, "Last received command:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
Strategie-Quellcode (https://www.fmz.com/strategy/203063)
Der Strategie-Code ist sehr einfach.GetCommand
Wenn eine interaktive Nachricht an das Strategieprogramm gesendet wird,GetCommand
Funktion gibt die Nachricht zurück, und das Strategieprogramm führt den entsprechenden Transaktionsvorgang nach dem Nachrichteninhalt durch. Die interaktive Schaltfläche wurde auf diese Strategie gesetzt, um die interaktive Funktion zu testen. Zum Beispiel, führen Sie diese Strategie aus und konfigurieren Sie den Roboter mitWexApp
, eine Simulationsbörse der FMZ Quant Trading Platform.
Wir klicken auf die interaktive Schaltfläche, um die Funktion des Roboters zu testen, die Bestellung zu kaufen zu empfangen, dann können wir sehen, dass die Befehlszeile, die der Roboter empfängt, lautet:buy:0.01
.
Wir müssen nur die WebHook-Anfrage-URL, wenn die TradingView-Warnung ausgelöst wird, um auf dieCommandRobot
die Interface der erweiterten API der FMZ Quant Trading Platform, der übertragene Parameter istbuy:0.01
.
Zurück in der TradingView, füllen wir die URL des WebHook. Füllen Sie Ihren eigenen API-Key für die Parameteraccess_key
, secret_key
. Diemethod
Wir müssen nur auf dieCommandRobot
die erweiterte API-Schnittstelle.args
ist in Form von[Robot ID, Command String]
Wir können die Roboter-ID direkt über die Roboter-Seite erhalten, wie in der Abbildung gezeigt:
Diesmal lassen wir das Signal auslösen, kaufen 0,02 Münzen, und die Befehlszeile lautet:buy:0.02
. Dann ist die WebHook-URL abgeschlossen. Diese Methode unterstützt nur das Schreiben des Signals in der URL. Wenn Sie den Inhalt der Warnmeldung erhalten möchten, die von der TV-Strategie selbst gesendet werden kann, wenden Sie sich anhttps://www.fmz.com/api#direkte Überprüfung.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args= [191755,"buy:0.02"]
Auf der TradingView eingestellt:
Warten Sie, bis das Signal ausgelöst wird... Warten Sie, bis das Signal ausgelöst wird... Warten Sie, bis das Signal ausgelöst wird... Ich...
Dann erhält der Roboter das Signal, auf diese Weise können wir die verschiedenen Chartfunktionen und Indikator-Algorithmen auf TradingView verwenden, um mit dem Strategie-Roboter der FMZ Quant Trading Platform zusammenzuarbeiten, um den gewünschten automatischen Handel zu erzielen.
Der Strategie-Code von