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}
Oexchange.SetMarginLevel()
A função é utilizada para definir o valor de alavancagem do par de negociação ou do contrato especificado pelosymbol
Parâmetro compatível com apenas passar no parâmetromarginLevel
Para definir o valor de alavancagem do par ou contrato de negociação corrente do objeto de troca {@var/EXCHANGE exchange}.
A taxa de câmbio é a taxa de variação da taxa de variação da taxa de variação da taxa de variação da taxa de variação. Câmbio.SetMarginLevel ((marginLevel)
Osymbol
O parâmetro é utilizado para especificar o par de negociação ou contrato para o qual o valor de alavancagem precisa de ser ajustado.symbol
Parâmetro doSetMarginLevel()
A função é coerente com o formato dosymbol
Parâmetro doGetTicker()
função.
símbolo
Falso
cordel
OmarginLevel
O parâmetro é usado para definir o valor de alavancagem, que geralmente é um número inteiro para as bolsas e também suporta configurações de valor de alavancagem de ponto flutuante para algumas bolsas.
Margem Nível
verdade
Número
function main() {
exchange.SetMarginLevel(10)
// Set the leverage of BTC’s USDT-margined perpetual contract to 15
exchange.SetMarginLevel("BTC_USDT.swap", 15)
}
def main():
exchange.SetMarginLevel(10)
exchange.SetMarginLevel("BTC_USDT.swap", 15)
void main() {
exchange.SetMarginLevel(10);
exchange.SetMarginLevel("BTC_USDT.swap", 15);
}
Oexchange.SetMarginLevel()
O sistema de backtesting suporta a chamada doexchange.SetMarginLevel()
Função para definir o valor da alavancagem.
Para contratos futuros de criptomoedas, o mecanismo de alavancagem não é uniforme devido às exchanges de contratos futuros de criptomoedas.exchange.SetMarginLevel()
A função não gera uma solicitação de rede, mas apenas define a variável de alavancagem no sistema FMZ subjacente (usado para passar parâmetros na interface de colocação de ordens).exchange.SetMarginLevel()
A função gerará uma solicitação de rede e pode não definir alavancagem. Pode haver muitas razões para isso, por exemplo: há uma posição atual ou ordem pendente, o que torna impossível definir um novo valor de alavancagem para este par ou contrato de negociação.
As trocas que não suportam oexchange.SetMarginLevel()
Função:
Nome da função | Trocas spot não suportadas | Atividades de negociação |
---|---|---|
SetMarginLevel | – | Futuros_dYdX / Futuros_Deribit |
{@var/EXCHANGE exchange}
Oexchange.SetDirection()
A função é utilizada para definir a direção da ordem da função {@fun/Trade/exchange.Buy exchange.Buy}, função {@fun/Trade/exchange.Sell exchange.Sell} quando se fazem ordens para contratos futuros.
troca.Estabelecer direcção (direcção)
Odirection
O parâmetro é utilizado para definir a direção do contrato de futuros quando a ordem é colocada."buy"
, "closesell"
, "sell"
, "closebuy"
- Não.
direção
verdade
cordel
function main(){
// For example, set to OKX futures contract of this week
exchange.SetContractType("this_week")
// Set leverage to 5 times
exchange.SetMarginLevel(5)
// Set the order type to long
exchange.SetDirection("buy")
// Place an order for 2 contracts at 10,000
exchange.Buy(10000, 2)
exchange.SetMarginLevel(5)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
}
def main():
exchange.SetContractType("this_week")
exchange.SetMarginLevel(5)
exchange.SetDirection("buy")
exchange.Buy(10000, 2)
exchange.SetMarginLevel(5)
exchange.SetDirection("closebuy")
exchange.Sell(1000, 2)
void main() {
exchange.SetContractType("this_week");
exchange.SetMarginLevel(5);
exchange.SetDirection("buy");
exchange.Buy(10000, 2);
exchange.SetMarginLevel(5);
exchange.SetDirection("closebuy");
exchange.Sell(1000, 2);
}
Oexchange.SetDirection()
A função define a correspondência entre a direção da transação do contrato de futuros e a função de colocação de ordens:
Funções de colocação de pedidos | A direção definida pelos parâmetros da função SetDirection | Observações |
---|---|---|
exchange.Buy | Comprar e abrir posições longas | |
exchange.Buy | Comprar e fechar posições curtas | |
exchange.Sell | Vender e abrir posições curtas | |
exchange.Sell | Vender e fechar posições longas |
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}
Oexchange.SetContractType()
A função é utilizada para definir o código do contrato atual do objeto de troca {@var/EXCHANGE exchange}.
Oexchange.SetContractType()
A função retorna uma estrutura que contém o código do contrato de troca correspondente ao código do contrato atual.quarter
, e a estrutura de valor de retorno desta função é:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}
- Não.
Objeto
troca.SetContractType (símbolo)
Osymbol
O parâmetro é utilizado para definir o código do contrato, os valores opcionais são:"this_week"
, "next_week"
, "quarter"
, "next_quarter"
, "swap"
, etc.
Contratos futuros de criptomoedascontrato de entregaOs códigos, se não especificados, têm geralmente:
this_week
O contrato da semana em curso.next_week
O contrato da próxima semana.quarter
: contrato trimestral.next_quarter
: o próximo contrato trimestral.Contratos permanentesOs códigos em contratos futuros de criptomoedas, se não especificados, têm, em geral:swap
Contrato perpétuo.símbolo verdade cordel
function main() {
// Set to this week contract
exchange.SetContractType("this_week")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
Configure o contrato atual como o contrato da semana atual:
function main() {
// The default trading pair is BTC_USD, set the contract for this week, and the contract is a currency standard contract
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
// Switching trading pairs, then setting up contracts, switching to USDT as margin contracts, as opposed to currency standard contracts
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
}
def main():
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
void main() {
exchange.SetContractType("this_week");
Log("ticker:", exchange.GetTicker());
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("swap");
Log("ticker:", exchange.GetTicker());
}
Ao estabelecer um contrato comUSDT
como margem, é necessário trocar o par de negociação no código (também é possível definir o par de negociação diretamente ao adicionar o objeto de troca):
function main(){
// Set the contract for this week
var ret = exchange.SetContractType("this_week")
// Return information about the current week's contracts
Log(ret)
}
def main():
ret = exchange.SetContractType("this_week")
Log(ret)
void main() {
auto ret = exchange.SetContractType("this_week");
Log(ret);
}
Imprimir o valor de retorno doexchange.SetContractType()
Função:
Na estratégia de contrato de futuros de criptomoeda, tome um exemplo de mudar para oBTC_USDT
Pares de negociação: Quando se trocam pares de negociação utilizando oexchange.SetCurrency("BTC_USDT")
ouexchange.IO("currency", "BTC_USDT")
funções, depois de trocar, você precisa usar oexchange.SetContractType()
O sistema determina se é um par de negociação ou um par de negociação.contrato padrão de moedaou umContrato padrão USDTPor exemplo, se um par de negociação estiver definido paraBTC_USDT
, utilizar oexchange.SetContractType("swap")
função para definir o código do contrato paraswap
Neste ponto, está definido paraBTC
para oPadrão USDTSe o par de negociação forBTC_USD
, utilizar oexchange.SetContractType("swap")
função para definir o código do contrato paraswap
Neste ponto, está definido paraBTC
É...padrão de moedacontrato perpétuo.
Detalhes das bolsas de contratos futuros de criptomoedas compatíveis, com os nomes dos contratos de cada uma delas:
Futuros_OKCoin (OKX)
Contrato perpétuo:exchange.SetContractType("swap")
Conforme o contrato desta semana:exchange.SetContractType("this_week")
Marcado para a próxima semana:exchange.SetContractType("next_week")
Contrato mensal:exchange.SetContractType("month")
Contrato para o próximo mês:exchange.SetContractType("next_month")
Consolidado em contratos trimestrais:exchange.SetContractType("quarter")
Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")
A OKX tem contratos de negociação pré-mercado: a data de entrega do contrato é um horário fixo.HMSTR-USDT-250207
. Configure o par de negociação paraHMSTR_USDT
na plataforma FMZ, e depois utilizarexchange.SetContractType("HMSTR-USDT-250207")
para estabelecer o contrato.
Para funções que suportam osymbol
Parâmetros, tais como:exchange.GetTicker()
, exchange.CreateOrder()
, etc. Pode especificar osymbol
Parâmetro como:HMSTR_USDT.HMSTR-USDT-250207
Para obter os dados de mercado do presente contrato ou realizar uma encomenda.
Futuros_HuobiDM (futuros de Huobi)
Conforme o contrato desta semana:exchange.SetContractType("this_week")
- Não.
Marcado para a próxima semana:exchange.SetContractType("next_week")
- Não.
Consolidado em contratos trimestrais:exchange.SetContractType("quarter")
- Não.
Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")
- Não.
Contrato perpétuo:exchange.SetContractType("swap")
- Não.
Apoia contratos comUSDT
como margem, tomarBTC
Contrato como exemplo: utilizaçãoexchange.IO("currency", "BTC_USDT")
para mudar para um contrato que utilizaUSDT
como margem.
Ou definir o par de negociação actual paraBTC_USDT
Depois de trocar pares de negociação, você precisa chamarexchange.SetContractType()
A função de novo para definir o contrato.
Ativos de dívida líquidos e passivos
Contrato perpétuo:exchange.SetContractType("swap")
- Não.
Os contratos de entrega de câmbio Futures_BitMEX são contratos mensais com os seguintes códigos de contrato (de janeiro a dezembro):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Estabelecimento de contratos de entrega:exchange.SetContractType("December")
Por exemplo, quando o par de negociação está definido paraXBT_USDT
, oexchange.SetContractType("December")
A função é chamada para definir o contrato para a entrega de Dezembro em USDT baseado em BTC (correspondente ao código do contrato real deXBTUSDTZ23
).
Resumo das informações sobre contratos Futures_BitMEX
Código de contrato definido por Futures_BitMEX | O par de negociação correspondente no FMZ | Código do contrato correspondente na FMZ | Observação |
---|---|---|---|
DOGEUSD | DOGE_USD | troca | denominado em USD, XBT liquidado. |
DOGEUSDT | DOGE_USDT | troca | denominados em USDT, liquidados em USDT. |
XBTETH | XBT_ETH | troca | ETH denominado, XBT liquidado. |
XBTEUR | XBT_EUR | troca | denominados em euros, liquidados em XBT. |
USDTUSDC | USDT_USDC | troca | denominado em USDC, liquidado em XBT. |
ETHUSD_ETH | ETH_USD_ETH | troca | denominado em USD, ETH liquidado. |
XBTH24 | XBT_USD | Março | Data de expiração: 24 de março, código do mês é: H; denominado em USD, liquidado em XBT. |
ETHUSDZ23 | ETH_USD | Outubro | Data de expiração: 23 de dezembro, código do mês é: Z; denominado em USD, liquidado em XBT. |
XBTUSDTZ23 | XBT_USDT | Outubro | Data de validade: 23 de Dezembro, código do mês é: Z ; denominado em USDT, liquidado em USDT. |
ADAZ23 | ADA_XBT | Outubro | Data de expiração: 23 de dezembro, código do mês é: Z ; faturamento em XBT, liquidação em XBT. |
P_XBTETFX23 | USDT_XXX | P_XBTETFX23 | Data de vencimento: 23/11/23; denominada em percentagem e liquidada em USDT. |
Futures_GateIO
Conforme o contrato desta semana:exchange.SetContractType("this_week")
- Não.
Marcado para a próxima semana:exchange.SetContractType("next_week")
- Não.
Consolidado em contratos trimestrais:exchange.SetContractType("quarter")
- Não.
Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")
- Não.
Contrato perpétuo:exchange.SetContractType("swap")
- Não.
Apoia contratos comUSDT
como margem, tomarBTC
Contrato como exemplo: utilizaçãoexchange.IO("currency", "BTC_USDT")
para mudar para um contrato que utilizaUSDT
como margem.
Ou definir o par de negociação actual paraBTC_USDT
Depois de trocar pares de negociação, você precisa chamarexchange.SetContractType()
A função de novo para definir o contrato.
Futuros_Deribit
Contrato perpétuo:exchange.SetContractType("swap")
- Não.
Suporta DeribitUSDC
Contrato.
Os contratos de entrega são:"this_week"
, "next_week"
, "month"
, "quarter"
, "next_quarter"
, "third_quarter"
, "fourth_quarter"
- Não.
CFD (future_combo):"this_week,swap"
, "next_week,swap"
, "next_quarter,this_week"
, "third_quarter,this_week"
, "month,next_week"
, há muitas combinações.
Para os contratos de opção, é necessário inserir o código específico do contrato de opção definido pela bolsa, consulte o site da Deribit para obter mais informações.
Futures_KuCoin
Por exemplo, se o par de negociação estiver definido paraBTC_USD
e o código do contrato é definido, trata-se de um contrato baseado em moeda:
Contrato perpétuo:exchange.SetContractType("swap")
- Não.
Consolidado em contratos trimestrais:exchange.SetContractType("quarter")
- Não.
Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")
.
USDT como contrato de margem:
Por exemplo, se o par de negociação estiver definido paraBTC_USDT
, e, em seguida, definir o código do contrato, é um contrato com USDT como margem.
Contrato perpétuo:exchange.SetContractType("swap")
.
Futures_Binance
Binance Futures Exchange predefinições para o contrato perpétuo do par de negociação atual, código do contrato:swap
- Não.
Contrato perpétuo:exchange.SetContractType("swap")
, os contratos perpétuos da Binance têm contratos que usamUSDT
Como margem.USDT
Contrato perpétuo deBTC
O par de negociação pode ser utilizado como um contrato de margem, e o par de negociação está definido paraBTC_USDT
A Binance também suporta contratos perpétuos que usam moedas como margem, por exemplo,BTC
É o contrato perpétuo padrão da Binance, com o par de negociação definido paraBTC_USD
- Não.
Consolidado em contratos trimestrais:exchange.SetContractType("quarter")
, o contrato de entrega tem um contrato padrão de moeda (ou seja, utilizando moedas como margem), por exemplo,BTC
No contrato trimestral, o par de negociação está definido para:BTC_USD
e depois estabelecer o contratoexchange.SetContractType("quarter")
, está definido emBTC
contrato trimestral com um contrato padrão de moeda.
Contrato para o próximo trimestre:exchange.SetContractType("next_quarter")
, por exemplo,BTC
do contrato trimestral padrão de moeda, o par de negociação definido para:BTC_USD
, e depois definir o contratoexchange.SetContractType("next_quarter")
- Não.
Binance suporta parcialmenteUSDT
como contrato de entrega de margem, tomarBTC
como exemplo, definir o par de negociação paraBTC_USDT
, depois define o código do contrato.
Suporte para contratos de opções Binance:
O formato do código do contrato de opção baseia-se no código do contrato de opção definido pela bolsa:BTC-241227-15000-C
, XRP-240112-0.5-C
, BTC-241227-15000-P
Pegue o código do contrato de opção da BinanceBTC-241227-15000-P
Por exemplo: BTC é o código da moeda da opção, 241227 é a data de exercício, 15000 é o preço de exercício, P representa uma opção de venda e C representa uma opção de compra.
Para mais informações sobre o tipo de opção, quer se trate de opção europeia ou de opção americana, consulte as informações pertinentes do contrato de opção da bolsa.
A troca pode restringir os vendedores de opções e exigir que eles solicitem qualificações separadamente.
Futures_Bibox
Código do contrato para contratos perpétuos Bibox:swap
- Não.
Contrato perpétuo:exchange.SetContractType("swap")
.
Futures_Bybit
O contrato de partilha é o contrato perpétuo para o par de negociação em curso, código do contrato:swap
- Não.
Código do contrato desta semana:this_week
- Não.
Código do contrato da próxima semana:next_week
- Não.
Código do contrato da terceira semana:third_week
- Não.
Código de contrato mensal:month
- Não.
Código do contrato do próximo mês:next_month
- Não.
Código do contrato trimestral:quarter
- Não.
Código do contrato do próximo trimestre:next_quarter
- Não.
Código do contrato do terceiro trimestre:third_quarter
.
Futures_Kraken
O contrato de partilha é o contrato perpétuo do par de negociação em curso, código do contrato:swap
.
swap
Contrato perpétuo.month
: contrato do mês em curso.quarter
: contrato trimestral.next_quarter
Contrato para o próximo trimestre.swap_pf
: Contrato perpétuo de margem mista.quarter_ff
: Contrato trimestral de margem mista.month_ff
: Contrato de margem mista do mês em curso.next_quarter_ff
Contrato de margem mista para o próximo trimestre.
Futuros_Bitfinex
O valor da posição em risco é o valor da posição em risco.swap
.
Futures_Bitget
O valor da posição em risco é o valor da posição em risco.swap
- Não.
O par de negociação está definido emBTC_USD
para os contratos padrão de moeda, e o par de negociação está definido emBTC_USDT
para contratos liquidados porUSDT
Os contratos demo podem ser estabelecidos com pares de negociação comoSBTC_USD
, BTC_SUSDT
.
Futuros_dYdX
Código do contrato para contratos perpétuos dYdX:swap
- Não.
Contrato perpétuo:exchange.SetContractType("swap")
, a dYdX dispõe apenas de contratos normalizados em USDT.
Futures_MEXC
Código do contrato para contratos perpétuos do MEXC:swap
- Não.
Contrato perpétuo:exchange.SetContractType("swap")
. Configurar o par de negociação paraBTC_USD
, que é um contrato padrão de moeda, e estabelecer o par de negociação paraBTC_USDT
, que éUSDT
- Contrato resolvido.
Futures_Crypto
Tokens numa conta nocrypto.comOs valores mobiliários podem ser convertidos em créditos denominados em USD para serem utilizados como margem para negociação de contratos.
Contrato perpétuo:exchange.SetContractType("swap")
Exemplo de chamadaexchange.SetContractType("swap")
função para definir um contrato perpétuo para BTC quando o par de negociação está definido paraBTC_USD
- Não.
Ocrypto.comOs contratos de entrega de câmbio são contratos mensais com os seguintes códigos de contrato (de janeiro a dezembro):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Definir o contrato de entrega:exchange.SetContractType("October")
Por exemplo, quando o par de negociação está definido paraBTC_USD
, chamar a funçãoexchange.SetContractType("October")
para estabelecer o contrato de entrega de outubro para BTC.
O código do contrato correspondente é:BTCUSD-231027
.
Futures_WOO
Futuros_WOOUSDT
baseados em contratos com um código de contrato perpétuo deswap
Por exemplo, quando o par de negociação está definido paraBTC_USDT
, a funçãoexchange.SetContractType("swap")
é chamado a definir o contrato atual para ser um contrato perpétuo baseado em USDT para BTC.
{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}
Oexchange.GetContractType()
A função é utilizada para obter o código do contrato para a configuração atual do objeto de troca {@var/EXCHANGE exchange}.
Oexchange.GetContractType()
A função devolve o código do contrato definido pela plataforma FMZ, por exemplo:this_week
, swap
, etc.
cordel
exchange.GetContractType (()
function main () {
Log(exchange.SetContractType("this_week"))
Log(exchange.GetContractType())
}
def main():
Log(exchange.SetContractType("this_week"))
Log(exchange.GetContractType())
void main() {
Log(exchange.SetContractType("this_week"));
Log(exchange.GetContractType());
}
{@fun/Futures/exchange.SetContractType exchange.SetContractType}
Oexchange.GetFundings()
A função é utilizada para obter os dados da taxa de financiamento para o período em curso.
Oexchange.GetFundings()
A função retorna uma matriz de estruturas {@struct/Funding Funding} quando a solicitação de dados é bem-sucedida e retorna um valor nulo quando a solicitação de dados falha.
Matriz {@struct/Funding Funding}, valor nulo
Troca.GetFundings ((() Troca.GetFundings (símbolo)
O parâmetrosymbol
é utilizado para definir osímbolo da transacçãoouIntervalo de símbolos de transacçãoO que é que a Comissão está a fazer?symbol
Se o parâmetro não for transmitido, os dados da taxa de financiamento atual de todos os instrumentos serão solicitados por defeito na faixa de dimensões do par de negociação atual e do código do contrato.
símbolo Falso cordel
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/
function main() {
// LPT_USDT.swap 4-hour period
var symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
for (var symbol of symbols) {
exchange.GetTicker(symbol)
}
var arr = []
var arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
for (p of arrParams) {
if (p == "no param") {
arr.push(exchange.GetFundings())
} else {
arr.push(exchange.GetFundings(p))
}
}
var tbls = []
var index = 0
for (var fundings of arr) {
var tbl = {
"type": "table",
"title": arrParams[index],
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": [],
}
for (var f of fundings) {
tbl["rows"].push([f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate * 100 + " %"])
}
tbls.push(tbl)
index++
}
LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + JSON.stringify(tbls) + "`")
}
'''backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
'''
import json
def main():
# LPT_USDT.swap 4-hour period
symbols = ["SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"]
for symbol in symbols:
exchange.GetTicker(symbol)
arr = []
arrParams = ["no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"]
for p in arrParams:
if p == "no param":
arr.append(exchange.GetFundings())
else:
arr.append(exchange.GetFundings(p))
tbls = []
index = 0
for fundings in arr:
tbl = {
"type": "table",
"title": arrParams[index],
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": [],
}
for f in fundings:
tbl["rows"].append([f["Symbol"], f["Interval"] / 3600000, _D(f["Time"]), str(f["Rate"] * 100) + " %"])
tbls.append(tbl)
index += 1
LogStatus(_D(), "\n Requested market types:", symbols, "\n`" + json.dumps(tbls) + "`")
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-23 00:05:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDC"}]
*/
void main() {
// LPT_USDT.swap 4-hour period
json arrSymbol = R"([])"_json;
std::string symbols[] = {"SOL_USDT.swap", "ETH_USDT.swap", "LTC_USDT.swap", "SOL_USDC.swap", "ETH_USDC.swap", "BTC_USD.swap", "BTC_USDT.quarter", "LPT_USDT.swap"};
for (const std::string& symbol : symbols) {
exchange.GetTicker(symbol);
arrSymbol.push_back(symbol);
}
std::vector<std::vector<Funding>> arr = {};
std::string arrParams[] = {"no param", "LTC_USDT.swap", "USDT.swap", "USD.swap", "USDC.swap", "USDT.futures", "BTC_USDT.quarter"};
for (const std::string& p : arrParams) {
if (p == "no param") {
arr.push_back(exchange.GetFundings());
} else {
arr.push_back(exchange.GetFundings(p));
}
}
json tbls = R"([])"_json;
int index = 0;
for (int i = 0; i < arr.size(); i++) {
auto fundings = arr[i];
json tbl = R"({
"type": "table",
"cols": ["Symbol", "Interval", "Time", "Rate"],
"rows": []
})"_json;
tbl["title"] = arrParams[index];
for (int j = 0; j < fundings.size(); j++) {
auto f = fundings[j];
// json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), string(f.Rate * 100) + " %"};
json arrJson = {f.Symbol, f.Interval / 3600000, _D(f.Time), f.Rate};
tbl["rows"].push_back(arrJson);
}
tbls.push_back(tbl);
index++;
}
LogStatus(_D(), "\n Requested market types:", arrSymbol.dump(), "\n`" + tbls.dump() + "`");
}
Use o objeto de troca de futuros para chamar oexchange.GetFundings()
Antes de chamar qualquer função de mercado, o GetFundings retorna apenas os dados de financiamento do par de negociação padrão atual. Depois de chamar a função de mercado, retorna os dados de financiamento de todas as variedades solicitadas.
Para as bolsas de futuros que não suportam consulta por lotes de dados de taxa de financiamento, se osymbol
O parâmetro é especificado como a faixa de consulta, por exemplo:USDT.swap
ou osymbol
Quando o parâmetro não é passado, a interface irá relatar um erro.GetFundings()
função usando este tipo de objeto de troca de futuros, você deve especificar osymbol
Parâmetro como um tipo específico de contrato perpétuo, a fim de consultar os dados atuais da taxa de financiamento do tipo.
Oexchange.GetFundings()
A função suporta sistemas reais de negociação e backtesting.
Bolsas que não suportam aquisição por lotes de dados de taxa de financiamento: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbol
Parâmetro com o código de símbolo específico, por exemplo:ETH_USDT.swap
.
As trocas que não suportam oexchange.GetFundings()
Função:
Nome da função | Trocas spot não suportadas | Atividades de negociação |
---|---|---|
GetFundings | – | Futures_DigiFinex |
{@struct/Funding Funding}
Conta Configurações da rede