Wertpapiere von Futu
Es unterstützt FutuNN Live-Handel und Demo-Handel, müssen Sie herunterladenFutuOpenD
App. - Was ist?
Bei AnwendungFutuOpenD
Um auf den Demo-Handel zuzugreifen, werden einige Aktiencodes nicht unterstützt, so dass Sie nicht handeln können, aber die mobile App FutuOpenD kann Demo-Handel betreiben.
Für die Konfiguration von Austauschobjekten, laufendFutuOpenD
Software usw. auf FMZ Quant, sieheDokument zur Beschreibung der Konfiguration von Futu Securities.
Häufigkeit der Schnittstellenanrufe
FürGetOrder
, GetOrders
, GetPositions
, GetAccount
FunktionsnutzungDaten im CacheStandardmäßig gibt es also keine Grenze für die Anruffrequenz.
Wenn neue Daten verfügbar sind,FutuOpenD
die Daten automatisch aktualisiert undDaten im Cachewird synchron aktualisiert.
Dieexchange.IO("refresh", true)
Funktion kann aufgerufen werden, um Caching zu deaktivieren, wennCaching deaktivierenDann ist die Anruffrequenzmaximal 10 Abfragen pro 30 Sekunden, wenn die Frequenzgrenze überschritten wird, wird ein Fehler gemeldet.
Aktiencode
Zum Beispiel:600519.SH
Der Strategiecode verwendet dieexchange.SetContractType()
Funktion zur Festlegung des Aktiencodes, beispielsweise:
function main() {
var info = exchange.SetContractType("600519.SH") // Set to stock 600519.SH, namely Kweichow Moutai, and the account will be switched to the China mainland market
Log(info)
Log(exchange.GetAccount()) // The currently set stock is Kweichow Moutai. At this time, call the GetAccount function to obtain the account assets, which are the account assets of the China mainland market
Log(exchange.GetTicker()) // Obtain the current price information of Kweichow Moutai stock
}
def main():
info = exchange.SetContractType("600519.SH")
Log(info)
Log(exchange.GetAccount())
Log(exchange.GetTicker())
void main() {
auto info = exchange.SetContractType("600519.SH");
Log(info);
Log(exchange.GetAccount());
Log(exchange.GetTicker());
}
Funktionen zur Festlegung der Richtung der Transaktionexchange.SetDirection
, Funktionen zur Auftragserteilungexchange.Buy
/exchange.Sell
- Ich weiß.
die Rücknahmefunktionexchange.CancelOrder
und die Abfrageordnungsfunktionexchange.GetOrder
werden auf die gleiche Weise verwendet wie auf dem Futures-Markt.
Kontoinformationsdatenformat:
Definition des MarktesTrdMarket
Unterscheidung zwischenHong Kong Market
, United States Market
, undChina Mainland Market
.
Auszüge aus demFutu API
Dokumentation:
const (
TrdMarket_TrdMarket_Unknown TrdMarket = 0 //Unknown Trading Market
TrdMarket_TrdMarket_HK TrdMarket = 1 //Hong Kong Trading Market
TrdMarket_TrdMarket_US TrdMarket = 2 //United States Trading Market
TrdMarket_TrdMarket_CN TrdMarket = 3 //China Mainland Trading Market
TrdMarket_TrdMarket_HKCC TrdMarket = 4 //Hong Kong A-share Trading Market
TrdMarket_TrdMarket_Futures TrdMarket = 5 //Futures Trading Market
)
Erhalten Sie die Kontoinformationen, dieexchange.GetAccount()
Funktion gibt zurück:
{
"Info": [{
"Header": {
... // omit
"TrdMarket": 1 // In the Info raw information, market ID, indicates that the account assets are used for trading in the Hong Kong market
},
"Funds": { // Information on the account's assets in that market
...
}
}, ...],
"Stocks": 0,
"FrozenStocks": 0,
"Balance": 1000000, // Asset values in the current market
"FrozenBalance": 0
}
FutuOpenD
Unterscheidung nach Regionen auf der Grundlage der eingeloggtenEigentumsrechtAnschrift
Es gibt Einschränkungen für den Zugang zu Marktdaten für Konten, die von IP-Adressen außerhalb des Festlands eingeloggt wurden, die in der offiziellen Dokumentation vonFutuOpenD
.
Futures_Binance
Es unterstützt den Dual-Position-Modus von Binance-Futures; Sie könnenexchange.IO
zum Wechseln:
function main() {
var ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=true")
// ret : {"code":200,"msg":"success"}
Log(ret)
}
def main():
ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=false")
Log(ret)
void main() {
auto ret = exchange.IO("api", "POST", "/fapi/v1/positionSide/dual", "dualSidePosition=true");
Log(ret);
}
Es unterstützt das Wechseln zwischen gekreuzter Position und isolierter Position:
function main() {
exchange.SetContractType("swap")
exchange.IO("cross", true) // Switch to crossed position
exchange.IO("cross", false) // Switch to isolated position
}
def main():
exchange.SetContractType("swap")
exchange.IO("cross", True)
exchange.IO("cross", False)
void main() {
exchange.SetContractType("swap");
exchange.IO("cross", true);
exchange.IO("cross", false);
}
Es unterstützt den Wechsel zum Binance-Unified-Account-Modus:
function main() {
exchange.IO("unified", true) // Switch to unified account mode
exchange.IO("unified", false) // Switch to commom mode
}
def main():
exchange.IO("unified", True)
exchange.IO("unified", False)
void main() {
exchange.IO("unified", true);
exchange.IO("unified", false);
}
Es unterstützt die Einrichtung des STP-Modus für Binance-Spot-/Futures-Orders:
function main() {
// "NONE" indicates that STP mode is disabled, other parameters are: "EXPIRE_TAKER", "EXPIRE_MAKER", "EXPIRE_BOTH"
exchange.IO("selfTradePreventionMode", "NONE")
}
def main():
exchange.IO("selfTradePreventionMode", "NONE")
void main() {
exchange.IO("selfTradePreventionMode", "NONE");
}
Futures_HuobiDM
exchange.IO("signHost", "")
um eine leere Zeichenfolge festzulegen.
Verwendungexchange.IO("signHost", "https://aaa.xxx.xxx")
die Basisadresse von Huobi Futures, die an der Signaturprüfung teilnimmt, zu wechseln.
Verwendungexchange.IO("base", "https://bbb.xxx.xxx")
oderexchange.SetBase("https://bbb.xxx.xxx")
Um die Basisadresse der Plattformoberfläche zu wechseln.XXX_USDT
, die Funktion verwendenexchange.SetContractType("swap")
um den Vertragskode aufswap
Dauervertragexchange.IO("cross", true)
kann aufUSDT
-Margined perpetual contract im Modus der gekreuzten Position.exchange.IO("cross", false)
Der ursprüngliche Standard ist der isolierte Positionsmodus.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.Weiß nicht.
Wechseln Sie spezielle Handelspare:
Es unterstützt Huobi-Spot-Leverage-Token wie:LINK*(-3)
Der von der Börse definierte Code lautet:link3susdt
, die geschrieben wird, wenn die FMZ Quant Trading Platform das Handelspaar setztLINK3S_USDT
- Ich weiß.
Es ist auch möglich, die Handelspare in der Strategie zu wechseln:
function main() {
exchange.SetCurrency("LINK3S_USDT")
Log(exchange.GetTicker())
}
def main():
exchange.SetCurrency("LINK3S_USDT")
Log(exchange.GetTicker())
void main() {
exchange.SetCurrency("LINK3S_USDT");
Log(exchange.GetTicker());
}
Futures_OKX ((Futures_OKCoin/Futures_OKEX)
exchange.IO("simulate", true)
Sie können auf die simulierte Handelsumgebung wechseln.exchange.IO("simulate", false)
Die ursprüngliche Standardeinstellung ist die Live-Handelsabteilung.exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
Um in den Isolierpositionsmodus zu wechseln, ist der ursprüngliche Standardmodus der Kreuzposition.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.OKX ((OKCoin/OKEX)
exchange.IO("simulate", true)
Wenn Sie auf die Live-Handelsumgebung wechseln möchten, verwenden Sieexchange.IO("simulate", false)
Um auf den Live-Handel umzusteigen, ist das Live-Handelsumfeld der ursprüngliche Standard.Futures_Bibox
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
um in den Modus der isolierten Position zu wechseln; der ursprüngliche Standard ist der Modus der gekreuzten Position.GetOrders
undGetTrades
Funktionen werden nicht unterstützt.Futures_Bitget
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.Futures_MEXC
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.Futures_GateIO
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.exchange.IO("unified", true)
Umschalten von einheitlichen Konten;exchange.IO("unified", false)
die Rückkehr zu nicht einheitlichen Konten.Schnittstelle
exchange.IO("unified", true)
die Verwendung von Unified Accountsexchange.IO("unified", false)
die Rückkehr zu nicht einheitlichen Konten.Futures_Bybit
exchange.IO("cross", true)
Um in den Kreuzstellungsmodus zu wechseln, verwendenexchange.IO("cross", false)
Sie können die Ausrüstung in den Modus der isolierten Position umschalten.exchange.IO("unified", true)
Um auf die einheitliche Margin-Schnittstelle zu wechseln, verwendenexchange.IO("unified", false)
um wieder auf die normale Vertragsschnittstelle umzusteigen.exchange.IO("unified", true)
zur Umstellung auf die einheitliche Margin-Schnittstelle undexchange.IO("unified", false)
Zurück zur gemeinsamen Vertragsoberfläche.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.Futures_Pionex
exchange.IO("cross", true)
Um in den Kreuzstellungsmodus zu wechseln, verwendenexchange.IO("cross", false)
Sie können die Ausrüstung in den Modus der isolierten Position umschalten.exchange.IO("dual", true)
Umschalten auf bidirektionale Positionen undexchange.IO("dual", false)
Umschalten auf einseitige Positionen.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.Futures_BitMEX
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.BitMEX
Bitfinex
Futures_Phemex
exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.Rucksack Es unterstützt die Einstellung des STP-Modus für Backpack-Spot-Orders:
function main() {
// "Allow" means to allow self-dealing, "RejectTaker" "RejectMaker" "RejectBoth" "Allow"
exchange.IO("selfTradePreventionMode", "Allow")
}
def main():
exchange.IO("selfTradePreventionMode", "Allow")
void main() {
exchange.IO("selfTradePreventionMode", "Allow");
}
Futures_CoinEx
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.Futures_Aevo
xxx
, verwendenexchange.IO("signingKey", "xxx")
Siehe, dass signingKey eine zeitliche Begrenzung hat.exchange.IO
Funktion gibt den öffentlichen Schlüssel von signingKey zurück.Futures_Kraken
multi-collateral
Der Vertrag der Futures_Kraken-Börse unterstützt die Einstellungen für gekreuzte Positionen, isolierte Positionen und Hebelwirkung.
Verwendungexchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.Futures_Crypto
accountId
Die Kommission:
Verwendungexchange.IO("accountId", "xxx")
- Ich muss die Rechnung abwickeln.Zwillinge
exchange.IO("subAccount", "xxx")
um Unterkonten zu wechseln.Futures_Aevo
Id
Beschreibung:
Der UmtauschbefehlId
Es besteht aus dem tatsächlichenId
Der Zeitstempel und die tatsächliche BestellungId
Sie sind durch englische Kommas getrennt.exchange.GetOrder(Id)
Da der Auftrag Zeitstempel in den von der Börse zurückgegebenen Daten mit dem Auftrag Status ändern, wenn Sie die Bestellung aufzeichnen müssenId
und andere Informationen vor Ort, bitte trennen Sie die tatsächliche BestellungId
record.Futures_dYdX
exchange.IO("simulate", true)
, können Sie in die Testnetzwerkumgebung wechseln. Wenn Sie in die Hauptnetzwerkumgebung wechseln möchten, verwenden Sieexchange.IO("simulate", false)
, ist die ursprüngliche Standardeinstellung die Hauptnetzwerkumgebung.exchange.IO("limitFee", 0.001)
Setzen Sie den Gebührensatz.exchange.IO("secondsOfValidity", 60 * 60 * 24 * 28)
Der Standardwert ist 60 * 60 * 24 * 28.Futures_WOO
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.exchange.IO("dual", true)
um in eine bidirektionale Position zu wechseln undexchange.IO("dual", false)
um in eine einseitige Position umzustellen.Futures_KuCoin
exchange.IO("cross", true)
zum Wechseln in den Kreuzstellungsmodus und zur Verwendungexchange.IO("cross", false)
zum Wechseln in den Isolierungsmodus.