Les ressources ont été chargées... Je charge...

Les contrats à terme

exchange.GetPositions


```exchange.GetPositions()```函数请求数据成功时返回{@struct/Position Position}结构数组,请求数据失败时返回空值。
{@struct/Position Position}数组、空值

exchange.GetPositions()
exchange.GetPositions(symbol)

参数```symbol```用于设置所要查询的**交易品种**或者**交易品种的范围**。
不传```symbol```参数时,默认以当前交易对、合约代码所在维度范围请求所有品种的持仓数据。

symbol
false
string

```javascript
/*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) + "`")

    // 打印输出一次信息后返回,防止后续回测时订单成交,影响数据观察
    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;
}

Utilisez les objets d'un échange de contrats à terme pour rechercher des titres de plusieurs paires de transactions différentes, des listes de prix sous-jacentes de variétés de codes de contrats.

Les contrats à terme de crypto-monnaie diffèrent des contrats à terme de crypto-monnaie, qui ne sont que des concepts de détention logiques. Dans le système de la plate-forme de négociation quantitative FMZ, les contrats à terme de crypto-monnaie sont des variétés spécifiques de contrats à terme de crypto-monnaie.Les échangesLe code du contratLes fonctionnalités communes sont définies par la fonction {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}. DansGetPositionsDans les fonctions, les scénarios d'utilisation des paramètres symbol sont résumés:

Classification des objets Paramètres de symboles Portée de la requête Nom de l'auteur
Le futur Pas de paramètre de symbole Consultez toutes les variétés de transactions dans les paires de transactions en cours, dans la gamme de codes de contrats Si la paire en cours est BTC_USDT, le code du contrat est swap, c'est-à-dire qu'il interroge tous les contrats permanents en USDT.GetPositions("USDT.swap")
Le futur Indiquez la variété de transaction, le paramètre de symbole est: BTC_USDT.swap Enquête sur les contrats à durée indéterminée USDT pour BTC désigné Pour les objets des échanges à terme, le format de symbole des paramètres est:Les échangesavecLe code du contratLes combinaisons, avec des caractères"."Il y a une différence.
Le futur 指定交易品种范围,symbol参数为:”USDT.swap” Voir tous les contrats permanents de USDT -
Les marchés à terme qui soutiennent les options Pas de paramètre de symbole Consultez tous les contrats d'options actuellement négociés sur la gamme de dimensions Si la paire en cours est BTC_USDT, le contrat est configuré comme un contrat d'options, par exemple un contrat d'options Binance: BTC-240108-40000-C
Les marchés à terme qui soutiennent les options Indiquer une variété de transaction spécifique Enquête sur les contrats d'options désignés Par exemple, pour les échanges à terme de Bitcoin, le paramètre de symbole est: BTC_USDT.BTC-240108-40000-C
Les marchés à terme qui soutiennent les options 指定交易品种范围,symbol参数为:”USDT.option” Voir tous les contrats d'options locaux USDT -

DansGetPositionsDans la fonction, la portée de la dimension de requête de l'objet de l'échange de contrats à terme est résumée:

Paramètres de symboles Définition de la portée de la demande Nom de l'auteur
USDT.swap La USDT est une société de services financiers basée à Tokyo. Pour les dimensions qui ne sont pas prises en charge par l'API de l'échange, l'erreur est de retourner une valeur nulle lors de l'appel.
USDT.futures Le taux d'échange USDT est approximatif. -
USD.swap Le projet de loi a été adopté par le Parlement européen. -
USD.futures Le taux d'échange de la monnaie locale est approximatif. -
USDT.option La portée des contrats d'options sur USDT. -
USD.option Les contrats d'options sur le marché monétaire. -
USDT.futures_combo Les différences de prix dans la gamme de contrats. Le marché des futures Deribit est en train de se développer.
USD.futures_ff Les taux de change de garantie mixtes sont approximatifs. Les futures_Kraken échange
USD.swap_pf Les contrats de garantie mixtes sont définitifs. Les futures_Kraken échange

Compatibilitéexchange.GetPosition()Il a appelé.GetPositionavecGetPositionsL'utilisation est parfaitement homogène.

