Oexchange.GetOrders()
A função é usada para obter encomendas pendentes.
Oexchange.GetOrders()
A função retorna uma matriz de estruturas {@struct/Order Order} se a solicitação de dados for bem-sucedida, e retorna valores nulos se a solicitação de dados falhar.
{@struct/Order Order} matriz, valor nulo
troca.GetOrders ((() Troca.GetOrders (símbolo)
O parâmetrosymbol
é utilizado para definir osímbolo da transacçãoouIntervalo de símbolos de transacçãoPara ser interrogado.
Para os objectos de troca à vista, se osymbol
Se o parâmetro não for transmitido, serão solicitados os dados de encomenda incompletos de todos os produtos spot.
Para os objectos de troca de futuros, se osymbol
Se o parâmetro não for transmitido, o padrão é solicitar os dados de ordem incompletos de todas as variedades 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":"Binance","currency":"BTC_USDT"}]
*/
function main() {
var arrSymbol = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]
for (var symbol of arrSymbol) {
var t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01)
}
var spotOrders = exchange.GetOrders()
var tbls = []
for (var orders of [spotOrders]) {
var tbl = {type: "table", title: "test GetOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
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":"Binance","currency":"BTC_USDT"}]
'''
import json
def main():
arrSymbol = ["ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"]
for symbol in arrSymbol:
t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 0.01)
spotOrders = exchange.GetOrders()
tbls = []
for orders in [spotOrders]:
tbl = {"type": "table", "title": "test GetOrders", "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
for order in orders:
tbl["rows"].append([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
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":"Binance","currency":"BTC_USDT"}]
*/
void main() {
auto arrSymbol = {"ETH_USDT", "BTC_USDT", "LTC_USDT", "SOL_USDT"};
for (const auto& symbol : arrSymbol) {
auto t = exchange.GetTicker(symbol);
exchange.CreateOrder(symbol, "buy", t.Last / 2, 0.01);
}
auto spotOrders = exchange.GetOrders();
json tbls = R"([])"_json;
std::vector<std::vector<Order>> arr = {spotOrders};
for (const auto& orders : arr) {
json tbl = R"({
"type": "table",
"title": "test GetOrders",
"cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
"rows": []
})"_json;
for (const auto& order : orders) {
json arrJson = R"([])"_json;
arrJson.push_back("Symbol");
arrJson.push_back("Id");
arrJson.push_back(order.Price);
arrJson.push_back(order.Amount);
arrJson.push_back(order.DealAmount);
arrJson.push_back(order.AvgPrice);
arrJson.push_back(order.Status);
arrJson.push_back(order.Type);
arrJson.push_back(order.Offset);
arrJson.push_back(order.ContractType);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
Utilize o objeto de troca à vista para colocar ordens de compra para vários pares de negociação diferentes à metade do preço atual e, em seguida, consultar as informações sobre ordens pendentes.
/*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) {
var t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t.Last / 2, 1)
exchange.CreateOrder(symbol, "sell", t.Last * 2, 1)
}
var defaultOrders = exchange.GetOrders()
var swapOrders = exchange.GetOrders("USDT.swap")
var futuresOrders = exchange.GetOrders("USDT.futures")
var btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")
var tbls = []
var arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
var tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
for (var index in arr) {
var orders = arr[index]
var tbl = {type: "table", title: tblDesc[index], cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
for (var order of orders) {
tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
}
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:
t = exchange.GetTicker(symbol)
exchange.CreateOrder(symbol, "buy", t["Last"] / 2, 1)
exchange.CreateOrder(symbol, "sell", t["Last"] * 2, 1)
defaultOrders = exchange.GetOrders()
swapOrders = exchange.GetOrders("USDT.swap")
futuresOrders = exchange.GetOrders("USDT.futures")
btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap")
tbls = []
arr = [defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders]
tblDesc = ["defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"]
for index in range(len(arr)):
orders = arr[index]
tbl = {"type": "table", "title": tblDesc[index], "cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], "rows": []}
for order in orders:
tbl["rows"].append([order["Symbol"], order["Id"], order["Price"], order["Amount"], order["DealAmount"], order["AvgPrice"], order["Status"], order["Type"], order["Offset"], order["ContractType"]])
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) {
auto t = exchange.GetTicker(symbol);
exchange.CreateOrder(symbol, "buy", t.Last / 2, 1);
exchange.CreateOrder(symbol, "sell", t.Last * 2, 1);
}
auto defaultOrders = exchange.GetOrders();
auto swapOrders = exchange.GetOrders("USDT.swap");
auto futuresOrders = exchange.GetOrders("USDT.futures");
auto btcUsdtSwapOrders = exchange.GetOrders("BTC_USDT.swap");
json tbls = R"([])"_json;
std::vector<std::vector<Order>> arr = {defaultOrders, swapOrders, futuresOrders, btcUsdtSwapOrders};
std::string tblDesc[] = {"defaultOrders", "swapOrders", "futuresOrders", "btcUsdtSwapOrders"};
for (int index = 0; index < arr.size(); index++) {
auto orders = arr[index];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"],
"rows": []
})"_json;
tbl["title"] = tblDesc[index];
for (const auto& order : orders) {
json arrJson = R"([])"_json;
arrJson.push_back(order.Symbol);
arrJson.push_back(to_string(order.Id)); // The Id attribute type in the Order structure is TId, which is encoded using a C++ function to_string built into the FMZ platform.
arrJson.push_back(order.Price);
arrJson.push_back(order.Amount);
arrJson.push_back(order.DealAmount);
arrJson.push_back(order.AvgPrice);
arrJson.push_back(order.Status);
arrJson.push_back(order.Type);
arrJson.push_back(order.Offset);
arrJson.push_back(order.ContractType);
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
}
LogStatus(_D(), "\n", "`" + tbls.dump() + "`");
return;
}
Usar objetos de troca de futuros para colocar ordens para vários pares de negociação diferentes e códigos de contrato. Colocar ordens a preços longe do preço da contraparte, manter ordens em um estado não cumprido e consultar ordens de várias maneiras.
function main() {
var orders = exchange.GetOrders("BTC_USDT") // Examples of spot products
// var orders = exchange.GetOrders("BTC_USDT.swap") // Examples of futures products
Log("orders:", orders)
}
def main():
orders = exchange.GetOrders("BTC_USDT") # Examples of spot products
# orders = exchange.GetOrders("BTC_USDT.swap") # Examples of futures products
Log("orders:", orders)
void main() {
auto orders = exchange.GetOrders("BTC_USDT"); // Examples of spot products
// auto orders = exchange.GetOrders("BTC_USDT.swap"); // Examples of futures products
Log("orders:", orders);
}
Ao ligar para oexchange.GetOrders()
função, passar noSymbol
Parâmetro para solicitar dados de ordem para um par de negociação específico e código de contrato.
EmGetOrders
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 |
---|---|---|---|
Espetáculo | Não passe o parâmetro de símbolo | Consultar todos os pares de negociação spot | Para todos os cenários de chamada, se a interface de troca não o suportar, um erro será relatado e um valor nulo será devolvido. |
Espetáculo | Especificar o tipo de negociação, o parâmetro do símbolo é: |
Consultar o par de negociação BTC_USDT especificado | Para os objetos de câmbio à vista, o formato do parâmetro do símbolo é: |
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 com margem USDT serão consultados.GetOrders("USDT.swap") |
Futuros | Especificar o tipo de negociação, o parâmetro do símbolo é: |
Consultar o contrato perpétuo baseado em USDT para um determinado BTC | Para os objectos de troca 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 produtos comerciais específicos | 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 | - |
EmGetOrders
função, a consulta do objeto de troca de futuros
A gama de dimensões é resumida do seguinte modo:
símbolo Parâmetros | Definição do intervalo de solicitação | 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 USD.swap é uma variedade de moeda baseada em perpétuos Contratos. USD.futures. Variação de entrega baseada em moeda. Contratos. O opção baseada em opções de contrato baseado em USDT. O que é que é uma opção? Combo USDT.futures. Uma gama de combinações de CFD. Futures_Deribit Exchange USD.futures_ff Uma gama de contratos de entrega de margem mista. Futures_Kraken Exchange. USD.swap_pf Uma gama de contratos perpétuos de margem mista. Futuros_Kraken Exchange.
Quando a conta representada pelo objecto de trocaexchange
Não tem ordens pendentes nointervalo de consultaouInstrumentos de negociação especificados(ordens ativas em um estado não cumprido), chamando esta função retorna uma matriz vazia, ou seja:[]
- Não.
As seguintes trocas exigem que o instrumento passe no parâmetro do instrumento ao consultar as ordens atualmente incompletas. Ao chamar a função GetOrders com essas trocas, se o parâmetro do instrumento não for passado, apenas as ordens incompletas do instrumento atual são solicitadas, não as ordens incompletas de todos os instrumentos (porque a interface de troca não suporta isso).
Zaif, MEXC, LBank, Korbit, Coinw, BitMart, Bithumb, BitFlyer, BigONE.
As trocas que não suportam oexchange.GetOrders()
Função:
Nome da função | Trocas spot não suportadas | Atividades de negociação |
---|---|---|
GetOrders | – | Futures_Bibox |
{@struct/Order Order}, {@fun/Trade/exchange.GetOrder exchange.GetOrder}, {@fun/Trade/exchange.GetHistoryOrders exchange.GetHistoryOrders}
exchange.GetOrder exchange.GetHistoryOrders