В процессе загрузки ресурсов... загрузка...

Фьючерсы

exchange.GetPositions

В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")
Фьючерсы Укажите торговый продукт, параметр символа: BTC_USDT.swap Запрос постоянного контракта на основе USDT определенного BTC Для фьючерсных обменных объектов формат символа параметра: комбинацияторговые парыикод контрактаопределены платформой FMZ, разделенные символами"..
Фьючерсы Укажите диапазон торговых продуктов, параметр символа: USDT.swap Запрос всех бессрочных контрактов на основе USDT -
Фьючерсные биржи, поддерживающие опционы Не передавать параметр символа Запрос всех опционных контрактов в пределах текущего диапазона размеров торговых пар Если текущая торговая пара BTC_USDT, контракт устанавливается на опционный контракт, например, опционный контракт Binance: BTC-240108-40000-C
Фьючерсные биржи, поддерживающие опционы Укажите конкретный товар торговли Запрос указанного опциона Например, для Binance Futures Exchange параметр символа: BTC_USDT.BTC-240108-40000-C
Фьючерсные биржи, поддерживающие опционы Укажите диапазон торговых продуктов, параметр символа: USDT.option Запрос всех контрактов на опционы на основе 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

В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

В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

В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")- Да. Он поддерживает DeribitsUSDCДоговор. Контракты на поставку:"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_USDTBinance также поддерживает вечные контракты, которые используют монеты в качестве маржи, например,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

В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()Функция используется для получения данных о ставках финансирования за текущий период.

В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 Финансирование}

Счет Настройки сети