Lorsque l'objet de la bourseexchangeLe compte du représentant est auDans le cadre de la requêteouVariétés de négociation désignéesQuand il n'y en a pasexchange.GetPositions()Une fonction renvoie une matrice vide, par exemple:[]

{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}

exchange.SetMarginLevel


exchange.SetMarginLevel(symbol, marginLevel)
exchange.SetMarginLevel(marginLevel)

```symbol```参数用于指定需要调整杠杆值的交易对、合约。```SetMarginLevel()```函数的```symbol```参数的格式与```GetTicker()```函数的```symbol```参数的格式一致。
symbol
false
string
```marginLevel```参数用于设置杠杆值,交易所的杠杆值通常是整数,也支持一些交易所的浮点数杠杆值设置。
marginLevel
true
number

```javascript
function main() {
    exchange.SetMarginLevel(10)
    // 设置BTC的USDT本位永续合约的杠杆为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()```函数并不产生网络请求,仅设置FMZ系统底层中的杠杆变量(用于下单接口传参)。 有些交易所期货合约杠杆值是交易所的一项设置,是需要通过在交易所网站页面设置或者使用API接口设置。 此时调用```exchange.SetMarginLevel()```函数就会产生网络请求,并且有可能设置杠杆失败。 原因可能有很多,例如:当前有持仓、挂单,导致这个交易对、合约无法再设置新的杠杆值。
不支持```exchange.SetMarginLevel()```函数的交易所:
| 函数名 | 不支持的现货交易所 | 不支持的期货交易所 |
| - | - | - |
| SetMarginLevel | -- | Futures_dYdX / Futures_Deribit |


{@var/EXCHANGE exchange}

### exchange.SetDirection

```exchange.SetDirection()```函数用于设置{@fun/Trade/exchange.Buy exchange.Buy}函数、{@fun/Trade/exchange.Sell exchange.Sell}函数进行期货合约下单时的订单方向。

exchange.SetDirection(direction)

```direction```参数用于设置期货合约下单时的方向,可选值为:```"buy"```、```"closesell"```、```"sell"```、```"closebuy"```。
direction
true
string

```javascript
function main(){
    // 举例设置为OKX期货当周合约
    exchange.SetContractType("this_week")    
    // 设置杠杆为5倍
    exchange.SetMarginLevel(5)
    // 设置下单类型为做多
    exchange.SetDirection("buy")
    // 以10000的价格,合约数量为2张下单
    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);
}

|下单函数|SetDirection函数的参数设置的方向|备注|
|-|-|-|
|exchange.Buy|"buy"|买入开多仓|
|exchange.Buy|"closesell"|买入平空仓|
|exchange.Sell|"sell"|卖出开空仓|
|exchange.Sell|"closebuy"|卖出平多仓|


{@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"}```。
object

exchange.SetContractType(symbol)

```symbol```参数用于设置合约代码,可选值为:```"this_week"```、```"next_week"```、```"quarter"```、```"next_quarter"```、```"swap"```等。
加密货币期货合约中**交割合约**代码如无特殊说明一般有:

- ```this_week```:当周合约。
- ```next_week```:次周合约。
- ```quarter```:季度合约。
- ```next_quarter```:次季度合约。
加密货币期货合约中**永续合约**代码如无特殊说明一般有:
- ```swap```:永续合约。

symbol
true
string

