Elexchange.GetPositions()
La función se utiliza para obtener la información de posición;GetPositions()
La función es una función miembro del objeto de intercambio {@var/EXCHANGE exchange}.GetPositions()
La función obtiene la información de posición de la cuenta de intercambio vinculada al objeto de intercambioexchange
El objetivo de las funciones (métodos) de los miembros de laexchange
objeto sólo está relacionado conexchange
y no se repetirá aquí.
Elexchange.GetPositions()
La función devuelve una matriz de estructuras {@struct/Position Position} si la solicitud de datos tiene éxito, y devuelve un valor nulo si la solicitud de datos falla.
Las matrices de {@struct/Position Position}, valores nulos
El cambio.GetPositions ((() intercambio.GetPositions (símbolo)
El parámetrosymbol
se utiliza para establecer elsímbolo comercialo bienrango de símbolos de negociaciónpara ser interrogado.
Si elsymbol
Si el parámetro no se pasa, por defecto se solicitan los datos de posición de todos los símbolos en el rango de dimensiones del par de negociación actual y el código del contrato.
el símbolo falsos la cuerda
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for (var symbol of arrSymbol) {
exchange.CreateOrder(symbol, "buy", -1, 1)
exchange.CreateOrder(symbol, "sell", -1, 1)
}
var defaultPositions = exchange.GetPositions()
var swapPositions = exchange.GetPositions("USDT.swap")
var futuresPositions = exchange.GetPositions("USDT.futures")
var btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap")
var tbls = []
var arr = [defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions]
var tblDesc = ["defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"]
for (var index in arr) {
var positions = arr[index]
var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"], rows: [] }
for (var pos of positions) {
tbl.rows.push([pos.Symbol, pos.MarginLevel, pos.Amount, pos.FrozenAmount, pos.Price, pos.Profit, pos.Type, pos.ContractType, pos.Margin])
}
tbls.push(tbl)
}
LogStatus("`" + JSON.stringify(tbls) + "`")
// Print out the information once and then return to prevent the order from being executed during the subsequent backtest and affecting data observation
return
}
'''backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"]
for symbol in arrSymbol:
exchange.CreateOrder(symbol, "buy", -1, 1)
exchange.CreateOrder(symbol, "sell", -1, 1)
defaultPositions = exchange.GetPositions()
swapPositions = exchange.GetPositions("USDT.swap")
futuresPositions = exchange.GetPositions("USDT.futures")
btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap")
tbls = []
arr = [defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions]
tblDesc = ["defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"]
for index in range(len(arr)):
positions = arr[index]
tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"], "rows": []}
for pos in positions:
tbl["rows"].append([pos["Symbol"], pos["MarginLevel"], pos["Amount"], pos["FrozenAmount"], pos["Price"], pos["Profit"], pos["Type"], pos["ContractType"], pos["Margin"]])
tbls.append(tbl)
LogStatus("`" + json.dumps(tbls) + "`")
return
/*backtest
start: 2024-05-21 00:00:00
end: 2024-09-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"BTC_USDT.swap", "BTC_USDT.quarter", "ETH_USDT.swap", "ETH_USDT.quarter"};
for (const auto& symbol : arrSymbol) {
exchange.CreateOrder(symbol, "buy", -1, 1);
exchange.CreateOrder(symbol, "sell", -1, 1);
}
auto defaultPositions = exchange.GetPositions();
auto swapPositions = exchange.GetPositions("USDT.swap");
auto futuresPositions = exchange.GetPositions("USDT.futures");
auto btcUsdtSwapPositions = exchange.GetPositions("BTC_USDT.swap");
json tbls = R"([])"_json;
std::vector<std::vector<Position>> arr = {defaultPositions, swapPositions, futuresPositions, btcUsdtSwapPositions};
std::string tblDesc[] = {"defaultPositions", "swapPositions", "futuresPositions", "btcUsdtSwapPositions"};
for (int index = 0; index < arr.size(); index++) {
auto positions = arr[index];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "MarginLevel", "Amount", "FrozenAmount", "Price", "Profit", "Type", "ContractType", "Margin"],
"rows": []
})"_json;
tbl["title"] = tblDesc[index];
for (const auto& pos : positions) {
json arrJson = R"([])"_json;
arrJson.push_back(pos.Symbol);
arrJson.push_back(pos.MarginLevel);
arrJson.push_back(pos.Amount);
arrJson.push_back(pos.FrozenAmount);
arrJson.push_back(pos.Price);
arrJson.push_back(pos.Profit);
arrJson.push_back(pos.Type);
arrJson.push_back(pos.ContractType);
arrJson.push_back(pos.Margin);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
Utilizar objetos de intercambio de futuros para colocar órdenes de mercado para múltiples pares comerciales diferentes y códigos de contrato.
Los contratos de futuros de criptomonedas son diferentes de los contratos spot de criptomonedas, que solo tienen el concepto lógico de una posición.Pares de negociación, código del contratoPor favor, consulte las funciones {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}.
En elGetPositions
Función, los escenarios de uso del parámetro símbolo se resumen de la siguiente manera:
Clasificación de objetos de intercambio | símbolo Parámetros | Alcance de la consulta | No obstante, |
---|---|---|---|
Los futuros | No pase el parámetro de símbolo | Consultar todos los productos de negociación dentro del rango de dimensiones del par de negociación actual y del código del contrato | Si el par de negociación actual es BTC_USDT y el código del contrato es swap, todos los contratos perpetuos basados en USDT serán consultados.GetPositions("USDT.swap") |
Los futuros | Especifique el producto de negociación, el parámetro del símbolo es: |
Consultar el contrato perpetuo basado en USDT de un BTC especificado | Para los objetos de cambio de futuros, el formato del símbolo del parámetro es:Pares de negociaciónycódigo del contratodefinidas por la plataforma FMZ, separadas por los caracteres". . |
Los futuros | Especifique el rango de productos de negociación, el parámetro del símbolo es: |
Consultar todos los contratos perpetuos basados en USDT | - |
Bolsas de futuros que admiten opciones | No pase el parámetro de símbolo | Consultar todos los contratos de opción dentro del rango de dimensiones del par de operaciones actual | Si el par de operaciones actual es BTC_USDT, el contrato se establece en un contrato de opción, por ejemplo, contrato de opción de Binance: BTC-240108-40000-C |
Bolsas de futuros que admiten opciones | Especificar el producto comercial específico | Consultar el contrato de opción especificado | Por ejemplo, para Binance Futures Exchange, el parámetro del símbolo es: BTC_USDT.BTC-240108-40000-C |
Bolsas de futuros que admiten opciones | Especifique la gama de productos de negociación, el parámetro del símbolo es: |
Consultar todos los contratos de opciones basados en USDT | - |
En elGetPositions
función, el objeto del intercambio de futuros
el rango de dimensiones de la consulta se resume de la siguiente manera:
símbolo Parámetros | Definición del ámbito de aplicación de la solicitud | No obstante, |
---|---|---|
USDT.swap | Los tipos de interés de las entidades de crédito incluidas en el anexo I se determinarán de acuerdo con el método de cálculo de la rentabilidad. | Para |
dimensiones que no sean compatibles con la interfaz de API de intercambio, se informará de un error y se devolverá un valor nulo cuando llamando.
Un contrato de entrega basado en USDT.
USD.swap. El alcance de la moneda basada en el cambio perpetuo Los contratos.
USD.futures. Espejo de entrega basada en moneda Los contratos.
Un contrato de opciones basado en USDT.
La opción USD. Opciones basadas en divisas.
Conjunto USDT.futures_combo. Rango de combinaciones de CFD. Futures_Deribit Intercambio
USD.futures_ff. alcance de los contratos de entrega de margen mixto. Futures_Kraken Intercambio
USD.swap_pf Rango de contrato perpetuo de margen mixto. Futures_Kraken Intercambio
Compatible conexchange.GetPosition()
llamada,GetPosition
es exactamente lo mismo queGetPositions
.
Cuando la cuenta representada por el objeto de intercambioexchange
no tiene posiciones en elrango de búsquedao bieninstrumentos de negociación específicos, elexchange.GetPositions()
función devuelve una matriz vacía, por ejemplo:[]
.
El valor de las operaciones de cambio de divisas se calculará en función de las posiciones de cambio de divisas de la entidad.
Cuenta exchange.SetMarginLevel