Valores de Futu
Es compatible con FutuNN comercio en vivo y comercio de demostración, usted necesita descargarFutuOpenD
Es una aplicación.
Cuando se utilizaFutuOpenD
Para acceder al comercio de demostración, algunos códigos de acciones no son compatibles, por lo que no puede operar, pero la aplicación móvil FutuOpenD es capaz de operar en demostración.
Para la configuración de objetos de intercambio, en funcionamientoFutuOpenD
software, etc. en FMZ Quant, por favor consulte elDocumento de descripción de la configuración de Futu Securities.
Frecuencia de las llamadas de interfaz
ParaGetOrder
, GetOrders
, GetPositions
, GetAccount
uso de funcionesDatos almacenados en cachépor defecto, por lo que no hay límite a la frecuencia de llamadas.
Cuando haya nuevos datos disponibles,FutuOpenD
actualizará los datos automáticamente, yDatos almacenados en cachése actualizarán de forma sincronizada.
Elexchange.IO("refresh", true)
La función puede ser llamada para desactivar la caché, siDesactivar el almacenamiento en cachéentonces la frecuencia de llamadas esMáximo de 10 consultas por 30 segundos, si se excede el límite de frecuencia se informará de un error.
Código de acciones
Por ejemplo:600519.SH
El código de estrategia utiliza elexchange.SetContractType()
función para establecer el código de las acciones, por ejemplo:
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());
}
Funciones para establecer la dirección de la transacciónexchange.SetDirection
, funciones para realizar pedidosexchange.Buy
/exchange.Sell
- ¿ Por qué?
la función de retiroexchange.CancelOrder
y la función de orden de consultaexchange.GetOrder
se utilizan de la misma manera que en el mercado de futuros.
Formato de los datos de la información de la cuenta:
Definir el mercado utilizandoTrdMarket
para distinguir entreHong Kong Market
, United States Market
, yChina Mainland Market
.
Extractos de laFutu API
Documentación:
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
)
Obtener datos de información de la cuenta, elexchange.GetAccount()
La función devuelve:
{
"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
Distinguir por región basado en el registroP.I.Dirección
Existen restricciones en el acceso a los datos de mercado para las cuentas iniciadas sesión desde direcciones IP no continentales, que se pueden encontrar en la documentación oficial deFutuOpenD
.
Los futuros de Binance
Apoya el modo de posición dual de futuros de Binance; se puede utilizarexchange.IO
para cambiar:
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);
}
Apoya el cambio entre posición cruzada/posición aislada:
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);
}
Apoya el cambio al modo de cuenta unificada de Binance:
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);
}
Apoya la configuración del modo STP para las órdenes Binance spot/futures:
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", "")
para establecer una cadena vacía.
Utilizaciónexchange.IO("signHost", "https://aaa.xxx.xxx")
cambiar la dirección de base de Huobi Futures que participa en la verificación de firmas.
Utilizaciónexchange.IO("base", "https://bbb.xxx.xxx")
o bienexchange.SetBase("https://bbb.xxx.xxx")
para cambiar la dirección base de la interfaz de la plataforma.XXX_USDT
, utilizar la funciónexchange.SetContractType("swap")
para establecer el código del contrato aswap
Contrato perpetuo, utilizandoexchange.IO("cross", true)
puede cambiar aUSDT
- contrato perpetuo con margen en el modo de posición cruzada.exchange.IO("cross", false)
El valor por defecto inicial es el modo de posición aislada.exchange.IO("dual", true)
para cambiar a una posición bidireccional y utilizarexchange.IO("dual", false)
para cambiar a una posición unidireccional.- ¿ Qué?
Cambiar de pares de operaciones especiales:
Apoya tokens de apalancamiento al contado de Huobi, tales como:LINK*(-3)
; el código definido por la bolsa es:link3susdt
, que se escribe cuando FMZ Quant Trading Platform establece el par de operacionesLINK3S_USDT
¿ Qué pasa?
También es posible cambiar de par de operaciones en la estrategia:
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());
}
Los futuros_OKX(Futures_OKCoin/Futures_OKEX)
exchange.IO("simulate", true)
Si desea cambiar a un entorno de negociación real, utiliceexchange.IO("simulate", false)
La configuración inicial es el entorno de negociación en vivo.exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada, el valor por defecto inicial es el modo de posición cruzada.exchange.IO("dual", true)
para cambiar a una posición bidireccional y utilizarexchange.IO("dual", false)
para cambiar a una posición unidireccional.El valor de la moneda es el valor de la moneda en sí misma.
exchange.IO("simulate", true)
Si desea cambiar al entorno de negociación en vivo, useexchange.IO("simulate", false)
para cambiar a la negociación en vivo, el valor por defecto inicial es el entorno de negociación en vivo.El valor de la inversión se calcula a partir del valor de la inversión
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada; el valor por defecto inicial es el modo de posición cruzada.GetOrders
yGetTrades
las funciones no son compatibles.Los futuros_Bitget
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.exchange.IO("dual", true)
para cambiar a una posición bidireccional yexchange.IO("dual", false)
para cambiar a una posición unidireccional.Los futuros_MEXC
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.Los futuros_GateIO
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.exchange.IO("dual", true)
para cambiar a una posición bidireccional yexchange.IO("dual", false)
para cambiar a una posición unidireccional.exchange.IO("unified", true)
para cambiar de cuenta unificada;exchange.IO("unified", false)
para volver a las cuentas no unificadas.Puerta de entrada
exchange.IO("unified", true)
para cambiar las cuentas unificadas;exchange.IO("unified", false)
para volver a las cuentas no unificadas.Las acciones de los bancos centrales
exchange.IO("cross", true)
para cambiar al modo de posición cruzada, utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.exchange.IO("unified", true)
para cambiar a la interfaz de margen unificada, utilizarexchange.IO("unified", false)
para volver a la interfaz de contrato normal.exchange.IO("unified", true)
cambiar a la interfaz de margen unificada, yexchange.IO("unified", false)
para volver a utilizar la interfaz contractual común.exchange.IO("dual", true)
para cambiar a una posición bidireccional yexchange.IO("dual", false)
para cambiar a una posición unidireccional.Los futuros de Pionex
exchange.IO("cross", true)
para cambiar al modo de posición cruzada, utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.exchange.IO("dual", true)
para cambiar a posiciones bidireccionales yexchange.IO("dual", false)
para cambiar a posiciones unidireccionales.exchange.IO("dual", true)
para cambiar a una posición bidireccional yexchange.IO("dual", false)
para cambiar a una posición unidireccional.Las entidades que no cumplen los requisitos de la parte B del anexo II del Reglamento (UE) n.o 575/2013
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.BitMEX
Bitfinex
Futures_Phemex
exchange.IO("dual", true)
para cambiar a una posición bidireccional yexchange.IO("dual", false)
para cambiar a una posición unidireccional.Mochila Apoya la configuración del modo STP para pedidos al contado de mochila:
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");
}
Los futuros_CoinEx
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.El valor de las pérdidas
xxx
, el usoexchange.IO("signingKey", "xxx")
La clave de signingKey tiene un límite de tiempo.exchange.IO
La función devuelve la clave pública de signingKey.Los futuros_Kraken
multi-collateral
El contrato de cambio de Futures_Kraken admite posiciones cruzadas, posiciones aisladas y apalancamiento.
Utilizaciónexchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.El valor de las acciones de la entidad
accountId
- ¿ Por qué?
Utilizaciónexchange.IO("accountId", "xxx")
Para hacer cuentas.Géminis
exchange.IO("subAccount", "xxx")
para cambiar de subcuentas.El valor de las pérdidas
Id
Descripción:
La orden de cambioId
Consiste en laId
El sello de tiempo y el orden realId
El objetivo es apoyar laexchange.GetOrder(Id)
La función para consultar órdenes. ya que la marca de tiempo de la orden en los datos devueltos por el intercambio cambiará con el estado de la orden, si necesita registrar la ordenId
y otra información local, por favor separe el pedido realId
record.Los futuros_dYdX
exchange.IO("simulate", true)
, puede cambiar al entorno de la red de prueba.exchange.IO("simulate", false)
, el valor por defecto inicial es el entorno de red principal.exchange.IO("limitFee", 0.001)
Establezca la tarifa por defecto es 0.001.exchange.IO("secondsOfValidity", 60 * 60 * 24 * 28)
establece el período de validez. El valor predeterminado es 60 * 60 * 24 * 28.Los futuros
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.exchange.IO("dual", true)
para cambiar a una posición bidireccional y utilizarexchange.IO("dual", false)
para cambiar a una posición unidireccional.Los futuros_KuCoin
exchange.IO("cross", true)
para cambiar al modo de posición cruzada y utilizarexchange.IO("cross", false)
para cambiar al modo de posición aislada.