```javascript
function main() {
    // 设置为当周合约
    exchange.SetContractType("this_week") 
}
def main():
    exchange.SetContractType("this_week")
void main() {
    exchange.SetContractType("this_week");
}

Le contrat actuel est le contrat de la semaine suivante:

function main() {
    // 默认交易对为BTC_USD,设置合约为当周,合约为币本位合约
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())
    
    // 切换交易对,然后设置合约,切换成USDT作为保证金的合约,区别于币本位合约
    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());
}

ParamètresUSDTEn tant que contrat de garantie, il est nécessaire de changer la paire de transactions dans le code (vous pouvez également configurer la paire de transactions directement lors de l'ajout d'un objet d'échange):

function main(){
    // 设置合约为当周
    var ret = exchange.SetContractType("this_week")     
    // 返回当周合约的信息
    Log(ret)
}
def main():
    ret = exchange.SetContractType("this_week")
    Log(ret)
void main() {
    auto ret = exchange.SetContractType("this_week");
    Log(ret);
}

L'impressionexchange.SetContractType()La valeur de retour de la fonction est:

Dans la stratégie de contrats à terme de crypto-monnaie, le taux de change est deBTC_USDTExemple de paire de transactions: lorsqu'il est utiliséexchange.SetCurrency("BTC_USDT")Ou alorsexchange.IO("currency", "BTC_USDT")Les paires de transactions de commutation de fonction doivent être utilisées après la commutation.exchange.SetContractType()La fonction de réinitialisation des contrats permet de déterminer les contrats qui nécessitent une opération actuelle dans une nouvelle paire de transactions.Contrats sur le lieu de monnaieOu alorsContrats locaux USDTPar exemple: les paires de transactions sont définies commeBTC_USDTLe temps, l'utilisationexchange.SetContractType("swap")Le code du contrat de fonction estswapIl y a un problème.BTCJe ne sais pasUSDT au lieuLe contrat de travail est un contrat de longue durée.BTC_USD, utilisationexchange.SetContractType("swap")Le code du contrat de fonction estswapIl y a un problème.BTCJe ne sais pasLe prix du billetIl a écrit sur Twitter: Pour plus de détails sur les échanges de contrats à terme de crypto-monnaie pris en charge, les contrats de chaque échange sont nommés comme suit: - Futures_OKCoin ((OKX)) Le contrat est définitif:exchange.SetContractType("swap")Le contrat de la semaine est:exchange.SetContractType("this_week")Le contrat est fixé à la semaine suivante:exchange.SetContractType("next_week")Les contrats mensuels sont:exchange.SetContractType("month")Le contrat est fixé au mois suivant:exchange.SetContractType("next_month")Les contrats sont définis comme trimestriels:exchange.SetContractType("quarter")Les contrats sont fixés pour le prochain trimestre:exchange.SetContractType("next_quarter")

OKX dispose de contrats de négociation avant la mise en marché: les dates de livraison des contrats sont fixées à un moment donné, les exemples de codes de contrats définis par l'échange sont:HMSTR-USDT-250207Il s'agit d'une plateforme pour les inventeurs.HMSTR_USDTet utilisezexchange.SetContractType("HMSTR-USDT-250207")Il a écrit sur Twitter: Pour le soutiensymbolLes fonctions des paramètres, par exemple:exchange.GetTicker()exchange.CreateOrder()Et ainsi de suite.symbolLes paramètres sont:HMSTR_USDT.HMSTR-USDT-250207Les utilisateurs peuvent demander des informations sur le marché ou passer une commande pour ce contrat. - Futures_HuobiDM (Futures sur les jetons) Le contrat de la semaine est:exchange.SetContractType("this_week")Je ne sais pas. Le contrat est fixé à la semaine suivante:exchange.SetContractType("next_week")Je ne sais pas. Les contrats sont définis comme trimestriels:exchange.SetContractType("quarter")Je ne sais pas. Les contrats sont fixés pour le prochain trimestre:exchange.SetContractType("next_quarter")Je ne sais pas. Il s'agit d'un contrat permanent:exchange.SetContractType("swap")Je ne sais pas. SoutenirUSDTIl y a un accord de garantie.BTCExemple de contrat: utilisationexchange.IO("currency", "BTC_USDT")Il est possible de le changer pour une utilisationUSDTIl y a eu une réaction positive de la part du gouvernement. Vous pouvez également configurer la paire de transactions en cours directement lors de la configuration des paramètres du disque dur ou de l'ajout d'objets d'échange.BTC_USDTLe changement de transaction nécessite un rappelexchange.SetContractType()Les fonctions sont réglées par contrat. - Futures_BitMEX (en anglais seulement) Il s'agit d'un contrat permanent:exchange.SetContractType("swap")Je ne sais pas. Le taux de change sur l'échange Futures_BitMEX est d'environ un contrat mensuel avec le code suivant (de janvier à décembre):

  "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"

Le taux de conversion est fixé à:exchange.SetContractType("December")Par exemple, les paires de transactions sont configurées comme suit:XBT_USDTJe ne sais pas.exchange.SetContractType("December")La fonction définit le contrat de livraison USDT de BTC en décembre (le code du contrat réel correspondant estXBTUSDTZ23)。

Résumé des informations sur les contrats BitMEX Les futures_BitMEX définissent les codes de contrats correspondant à la transaction dans FMZ et les codes de contrats correspondant à la transaction dans FMZ. Je ne sais pas si j'ai bien compris. DOGEUSD. DOGE_USD. swap. Le prix en dollars, le paiement en XBT. DOGEUSDT DOGE_USDT swap USDT cotation, USDT le paiement et le paiement sont effectués par le client. XBTETH. XBT_ETH. Le swap. Le prix de l'ETH, le paiement en XBT. XBTEUR. XBT_EUR. Swap. Prix en euros. Remboursement en XBT. USDTUSDC. USDT_USDC. swap. Le prix en USDC, le paiement en XBT. Et il y a aussi le swap, le dollar, le paiement en ETH. XBTH24 XBT_USD Mars Date d'expiration: 24 mars, le code du mois est H; prix en dollars, paiement en XBT. Le code du mois est: Z; prix en dollars, paiement en XBT. XBTUSDTZ23 XBT_USDT Décembre Date d'expiration: 23 décembre, le code du mois est Z; USDT facturation, USDT paiement. ADAZ23 ADA_XBT Décembre Date d'expiration: 23 décembre, le code du mois est: Z; XBT cotation, XBT paiement. P_XBTETFX23 USDT_XXX P_XBTETFX23 Date d'expiration: 23 novembre; le prix est calculé en pourcentage, le paiement est effectué en USDT. - Vous avez un problème? Le contrat de la semaine est:exchange.SetContractType("this_week")Je ne sais pas. Le contrat est fixé à la semaine suivante:exchange.SetContractType("next_week")Je ne sais pas. Les contrats sont définis comme trimestriels:exchange.SetContractType("quarter")Je ne sais pas. Les contrats sont fixés pour le prochain trimestre:exchange.SetContractType("next_quarter")Je ne sais pas. Il s'agit d'un contrat permanent:exchange.SetContractType("swap")Je ne sais pas. SoutenirUSDTIl y a un accord de garantie.BTCExemple de contrat utiliséexchange.IO("currency", "BTC_USDT")Il est possible de le changer pour une utilisationUSDTIl y a eu une réaction positive de la part du gouvernement. Vous pouvez également configurer la paire de transactions en cours directement lors de la configuration des paramètres du disque dur ou de l'ajout d'objets d'échange.BTC_USDTLe changement de transaction nécessite un rappelexchange.SetContractType()Les fonctions sont réglées par contrat. - Je suis désolée. Il s'agit d'un contrat permanent:exchange.SetContractType("swap")Je ne sais pas. Le soutien à DeribitUSDCJe ne suis pas d'accord. Le taux de transfert est de:"this_week", "next_week", "month", "quarter", "next_quarter", "third_quarter", "fourth_quarter"Je ne sais pas. Le contrat de différence (combo futur):"this_week,swap", "next_week,swap", "next_quarter,this_week", "third_quarter,this_week", "month,next_week"Il existe de nombreuses combinaisons. Pour plus de détails sur les codes spécifiques des contrats d'options qui doivent être transmis par les échanges, voir Deribit. - Futures_KuCoin est une crypto-monnaie Les contrats sur place, par exemple les paires de transactions, sont définis commeBTC_USDLe code du contrat, c'est-à-dire le contrat au lieu de monnaie: Le contrat est définitif:exchange.SetContractType("swap")Je ne sais pas. Le contrat pour la saison est:exchange.SetContractType("quarter")Je ne sais pas. Les contrats sont fixés pour le prochain trimestre:exchange.SetContractType("next_quarter")

USDT comme contrat de garantie: Par exemple, les paires de transactions sont définies commeBTC_USDTLe code du contrat est défini comme le code du contrat pour l'USDT en tant que garantie. Le contrat est définitif:exchange.SetContractType("swap")Je ne sais pas. - Futures_Binance Le code du contrat est le code de la paire actuelle de contrats à durée indéterminée, que l'échange binaire de futures considère par défaut:swapJe ne sais pas. Il s'agit d'un contrat permanent:exchange.SetContractType("swap")Le contrat de pérennité de Biyan est utile.USDTPar exemple, le contrat de garantieBTCJe ne sais pasUSDTLe présent contrat permanent, les paires de transactions sont définies comme:BTC_USDTAinsi, il est possible d'obtenir des contrats permanents en utilisant des pièces de monnaie comme garantie.BTCLe prix de la devise est un contrat permanent, la paire de transactions est réglée surBTC_USDJe ne sais pas. Les contrats sont définis comme trimestriels:exchange.SetContractType("quarter"), les taux de change sont des contrats en devises (c'est-à-dire en utilisant des devises comme garantie), par exempleBTCLes contrats trimestriels, les paires de transactions sont placées à:BTC_USDRégler le contratexchange.SetContractType("quarter")Il y a un autre problème.BTCLe gouvernement a décidé de mettre en place un nouveau système de paiement. Les contrats sont fixés pour le prochain trimestre:exchange.SetContractType("next_quarter")Par exemple:BTCLe prix de l'offre de billets de banque est fixé à:BTC_USDLe contrat a été rétabliexchange.SetContractType("next_quarter")Je ne sais pas. Partie de soutien à BinanceUSDTLe montant de la garantie est calculé en fonction du taux d'intérêt.BTCExemple: les paires de transactions sont définies commeBTC_USDTLe code du contrat peut être défini à nouveau.

Le gouvernement chinois a annoncé que les options binaires seraient vendues à un prix très élevé. Le format du code du contrat d'options est le code du contrat d'options défini par l'échange:BTC-241227-15000-CXRP-240112-0.5-CBTC-241227-15000-PLe code du contrat d'options en binanceBTC-241227-15000-PPar exemple: BTC est le code de la monnaie de l'option, 241227 est la date de validation, 15000 est le prix de validation, P est l'option à la baisse, C est l'option à la hausse. Les types d'options sont spécifiquement des options européennes / américaines. L'échange peut limiter les vendeurs d'options et nécessiter une demande d'admissibilité séparée. - Le futur de la bibox Le code du contrat pour un contrat permanent avec Bibox:swapJe ne sais pas. Il s'agit d'un contrat permanent:exchange.SetContractType("swap")Je ne sais pas. - Je ne sais pas. Le code du contrat est le code de l'opérateur de l'opérateur.swapJe ne sais pas. Le code du contrat de la semaine:this_weekJe ne sais pas. Le code du contrat de la semaine prochaine:next_weekJe ne sais pas. Le code du contrat pour la troisième semaine:third_weekJe ne sais pas. Le code du contrat mensuel:monthJe ne sais pas. Le code du contrat pour le mois prochain:next_monthJe ne sais pas. Le code du contrat trimestriel:quarterJe ne sais pas. Le code du contrat pour le prochain trimestre:next_quarterJe ne sais pas. Le code du contrat pour le troisième trimestre:third_quarterJe ne sais pas. - Je suis désolée. Le code du contrat est le code de l'opérateur de l'opérateur.swap

  ```month```:当月合约。
  ```quarter```:季度合约。
  ```next_quarter```:次季合约。
  ```swap_pf```:混合保证金永续合约。 
  ```quarter_ff```:混合保证金季度合约。 
  ```month_ff```:混合保证金当月合约。 
  ```next_quarter_ff```:混合保证金次季度合约。
- Futures_Bitfinex
  默认为当前交易对的永续合约,合约代码:```swap```。
- Futures_Bitget
  默认为当前交易对的永续合约,合约代码:```swap```。
  交易对设置为```BTC_USD```为币本位合约,交易对设置为```BTC_USDT```为```USDT```结算的合约。模拟合约可以设置交易对为:```SBTC_USD```、```BTC_SUSDT```。
- Futures_dYdX (v4)
  dYdX永续合约的合约代码:```swap```。
  设置为永续合约:```exchange.SetContractType("swap")```,dYdX仅有```USD.swap```品种维度,使用的保证金为USDC。
- Futures_MEXC
  MEXC(抹茶)永续合约的合约代码:```swap```。
  设置为永续合约:```exchange.SetContractType("swap")```。交易对设置为```BTC_USD```为币本位合约,交易对设置为```BTC_USDT```为```USDT```结算的合约。
- Futures_Crypto
  crypto.com交易所的账户中的代币可以折算为USD计价的额度,用于合约交易的保证金。
  设置为永续合约:```exchange.SetContractType("swap")```。举例交易对设置为```BTC_USD```时,调用```exchange.SetContractType("swap")```函数设置BTC的永续合约。
  crypto.com交易所交割合约为月度合约,合约代码如下(一月到十二月):
  ```code
  "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"

