Вexchange.GetPositions()
Функция используется для получения информации о положении;GetPositions()
функция является членом функции обмена объекта {@var/EXCHANGE exchange}.GetPositions()
функция получает информацию о позиции обменного счета, связанного с обменным объектомexchange
Цель функций (методов) членовexchange
Объект связан только сexchange
и не повторится здесь.
Вexchange.GetPositions()
функция возвращает массив {@struct/Position Position} структур, если запрос на данные удается, и возвращает нулевое значение, если запрос на данные не удается.
{@struct/Position Position} массивы, нулевые значения
Обмен.GetPositions ((() Обмен.GetPositions (символ)
Параметрsymbol
используется для установкиторговый символилидиапазон торговых символовчтобы его допросили.
Еслиsymbol
параметр не передается, по умолчанию требуются данные о положении всех символов в диапазоне измерений текущей торговой пары и кода контракта.
символ ложное строка
/*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;
}
Использование фьючерсных обменных объектов для размещения рыночных заказов на несколько различных торговых пар и кодов контрактов.
Фьючерсные контракты на криптовалюты отличаются от спотовых контрактов на криптовалюты, которые имеют только логическую концепцию позиции.торговые пары, код контрактаПожалуйста, обратитесь к {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} функциям.
ВGetPositions
функция, сценарии использования параметра символа обобщены следующим образом:
Классификация обмена | символ Параметры | Объем запроса | Примечание |
---|---|---|---|
Фьючерсы | Не передавать параметр символа | Запрос всех торговых продуктов в пределах текущего диапазона размеров торговой пары и кода контракта | Если текущая торговая пара BTC_USDT и код контракта swap, все постоянные контракты на основе USDT будут запрошены.GetPositions("USDT.swap") |
Фьючерсы | Укажите торговый продукт, параметр символа: |
Запрос постоянного контракта на основе USDT определенного BTC | Для фьючерсных обменных объектов формат символа параметра: комбинацияторговые парыикод контрактаопределены платформой FMZ, разделенные символами". . |
Фьючерсы | Укажите диапазон торговых продуктов, параметр символа: |
Запрос всех бессрочных контрактов на основе USDT | - |
Фьючерсные биржи, поддерживающие опционы | Не передавать параметр символа | Запрос всех опционных контрактов в пределах текущего диапазона размеров торговых пар | Если текущая торговая пара BTC_USDT, контракт устанавливается на опционный контракт, например, опционный контракт Binance: BTC-240108-40000-C |
Фьючерсные биржи, поддерживающие опционы | Укажите конкретный товар торговли | Запрос указанного опциона | Например, для Binance Futures Exchange параметр символа: BTC_USDT.BTC-240108-40000-C |
Фьючерсные биржи, поддерживающие опционы | Укажите диапазон торговых продуктов, параметр символа: |
Запрос всех контрактов на опционы на основе USDT | - |
ВGetPositions
Функция, объект биржи фьючерсов
диапазон измерений запроса обобщается следующим образом:
символ Параметры | Определение сферы применения запроса | Примечание |
---|---|---|
USDT.swap | Периодический контрактный диапазон на основе USDT. | Для |
размеры, которые не поддерживаются интерфейсом API обмена, будет сообщена ошибка и возвращено нулевое значение, когда звонит.
USDT.futures. USDT-основанный диапазон контрактов на доставку.
∙ ∙ ∙ USD.swap ∙ ∙ ∙ Сфера постоянного обмена на основе валюты Контракты.
USD.futures. Обхват доставки на основе валюты Контракты.
Оптимизация USDT.Опция USDT.Опционный контракт на основе USDT.
Оптиции в долларах США. Оптиции в валютах.
∙ ∙ USDT.futures_combo ∙ Ряд комбинаций CFD. ∙ Фьючерс_Дерибит Биржа
Ограничения контрактов на поставку смешанной маржи. Фьючерс_Кракен Биржа.
USD.swap_pf. Смешанный маржинальный диапазон постоянного контракта. Фьючерс_Кракен Биржа.
Совместима сexchange.GetPosition()
звонить,GetPosition
то же самое, чтоGetPositions
.
Когда счет, представленный обменным объектомexchange
не занимает никаких позиций вдиапазон запросаиликонкретные торговые инструменты,exchange.GetPositions()
функция возвращает пустой массив, например:[]
.
{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}
Вexchange.SetMarginLevel()
Функция используется для установления стоимости рычага в торговой паре или контракте, указанной вsymbol
Параметр. Совместим только с прохождением параметраmarginLevel
для установления стоимости кредитного плеча текущей торговой пары или контракта обменного объекта {@var/EXCHANGE exchange}.
exchange.SetMarginLevel ((символ, уровень маржи) Exchange.SetMarginLevel ((MarginLevel) - Установьте уровень маржи
Вsymbol
Параметр используется для указания торговой пары или контракта, для которого необходимо скорректировать значение кредитного плеча.symbol
параметрSetMarginLevel()
Функция соответствует форматуsymbol
параметрGetTicker()
Функция.
символ
ложное
строка
ВmarginLevel
параметр используется для установки значения рычага, который обычно является целым числом для бирж, и он также поддерживает настройки значения рычага плавающей точки для некоторых бирж.
Маржинальный уровень
Истинно
Номер
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);
}
Вexchange.SetMarginLevel()
Функция поддерживает только обменные объекты криптовалютных фьючерсных контрактов.exchange.SetMarginLevel()
функция для установки значения рычага.
Для фьючерсных контрактов на криптовалюты механизм использования рычага не является единым из-за бирж фьючерсных контрактов на криптовалюты.exchange.SetMarginLevel()
Функция не генерирует сетевой запрос, но только устанавливает переменную рычага в базовой системе FMZ (используется для передачи параметров в интерфейсе размещения заказов). Значение рычага некоторых биржевых фьючерсных контрактов является настройкой биржи, которая должна быть установлена на странице веб-сайта биржи или с помощью интерфейса API.exchange.SetMarginLevel()
Функция будет генерировать сетевой запрос и может не установить рычаг. Для этого может быть много причин, например: существует текущая позиция или ожидаемый ордер, что делает невозможным установку нового значения рычага для этой торговой пары или контракта.
Обмены, которые не поддерживаютexchange.SetMarginLevel()
Функция:
Имя функции | Не поддерживаемые спотовые обмены | Фьючерсные биржи без поддержки |
---|---|---|
Установка уровня границы | – | Фьючерсы_dYdX / Фьючерсы_Deribit |
{@var/EXCHANGE обмен}
Вexchange.SetDirection()
функция используется для настройки направления заказа функции {@fun/Trade/exchange.Buy exchange.Buy}, функции {@fun/Trade/exchange.Sell exchange.Sell} при размещении заказов на фьючерсные контракты.
Обмен.Установка направления (направление)
Вdirection
параметр используется для установки направления фьючерсного контракта при размещении ордера."buy"
, "closesell"
, "sell"
, "closebuy"
- Да.
направление
неправда
строка
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);
}
Вexchange.SetDirection()
функция устанавливает соответствие между направлением сделки фьючерсного контракта и функцией размещения ордера:
Функции размещения заказов | Направление, установленное параметрами функции SetDirection | Примечания |
---|---|---|
exchange.Buy | Купить и открыть длинные позиции | |
exchange.Buy | Купить и закрыть короткие позиции | |
exchange.Sell | Продажа и открытие коротких позиций | |
exchange.Sell | Продать и закрыть длинные позиции |
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}
Вexchange.SetContractType()
Функция используется для установки текущего кода контракта обмена объекта {@var/EXCHANGE exchange}.
Вexchange.SetContractType()
функция возвращает структуру, которая содержит код биржевого контракта, соответствующий текущему коду контракта.quarter
, и структура возвращаемой стоимости этой функции:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}
- Да.
объект
exchange.SetContractType ((символ)
Вsymbol
параметр используется для установки кода контракта, необязательные значения:"this_week"
, "next_week"
, "quarter"
, "next_quarter"
, "swap"
, и т.д.
Фьючерсные контракты на криптовалютыдоговор поставкикоды, если они не указаны, обычно имеют:
this_week
Контракт текущей недели.next_week
Контракт на следующей неделе.quarter
: квартальный контракт.next_quarter
: следующий квартальный контракт.Постоянные контрактыкоды в фьючерсных контрактах на криптовалюты, если они не указаны, обычно имеют:swap
- Вечный контракт.символ неправда строка
function main() {
// Set to this week contract
exchange.SetContractType("this_week")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
Установите текущий контракт как контракт текущей недели:
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());
}
При заключении договора сUSDT
в качестве маржи необходимо переключить торговую пару в коде (также можно установить торговую пару непосредственно при добавлении объекта обмена):
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);
}
Печать возвращаемого значенияexchange.SetContractType()
Функция:
В криптовалютной стратегии фьючерсных контрактов, возьмите пример переключения наBTC_USDT
Торговая пара: при смене торговой пары с использованиемexchange.SetCurrency("BTC_USDT")
илиexchange.IO("currency", "BTC_USDT")
функции, после переключения, вы должны использоватьexchange.SetContractType()
Система определяет, является ли новый торговый парывалютный стандартный контрактилиСтандартный контракт в USDTНапример, если торговая пара установлена наBTC_USDT
, используйтеexchange.SetContractType("swap")
функция настройки кода контракта наswap
В данный момент он установлен наBTC
дляСтандарт USDTЕсли торговая параBTC_USD
, используйтеexchange.SetContractType("swap")
функция настройки кода контракта наswap
В данный момент он установлен наBTC
Это...валютный стандартВечный контракт.
Подробная информация о поддерживаемых биржах фьючерсных контрактов на криптовалюты с названиями контрактов для каждой биржи:
Фьючерсы_OKCoin (OKX)
Установлено на постоянные контракты:exchange.SetContractType("swap")
На этой неделе контракт:exchange.SetContractType("this_week")
Контракт на следующей неделе:exchange.SetContractType("next_week")
Установлено на месячный контракт:exchange.SetContractType("month")
Контракт на следующий месяц:exchange.SetContractType("next_month")
Установлено на квартальные контракты:exchange.SetContractType("quarter")
Контракт на следующий квартал:exchange.SetContractType("next_quarter")
OKX имеет предварительные торговые контракты: дата поставки контракта является фиксированным временем.HMSTR-USDT-250207
. Установите торговую пару наHMSTR_USDT
на платформе FMZ, а затем использоватьexchange.SetContractType("HMSTR-USDT-250207")
чтобы установить контракт.
Для функций, поддерживающихsymbol
параметры, такие как:exchange.GetTicker()
, exchange.CreateOrder()
, и т. д. Вы можете указатьsymbol
параметр:HMSTR_USDT.HMSTR-USDT-250207
для получения рыночных данных по данному контракту или размещения заказа.
Фьючерсы_HuobiDM (фьючерсы Хуоби)
На этой неделе контракт:exchange.SetContractType("this_week")
- Да.
Контракт на следующей неделе:exchange.SetContractType("next_week")
- Да.
Установлено на квартальные контракты:exchange.SetContractType("quarter")
- Да.
Контракт на следующий квартал:exchange.SetContractType("next_quarter")
- Да.
Установлено на постоянные контракты:exchange.SetContractType("swap")
- Да.
Он поддерживает контракты сUSDT
в качестве маржи, взятьBTC
Договор на примере: использованиеexchange.IO("currency", "BTC_USDT")
перейти на контракт, который используетUSDT
как маржа.
Или установить текущую торговую пару наBTC_USDT
После переключения торговых пар, вы должны позвонитьexchange.SetContractType()
Функция снова установить контракт.
Фьючерсы_BitMEX (BitMEX)
Установлено на постоянные контракты:exchange.SetContractType("swap")
- Да.
Контракты на поставку фьючерсов на бирже BitMEX - это ежемесячные контракты с следующими кодами контрактов (с января по декабрь):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Заключение договоров поставки:exchange.SetContractType("December")
Например, когда торговая пара установлена наXBT_USDT
,exchange.SetContractType("December")
Функция вызвана для установки контракта на декабрьскую поставку в USDT на основе BTC (соответствующий фактическому коду контрактаXBTUSDTZ23
).
Фьючерсы_BitMEX Контрактная информация
Код контракта, определенный Futures_BitMEX | Соответствующая торговая пара в FMZ | Соответствующий код контракта в FMZ | Примечание |
---|---|---|---|
DOGEUSD | DOGE_USD | обмен | В долларах США, XBT расплачивается. |
ПОЛОЖЕНИЕ | DOGE_USDT | обмен | В USDT деноминировано, в USDT урегулировано. |
XBTETH | XBT_ETH | обмен | В ETH, в XBT. |
XBTEUR | XBT_EUR | обмен | В евро, расчеты в XBT. |
USDTUSDC | USDT_USDC | обмен | В долларах США, в XBT. |
ETHUSD_ETH | ETH_USD_ETH | обмен | В долларах США, расчеты в ETH. |
XBTH24 | XBT_USD | Март | Дата истечения срока действия: 24 марта, код месяца: H; номиналом в долларах США, расчет в XBT. |
ETHUSDZ23 | ETH_USD | Декабрь | Дата истечения срока действия: 23 декабря, код месяца: Z; номиналом в долларах США, расчет в XBT. |
XBTUSDTZ23 | XBT_USDT | Декабрь | Дата истечения срока действия: 23 декабря. Код месяца: Z; деноминированный в USDT, расчет в USDT. |
ADAZ23 | ADA_XBT | Декабрь | Дата истечения срока действия: 23 декабря, код месяца: Z ; расчет в XBT, расчет в XBT. |
P_XBTETFX23 | USDT_XXX | P_XBTETFX23 | Срок действия: 23/11/23; выраженный в процентах и расчитанный в USDT. |
Фьючерсы_GateIO
На этой неделе контракт:exchange.SetContractType("this_week")
- Да.
Контракт на следующей неделе:exchange.SetContractType("next_week")
- Да.
Установлено на квартальные контракты:exchange.SetContractType("quarter")
- Да.
Контракт на следующий квартал:exchange.SetContractType("next_quarter")
- Да.
Установлено на постоянные контракты:exchange.SetContractType("swap")
- Да.
Он поддерживает контракты сUSDT
в качестве маржи, взятьBTC
Договор на примере: использованиеexchange.IO("currency", "BTC_USDT")
перейти на контракт, который используетUSDT
как маржа.
Или установить текущую торговую пару наBTC_USDT
После переключения торговых пар, вы должны позвонитьexchange.SetContractType()
Функция снова установить контракт.
Фьючерсы_Deribit
Установлено на постоянные контракты:exchange.SetContractType("swap")
- Да.
Он поддерживает DeribitUSDC
Договор.
Контракты на поставку:"this_week"
, "next_week"
, "month"
, "quarter"
, "next_quarter"
, "third_quarter"
, "fourth_quarter"
- Да.
CFD (фьючерс_комбо):"this_week,swap"
, "next_week,swap"
, "next_quarter,this_week"
, "third_quarter,this_week"
, "month,next_week"
, есть много комбинаций.
Для опционных контрактов необходимо ввести конкретный код опционного контракта, определенный биржей, см. для подробной информации на веб-сайте Deribit.
Фьючерсы_KuCoin
Например, если торговая пара установлена наBTC_USD
и код контракта установлен, это валютный контракт:
Установлено на постоянные контракты:exchange.SetContractType("swap")
- Да.
Установлено на квартальные контракты:exchange.SetContractType("quarter")
- Да.
Контракт на следующий квартал:exchange.SetContractType("next_quarter")
.
USDT в качестве контракта на маржу:
Например, если торговая пара установлена наBTC_USDT
, а затем установить код контракта, это контракт с USDT в качестве маржи.
Установлено на постоянные контракты:exchange.SetContractType("swap")
.
Фьючерсы_Binance
Binance Futures Exchange по умолчанию в вечном контракте текущей торговой пары, код контракта:swap
- Да.
Установлено на постоянные контракты:exchange.SetContractType("swap")
, вечные контракты Binance имеют контракты, которые используютUSDT
Например,USDT
стандартный бессрочный контрактBTC
может использоваться в качестве контракта маржи, и торговая пара установлена наBTC_USDT
Binance также поддерживает вечные контракты, которые используют монеты в качестве маржи, например,BTC
Стандартный вечный контракт Binance, с торговой парой, установленной наBTC_USD
- Да.
Установлено на квартальные контракты:exchange.SetContractType("quarter")
, контракт поставки имеет валютный стандартный контракт (т.е. использует валюты в качестве маржи), например,BTC
В квартальном контракте торговая пара устанавливается на:BTC_USD
и затем установить контрактexchange.SetContractType("quarter")
, он настроен наBTC
квартальный контракт с валютным стандартным контрактом.
Контракт на следующий квартал:exchange.SetContractType("next_quarter")
, например,BTC
в случае, если в соответствии со стандартом валютного квартального контракта торговая пара установлена на:BTC_USD
, и затем установить контрактexchange.SetContractType("next_quarter")
- Да.
Binance поддерживает частичнуюUSDT
в качестве контракта на предоставление маржи,BTC
Например, установить торговую пару наBTC_USDT
, затем установить код контракта.
Поддержка контрактов Binance Options:
Формат кода опционного контракта основан на коде опционного контракта, определенном биржей:BTC-241227-15000-C
, XRP-240112-0.5-C
, BTC-241227-15000-P
Возьмите код контракта BinanceBTC-241227-15000-P
Например: BTC - это код валюты опциона, 241227 - дата осуществления, 15000 - цена осуществления, P - это опцион продажи, а C - это опцион покупки.
Подробная информация о типе опциона, будь то европейский опцион или американский опцион, приведена в соответствующей информации в опционном контракте биржи.
Биржа может ограничивать продавцов опционов и требовать от них подачи заявки на получение квалификации отдельно.
Фьючерсы_Бибокс
Код контракта для бессрочных контрактов Bibox:swap
- Да.
Установлено на постоянные контракты:exchange.SetContractType("swap")
.
Фьючерсы_Bybit
По умолчанию - постоянный контракт для текущей торговой пары, код контракта:swap
- Да.
Код контракта на этой неделе:this_week
- Да.
Код контракта на следующей неделе:next_week
- Да.
Код контракта третьей недели:third_week
- Да.
Месячный код контракта:month
- Да.
Код контракта на следующий месяц:next_month
- Да.
Код квартального контракта:quarter
- Да.
Код контракта на следующий квартал:next_quarter
- Да.
Код контракта третьего квартала:third_quarter
.
Фьючерс_Кракен
По умолчанию - постоянный контракт текущей торговой пары, код контракта:swap
.
swap
- Вечный контракт.month
: контракт текущего месяца.quarter
: квартальный контракт.next_quarter
Контракт на следующий квартал.swap_pf
: Вечный контракт с смешанной маржой.quarter_ff
: квартальный контракт с смешанной маржой.month_ff
: контракт на текущий месяц со смешанной маржой.next_quarter_ff
: контракт на смешанную маржу на следующий квартал.
Фьючерсы_Bitfinex
По умолчанию - постоянный контракт на текущую торговую пару, код контракта:swap
.
Фьючерсы_Bitget
По умолчанию - постоянный контракт на текущую торговую пару, код контракта:swap
- Да.
Торговая пара установлена наBTC_USD
для валютных стандартных контрактов, и торговая пара установлена наBTC_USDT
для договоров, заключенныхUSDT
. Демонстрационные контракты могут быть установлены с торговыми парами какSBTC_USD
, BTC_SUSDT
.
Фьючерсы_dYdX
Код контракта для бессрочных контрактов dYdX:swap
- Да.
Установлено на постоянные контракты:exchange.SetContractType("swap")
, dYdX имеет только стандартные контракты в USDT.
Фьючерсы_MEXC
Код контракта для бессрочных контрактов MEXC:swap
- Да.
Установлено на постоянные контракты:exchange.SetContractType("swap")
. Настроить торговую пару наBTC_USD
, который является валютным стандартным контрактом, и устанавливает торговую пару наBTC_USDT
, то естьUSDT
- Договор заключен.
Фьючерсы_Криптовалюта
Токены на счете наcrypto.comобменные опционы могут быть конвертированы в кредиты в долларах США для использования в качестве маржи для торговли контрактами.
Установлено на постоянный контракт:exchange.SetContractType("swap")
Пример вызоваexchange.SetContractType("swap")
функция установки бессрочного контракта на BTC, когда торговая пара установлена наBTC_USD
- Да.
Вcrypto.comКонтракты обменной доставки - это месячные контракты со следующими кодами контрактов (с января по декабрь):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Установите контракт поставки:exchange.SetContractType("October")
Например, когда торговая пара установлена наBTC_USD
, вызвать функциюexchange.SetContractType("October")
чтобы установить октябрьский контракт на доставку BTC.
Соответствующий код контракта на данный момент:BTCUSD-231027
.
Фьючерсы_WOO
Фьючерсы_WOOUSDT
основанные контракты с кодом постоянного контрактаswap
Например, когда торговая пара установлена наBTC_USDT
, функцияexchange.SetContractType("swap")
Призвано установить текущий контракт на USDT основанный вечный контракт для BTC.
{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}
Вexchange.GetContractType()
Функция используется для получения кода контракта для текущего настройки объекта обмена {@var/EXCHANGE exchange}.
Вexchange.GetContractType()
функция возвращает код контракта, определенный платформой FMZ, например:this_week
, swap
, и т.д.
строка
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} (Статьировка контракта)
Вexchange.GetFundings()
Функция используется для получения данных о ставках финансирования за текущий период.
Вexchange.GetFundings()
функция возвращает массив {@struct/Funding Funding} структур, когда запрос на данные выполняется успешно, и возвращает нулевое значение, когда запрос на данные не выполняется.
{@struct/Funding Funding} массив, нулевое значение
Обмен.GetFundings ((() обмен.GetFundings (символ)
Параметрsymbol
используется для установкисимвол транзакцииилидиапазон символов транзакцийКогдаsymbol
Если параметр не выполнен, данные текущей ставки финансирования всех инструментов будут запрошены по умолчанию в диапазоне измерений текущей торговой пары и кода контракта.
символ ложное строка
/*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() + "`");
}
Используйте объект фьючерсного обмена для вызоваexchange.GetFundings()
Перед вызовом любой рыночной функции GetFundings возвращает только данные о финансировании текущей торговой пары по умолчанию. После вызова рыночной функции он возвращает данные о финансировании всех запрошенных сортов. Вы можете обратиться к следующему примеру теста:
Для фьючерсных бирж, которые не поддерживают пакетный запрос данных по ставкам финансирования, еслиsymbol
параметр указывается как диапазон запроса, например:USDT.swap
илиsymbol
Параметр не передан, интерфейс будет сообщать об ошибке.GetFundings()
Функция, использующая этот тип фьючерсного обмена объекта, вы должны указатьsymbol
параметр как конкретный тип постоянного контракта для запроса текущих данных о ставках финансирования типа.
Вexchange.GetFundings()
Функция поддерживает реальные системы торговли и обратного тестирования.
Биржи, которые не поддерживают пакетную покупку данных по ставкам финансирования: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbol
параметр со специфическим кодом символа, например:ETH_USDT.swap
.
Обмены, которые не поддерживаютexchange.GetFundings()
Функция:
Имя функции | Не поддерживаемые спотовые обмены | Фьючерсные биржи без поддержки |
---|---|---|
GetFundings | – | Фьючерсы DigiFinex |
{@struct/Funding Финансирование}
Счет Настройки сети