```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 échanges、Le code du contratLes fonctionnalités communes sont définies par la fonction {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}.
DansGetPositions
Dans 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: |
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 | - |
DansGetPositions
Dans 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é.GetPosition
avecGetPositions
L'utilisation est parfaitement homogène.
Lorsque l'objet de la bourseexchange
Le 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(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ètresUSDT
En 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_USDT
Exemple 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_USDT
Le temps, l'utilisationexchange.SetContractType("swap")
Le code du contrat de fonction estswap
Il y a un problème.BTC
Je 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 estswap
Il y a un problème.BTC
Je 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-250207
Il s'agit d'une plateforme pour les inventeurs.HMSTR_USDT
et utilisezexchange.SetContractType("HMSTR-USDT-250207")
Il a écrit sur Twitter:
Pour le soutiensymbol
Les fonctions des paramètres, par exemple:exchange.GetTicker()
、exchange.CreateOrder()
Et ainsi de suite.symbol
Les paramètres sont:HMSTR_USDT.HMSTR-USDT-250207
Les 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.
SoutenirUSDT
Il y a un accord de garantie.BTC
Exemple de contrat: utilisationexchange.IO("currency", "BTC_USDT")
Il est possible de le changer pour une utilisationUSDT
Il 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_USDT
Le 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_USDT
Je 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.
SoutenirUSDT
Il y a un accord de garantie.BTC
Exemple de contrat utiliséexchange.IO("currency", "BTC_USDT")
Il est possible de le changer pour une utilisationUSDT
Il 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_USDT
Le 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 à DeribitUSDC
Je 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_USD
Le 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_USDT
Le 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:swap
Je ne sais pas.
Il s'agit d'un contrat permanent:exchange.SetContractType("swap")
Le contrat de pérennité de Biyan est utile.USDT
Par exemple, le contrat de garantieBTC
Je ne sais pasUSDT
Le présent contrat permanent, les paires de transactions sont définies comme:BTC_USDT
Ainsi, il est possible d'obtenir des contrats permanents en utilisant des pièces de monnaie comme garantie.BTC
Le prix de la devise est un contrat permanent, la paire de transactions est réglée surBTC_USD
Je 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 exempleBTC
Les contrats trimestriels, les paires de transactions sont placées à:BTC_USD
Régler le contratexchange.SetContractType("quarter")
Il y a un autre problème.BTC
Le 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:BTC
Le prix de l'offre de billets de banque est fixé à:BTC_USD
Le contrat a été rétabliexchange.SetContractType("next_quarter")
Je ne sais pas.
Partie de soutien à BinanceUSDT
Le montant de la garantie est calculé en fonction du taux d'intérêt.BTC
Exemple: les paires de transactions sont définies commeBTC_USDT
Le 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-C
,XRP-240112-0.5-C
,BTC-241227-15000-P
Le code du contrat d'options en binanceBTC-241227-15000-P
Par 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:swap
Je 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.swap
Je ne sais pas.
Le code du contrat de la semaine:this_week
Je ne sais pas.
Le code du contrat de la semaine prochaine:next_week
Je ne sais pas.
Le code du contrat pour la troisième semaine:third_week
Je ne sais pas.
Le code du contrat mensuel:month
Je ne sais pas.
Le code du contrat pour le mois prochain:next_month
Je ne sais pas.
Le code du contrat trimestriel:quarter
Je ne sais pas.
Le code du contrat pour le prochain trimestre:next_quarter
Je ne sais pas.
Le code du contrat pour le troisième trimestre:third_quarter
Je 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_USD
Je 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-231027
Je ne sais pas.
- Je suis désolé.
Futures_WOO est une bourseUSDT
Ce contrat, c'est un contrat à durée déterminée.swap
Par exemple, les paires de transactions sont configurées comme suit:BTC_USDT
Je 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()```函数返回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()```函数请求数据成功时返回{@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ésymbol
Les paramètres sont la portée de la requête, par exemple:USDT.swap
Ou passymbol
L'interface de paramètre donne un message d'erreur.GetFundings()
Les fonctions doivent être spécifiéessymbol
Le 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.symbol
Paramè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