Le taux de conversion est fixé à:exchange.SetContractType("October")Par exemple, les paires de transactions sont configurées comme suit:BTC_USDJe ne sais pas.exchange.SetContractType("October")La fonction définit le taux d'échange de BTC pour le mois d'octobre. Le code du contrat correspondant à l'heure actuelle est:BTCUSD-231027Je ne sais pas. - Je suis désolé. Futures_WOO est une bourseUSDTCe contrat, c'est un contrat à durée déterminée.swapPar exemple, les paires de transactions sont configurées comme suit:BTC_USDTJe ne sais pas.exchange.SetContractType("swap")La fonction définit les contrats actuels comme des contrats perpétuels USDT en BTC.

{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}

exchange.GetContractType


```exchange.GetContractType()```函数返回FMZ平台定义的合约代码,例如:```this_week```、```swap```等。
string

exchange.GetContractType()

```javascript
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} Il s'agit d'un produit qui a été vendu par un fournisseur d'électricité.

exchange.GetFundings


```exchange.GetFundings()```函数请求数据成功时返回{@struct/Funding Funding}结构数组,请求数据失败时返回空值。
{@struct/Funding Funding}数组、空值

exchange.GetFundings()
exchange.GetFundings(symbol)

参数```symbol```用于设置所要查询的**交易品种**或者**交易品种的范围**。 不传```symbol```参数时,默认以当前交易对、合约代码所在维度范围请求所有品种的当期资金费率数据。

symbol
false
string

```javascript
/*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小时周期
    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 已经请求过的行情品种:", 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小时周期
    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 已经请求过的行情品种:", 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小时周期
    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 已经请求过的行情品种:", arrSymbol.dump(), "\n`" + tbls.dump() + "`");
}

Utilisation d'objets d'échanges à terme pour appeler dans un système de retoucheexchange.GetFundings()Fonction. Avant d'appeler une fonction de marché, GetFundings ne renvoie que les données de financement de la paire de transactions par défaut actuelle. Après avoir appelé la fonction de marché, il renvoie les données de financement de toutes les variétés demandées.

Pour les échanges à terme qui ne prennent pas en charge les données de taux de fonds à la demande en vrac, si indiquésymbolLes paramètres sont la portée de la requête, par exemple:USDT.swapOu passymbolL'interface de paramètre donne un message d'erreur.GetFundings()Les fonctions doivent être spécifiéessymbolLe paramètre est spécifique à une variété de contrats permanents et permet de rechercher des données sur les taux de financement actuels de cette variété.exchange.GetFundings()Les fonctions prennent en charge le disque dur, le système de retouche. Les échanges qui ne prennent pas en charge l'accès en vrac aux données de taux de change sont: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbolParamètres de code spécifique à la variété, par exemple:ETH_USDT.swap

Pas de soutienexchange.GetFundings()L'échange de fonctionnalités:

Nom de la fonction Les échanges sur place non pris en charge Échanges à terme non soutenus
GetFundings Les contrats à terme

{@struct/Funding Financing} Je suis désolée.

Compte Réglages réseau