Oexchange.GetPositions()
A função é utilizada para obter as informações de posição;GetPositions()
função é uma função membro do objeto de troca {@var/EXCHANGE exchange}.GetPositions()
função obtém as informações de posição da conta de câmbio ligada ao objeto de câmbioexchange
O objectivo das funções (métodos) dos membros doexchange
Objeto está relacionado apenas comexchange
E não se repetirá aqui.
Oexchange.GetPositions()
A função retorna uma matriz de estruturas {@struct/Position Position} se a solicitação de dados for bem-sucedida, e retorna valor nulo se a solicitação de dados falhar.
Matrizes {@struct/Position Position}, valores nulos
troca.GetPositions ((() troca.GetPositions (símbolo)
O parâmetrosymbol
é utilizado para definir osímbolo comercialouIntervalo de símbolos de negociaçãoPara ser interrogado.
Se osymbol
Se o parâmetro não for transmitido, o padrão é solicitar os dados de posição de todos os símbolos na faixa de dimensões do par de negociação atual e do código do contrato.
símbolo Falso cordel
/*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;
}
Usar objetos de troca de futuros para colocar ordens de mercado para vários pares de negociação diferentes e códigos de contrato.
Os contratos futuros de criptomoedas são diferentes dos contratos spot de criptomoedas, que têm apenas o conceito lógico de uma posição.pares de negociação, Código do contratoPor favor, consulte {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} funções.
EmGetPositions
função, os cenários de utilização do parâmetro símbolo são resumidos do seguinte modo:
Classificação do objeto Exchange | símbolo Parâmetros | Alcance da consulta | Observação |
---|---|---|---|
Futuros | Não passe o parâmetro de símbolo | Consultar todos os produtos de negociação dentro do intervalo de dimensões do par de negociação e do código do contrato corrente | Se o par de negociação atual for BTC_USDT e o código do contrato for swap, todos os contratos perpétuos baseados em USDT serão consultados.GetPositions("USDT.swap") |
Futuros | Especificar o produto de negociação, o parâmetro do símbolo é: |
Consultar o contrato perpétuo baseado em USDT de um determinado BTC | Para os objectos de câmbio de futuros, o formato do símbolo do parâmetro é:par de negociaçãoeCódigo do contratodefinidos pela plataforma FMZ, separados pelos caracteres". . |
Futuros | Especificar a gama de produtos de negociação, o parâmetro do símbolo é: |
Consultar todos os contratos perpétuos baseados em USDT | - |
Bolsas de futuros que suportam opções | Não passe o parâmetro de símbolo | Consultar todos os contratos de opção dentro do intervalo de dimensão do par de negociação corrente | Se o par de negociação atual for BTC_USDT, o contrato é definido como um contrato de opção, por exemplo, contrato de opção da Binance: BTC-240108-40000-C |
Bolsas de futuros que suportam opções | Especificar um produto comercial específico | Consultar o contrato de opção especificado | Por exemplo, para a Binance Futures Exchange, o parâmetro do símbolo é: BTC_USDT.BTC-240108-40000-C |
Bolsas de futuros que suportam opções | Especificar a gama de produtos de negociação, o parâmetro do símbolo é: |
Consultar todos os contratos de opções baseados em USDT | - |
EmGetPositions
função, o objeto da troca de futuros
a gama de dimensões da consulta é resumida do seguinte modo:
símbolo Parâmetros | Definição do âmbito de aplicação do pedido | Observação |
---|---|---|
USDT.swap | Intervalo de contratos perpétuos baseados em USDT. | Para |
dimensões não suportadas pela interface de API de troca, um erro será relatado e um valor nulo será devolvido quando Está a chamar-me.
♫ USDT.futures ♫ ♫ uma gama de contratos de entrega baseados em USDT ♫
O escopo do perpetual baseado em moeda Contratos.
USD.futures. Escala de entrega baseada em moeda Contratos.
O opção baseada em opções de contrato baseado em USDT.
O opção USD.opção baseada em moeda.
Combo USDT.futures. Uma gama de combinações de CFD. Futures_Deribit Exchange
USD.FUTURES_FF Escala dos contratos de entrega de margem mista. Futures_Kraken Exchange.
USD.swap_pf. Margem mista gama de contrato perpétuo. Futures_Kraken Exchange.
Compatível comexchange.GetPosition()
ligação,GetPosition
é exatamente o mesmo queGetPositions
.
Quando a conta representada pelo objecto de trocaexchange
não tem posições nointervalo de consultaouInstrumentos de negociação especificados, oexchange.GetPositions()
função retorna uma matriz vazia, por exemplo:[]
.
{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}
Conta exchange.SetMarginLevel