Leexchange.GetPositions()
La fonction est utilisée pour obtenir les informations de position;GetPositions()
fonction est une fonction membre de l'objet d'échange {@var/EXCHANGE exchange}.GetPositions()
fonction obtient les informations de position du compte de change lié à l'objet de changeexchange
Le but des fonctions (méthodes) des membres duexchange
l'objet est uniquement lié àexchange
et ne se reproduira pas ici.
Leexchange.GetPositions()
la fonction renvoie un tableau de structures {@struct/Position Position} si la demande de données est réussie, et elle renvoie une valeur nulle si la demande de données échoue.
{@struct/Position Position} les tableaux, les valeurs nulles
Je suis en train de changer de position. Je suis en train d'écrire une lettre.
Le paramètresymbol
est utilisé pour régler lesymbole de négociationougamme de symboles de négociationPour être interrogé.
Si lesymbol
si le paramètre n'est pas passé, la valeur par défaut est de demander les données de position de tous les symboles dans la gamme de dimensions de la paire de négociation en cours et du code du contrat.
le symbole faux chaîne
/*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;
}
Utilisez des objets d'échange de contrats à terme pour passer des ordres de marché pour plusieurs paires de transactions et codes de contrats différents.
Les contrats à terme de crypto-monnaie diffèrent des contrats à terme de crypto-monnaie, qui n'ont que le concept logique d'une position.paires de négociation, code du contratVeuillez vous référer aux fonctions {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}.
Dans leGetPositions
fonction, les scénarios d'utilisation du paramètre symbole sont résumés comme suit:
Classification des objets Exchange | Symbole Paramètres | Portée de la requête | Nom de l'entreprise |
---|---|---|---|
Les contrats à terme | Ne pas passer le paramètre de symbole | Rechercher tous les produits de négociation dans la gamme de dimensions de la paire de négociation et du code du contrat en cours | Si la paire de trading actuelle est BTC_USDT et que le code du contrat est swap, tous les contrats perpétuels basés sur USDT seront interrogés.GetPositions("USDT.swap") |
Les contrats à terme | Indiquez le produit de négociation, le paramètre du symbole est: |
Rechercher le contrat perpétuel basé sur USDT d'un BTC spécifié | Pour les objets d'échange de contrats à terme, le format du symbole de paramètre est:paire de négociationetcode du contratdéfinies par la plateforme FMZ, séparées par les caractères". . |
Les contrats à terme | Spécifier la gamme de produits de négociation, le paramètre du symbole est: |
Rechercher tous les contrats perpétuels basés sur USDT | - |
Échanges de contrats à terme qui prennent en charge les options | Ne pas passer le paramètre de symbole | Rechercher tous les contrats d'options dans la plage de dimension de la paire de négociation en cours | Si la paire de négociation actuelle est BTC_USDT, le contrat est défini sur un contrat d'option, par exemple, le contrat d'option Binance: BTC-240108-40000-C |
Échanges de contrats à terme qui prennent en charge les options | Spécifier le produit commercial spécifique | Rechercher le contrat d' option spécifié | Par exemple, pour Binance Futures Exchange, le paramètre du symbole est le suivant: BTC_USDT.BTC-240108-40000-C |
Échanges de contrats à terme qui prennent en charge les options | Spécifiez la gamme de produits de négociation, le paramètre du symbole est: |
Rechercher tous les contrats d'options basés sur USDT | - |
Dans leGetPositions
fonction, l'objet de l'échange à terme
la gamme de dimensions de requête est résumée comme suit:
Symbole Paramètres | Définition de la portée de la demande | Nom de l'entreprise |
---|---|---|
USDT.swap | la valeur de l'échange est la valeur de l'échange à terme. | Pour |
les dimensions qui ne sont pas prises en charge par l'interface API d'échange, une erreur sera signalée et une valeur nulle sera renvoyée lorsque Je vous appelle.
Une gamme de contrats de livraison basés sur USDT.
L'ampleur de l'échange perpétuel basé sur la monnaie Des contrats.
L'ampleur de la livraison basée sur la monnaie Des contrats.
Une gamme d'options basée sur USDT.
L'option USD est basée sur la monnaie.
Une gamme de combinaisons de CFD. Les échanges de dérivés futures.
L'ampleur des contrats de livraison de marge mixte. Je suis en train d'écrire un livre.
Une marge mixte pour un contrat perpétuel. Je suis en train d'écrire un livre.
Compatible avecexchange.GetPosition()
appel,GetPosition
est exactement le même queGetPositions
.
Lorsque le compte représenté par l'objet d'échangeexchange
n'a aucune position dans leplage de requêteouinstruments de négociation spécifiques, leexchange.GetPositions()
la fonction renvoie un tableau vide, par exemple:[]
.
{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}
Leexchange.SetMarginLevel()
Cette fonction est utilisée pour définir la valeur du levier de la paire de négociation ou du contrat spécifié par lesymbol
Paramètre. Compatible avec seulement passer dans le paramètremarginLevel
pour définir la valeur du levier de la paire de négociation ou du contrat en cours de l'objet de l'échange {@var/EXCHANGE exchange}.
Le niveau de marge est défini par l'échange. Le taux d'intérêt de l'échange est le taux d'intérêt de la bourse.
Lesymbol
Le paramètre est utilisé pour spécifier la paire de négociation ou le contrat pour lequel la valeur de l'effet de levier doit être ajustée.symbol
paramètre duSetMarginLevel()
La fonction est compatible avec le format de lasymbol
paramètre duGetTicker()
fonction.
le symbole
faux
chaîne
LemarginLevel
Le paramètre est utilisé pour définir la valeur de l'effet de levier, qui est généralement un entier pour les bourses et il prend également en charge les paramètres de valeur d'effet de levier à virgule flottante pour certaines bourses.
MargeLe niveau
vrai
Numéro
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);
}
Leexchange.SetMarginLevel()
Le système de backtesting prend en charge l'appel de l'objet de l'échange de contrat à terme de crypto-monnaie.exchange.SetMarginLevel()
fonction permettant de définir la valeur du levier.
Pour les contrats à terme de crypto-monnaie, le mécanisme d'effet de levier n'est pas uniforme en raison des échanges de contrats à terme de crypto-monnaie.exchange.SetMarginLevel()
la fonction ne génère pas une demande réseau, mais définit uniquement la variable de levier dans le système FMZ sous-jacent (utilisé pour passer des paramètres dans l'interface de placement des ordres).exchange.SetMarginLevel()
Il peut y avoir de nombreuses raisons à cela, par exemple: il y a une position en cours ou un ordre en attente, ce qui rend impossible de définir une nouvelle valeur d'effet de levier pour cette paire ou ce contrat.
Échanges qui ne soutiennent pas leexchange.SetMarginLevel()
fonction:
Nom de la fonction | Échanges au comptant non pris en charge | Échanges de contrats à terme non soutenus |
---|---|---|
Définir le niveau de marge | – | Le montant de l'obligation est calculé à partir de la valeur de l'obligation. |
{@var/EXCHANGE échange}
Leexchange.SetDirection()
Cette fonction est utilisée pour définir la direction des ordres de la fonction {@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell} lors de la passation d'ordres pour les contrats à terme.
Je suis en train de changer de direction.
Ledirection
Le paramètre est utilisé pour définir la direction du contrat à terme lorsque l'ordre est passé."buy"
, "closesell"
, "sell"
, "closebuy"
- Je ne sais pas.
direction
vrai
chaîne
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);
}
Leexchange.SetDirection()
la fonction définit la correspondance entre la direction de l'opération du contrat à terme et la fonction de placement des ordres:
Fonctions de placement des commandes | La direction définie par les paramètres de la fonction SetDirection | Les commentaires |
---|---|---|
exchange.Buy | Achat et ouverture de positions longues | |
exchange.Buy | Achat et fermeture de positions courtes | |
exchange.Sell | Vendre et ouvrir des positions courtes | |
exchange.Sell | Vendre et fermer des positions longues |
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Sell exchange.Sell}, {@fun/Trade/exchange.Sell}, {@fun/Trade/exchange.Buy exchange.Sell}, {@fun/Trade/exchange.Buy exchange.Buy exchange.Buy.Buy}, {@fun/Trade/exchange.Buy.Buy.Buy}, {@fun/Trade/Exchange.Buy.Buy}
Leexchange.SetContractType()
fonction est utilisée pour définir le code de contrat courant de l'objet d'échange {@var/EXCHANGE exchange}.
Leexchange.SetContractType()
La fonction renvoie une structure qui contient le code du contrat d'échange correspondant au code du contrat actuel.quarter
, et la structure de la valeur de retour de cette fonction est:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}
- Je ne sais pas.
objet
le type de contrat (symbole)
Lesymbol
le paramètre est utilisé pour définir le code du contrat, les valeurs facultatives sont:"this_week"
, "next_week"
, "quarter"
, "next_quarter"
, "swap"
, etc.
Contrats à terme sur crypto-monnaiecontrat de livraisonles codes, s'ils ne sont pas spécifiés, comportent généralement:
this_week
: le contrat de la semaine en cours.next_week
Le contrat de la semaine prochaine.quarter
: contrat trimestriel.next_quarter
: le contrat trimestriel suivant.Contrats à durée déterminéeles codes des contrats à terme sur crypto-monnaie, s'ils ne sont pas spécifiés, comportent généralement:swap
Le contrat est perpétuel.le symbole vrai chaîne
function main() {
// Set to this week contract
exchange.SetContractType("this_week")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
Définissez le contrat en cours comme le contrat de la semaine en cours:
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());
}
Lors de la conclusion d'un contrat avecUSDT
comme marge, vous devez basculer la paire de négociation dans le code (vous pouvez également définir la paire de négociation directement lors de l'ajout de l'objet d'échange):
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);
}
Imprimez la valeur de retour duexchange.SetContractType()
fonction:
Dans la stratégie des contrats à terme de crypto-monnaie, prenons l'exemple du passage à laBTC_USDT
Partie de négociation: Lorsque des paires de négociation sont changées en utilisant leexchange.SetCurrency("BTC_USDT")
ouexchange.IO("currency", "BTC_USDT")
fonctionnalités, après le changement, vous devez utiliser leexchange.SetContractType()
La fonction de réinitialisation du contrat pour déterminer le contrat en cours à opérer dans le cadre de la nouvelle paire de négociation.contrat type de deviseou unContrat type USDTPar exemple, si une paire de négociation est réglée surBTC_USDT
, utilisezexchange.SetContractType("swap")
fonction de régler le code du contrat àswap
À ce stade, il est réglé surBTC
Pour leNorme USDTSi la paire de négociation estBTC_USD
, utilisezexchange.SetContractType("swap")
fonction de régler le code du contrat àswap
À ce stade, il est réglé surBTC
C' est...norme monétaireLe contrat est perpétuel.
Détails des bourses de contrats à terme de crypto-monnaie prises en charge, avec les noms des contrats pour chaque bourse comme suit:
Le montant de l'obligation est calculé à partir du montant de la garantie.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
Le contrat de cette semaine:exchange.SetContractType("this_week")
Le contrat de la semaine prochaine:exchange.SetContractType("next_week")
Réglé à un contrat mensuel:exchange.SetContractType("month")
Contrat pour le mois prochain:exchange.SetContractType("next_month")
Résultats des contrats trimestriels:exchange.SetContractType("quarter")
Contrat pour le prochain trimestre:exchange.SetContractType("next_quarter")
OKX a des contrats de négociation pré-marché: la date de livraison du contrat est une heure fixe.HMSTR-USDT-250207
. Réglez la paire de négociation àHMSTR_USDT
sur la plateforme FMZ, puis utiliserexchange.SetContractType("HMSTR-USDT-250207")
pour établir le contrat.
Pour les fonctions qui prennent en charge lesymbol
paramètre, tel que:exchange.GetTicker()
, exchange.CreateOrder()
, etc. Vous pouvez spécifier lesymbol
paramètre comme suit:HMSTR_USDT.HMSTR-USDT-250207
d'obtenir les données de marché du présent contrat ou de passer une commande.
Le montant de l'obligation est calculé à partir de la valeur de la garantie.
Le contrat de cette semaine:exchange.SetContractType("this_week")
- Je ne sais pas.
Le contrat de la semaine prochaine:exchange.SetContractType("next_week")
- Je ne sais pas.
Résultats des contrats trimestriels:exchange.SetContractType("quarter")
Je suis désolée.
Contrat pour le prochain trimestre:exchange.SetContractType("next_quarter")
- Je ne sais pas.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
- Je ne sais pas.
Il soutient les contrats avecUSDT
comme marge, prenezBTC
le contrat par exemple: utilisationexchange.IO("currency", "BTC_USDT")
pour passer à un contrat qui utiliseUSDT
comme marge.
Ou régler la paire de négociation actuelle àBTC_USDT
Il est nécessaire de modifier les paramètres de trading en direct et d'ajouter des objets d'échange.exchange.SetContractType()
La fonction de régler le contrat.
Les titres de titres de titres de titres de titres de titres
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
Je suis désolée.
Les contrats de livraison sur le marché des contrats à terme BitMEX sont des contrats mensuels avec les codes de contrat suivants (de janvier à décembre):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Rédaction de contrats de livraison:exchange.SetContractType("December")
Par exemple, lorsque la paire de négociation est réglée surXBT_USDT
, leexchange.SetContractType("December")
La fonction est appelée à définir le contrat pour la livraison de décembre en USDT basé sur BTC (correspondant au code de contrat réel deXBTUSDTZ23
).
Résumé des informations relatives aux contrats à terme BitMEX
Code du contrat défini par Futures_BitMEX | La paire de négociation correspondante dans FMZ | Le code du contrat correspondant dans FMZ | Nom de l'entreprise |
---|---|---|---|
Le DOGEUSD | Le montant de l'allocation | échange | Nommé en USD, XBT réglé. |
Le code de conduite | Le code de l'appareil | échange | Nominé en USDT, réglé en USDT. |
XBTETH | XBT_ETH | échange | ETH dénommé, XBT réglé. |
XBTEUR | XBT_EUR | échange | Nominé en euros, réglé en XBT. |
USDTUSDC | USDT_USDC | échange | Nommé en USDC, XBT réglé. |
Évaluation de la valeur de l'échange | Équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent de l'équivalent | échange | Nommé en USD, réglé en ETH. |
XBTH24 | XBT_USD | Le mois de mars | Date d'expiration: le 24 mars, le code du mois est: H; libellé en USD, XBT réglé. |
Le montant de la dette est calculé en fonction de la valeur de la dette. | Équivalent de l'équivalent de l'échange | Décembre | Date d'expiration: le 23 décembre, le code du mois est le suivant: Z; libellé en USD, réglé en XBT. |
Je ne sais pas. | XBT_USDT | Décembre | Date d'expiration: le 23 décembre. Le code du mois est le suivant: Z ; libellé en USDT, réglé en USDT. |
ADAZ23 | ADA_XBT | Décembre | Date d'expiration: 23 décembre, le code du mois est: Z ; facturation en XBT, règlement en XBT. |
P_XBTETFX23 | USDT_XXX | P_XBTETFX23 | Expiration: 23/11/23; exprimé en pourcentage et réglé en USDT. |
Les contrats à terme
Le contrat de cette semaine:exchange.SetContractType("this_week")
- Je ne sais pas.
Le contrat de la semaine prochaine:exchange.SetContractType("next_week")
- Je ne sais pas.
Résultats des contrats trimestriels:exchange.SetContractType("quarter")
Je suis désolée.
Contrat pour le prochain trimestre:exchange.SetContractType("next_quarter")
- Je ne sais pas.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
- Je ne sais pas.
Il soutient les contrats avecUSDT
comme marge, prenezBTC
le contrat par exemple: utilisationexchange.IO("currency", "BTC_USDT")
pour passer à un contrat qui utiliseUSDT
comme marge.
Ou régler la paire de négociation actuelle àBTC_USDT
Il est nécessaire de modifier les paramètres de trading en direct et d'ajouter des objets d'échange.exchange.SetContractType()
La fonction de régler le contrat.
Les titres à terme
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
- Je ne sais pas.
Il prend en charge DeribitUSDC
Le contrat.
Les contrats de livraison sont les suivants:"this_week"
, "next_week"
, "month"
, "quarter"
, "next_quarter"
, "third_quarter"
, "fourth_quarter"
- Je ne sais pas.
Le montant de l'obligation de dépôt est calculé à partir du montant de la garantie."this_week,swap"
, "next_week,swap"
, "next_quarter,this_week"
, "third_quarter,this_week"
, "month,next_week"
, il y a beaucoup de combinaisons.
Pour les contrats d'options, vous devez entrer le code spécifique du contrat d'option défini par la bourse, voir le site Web de Deribit pour plus de détails.
Les contrats à terme avec KuCoin
Par exemple, si la paire de négociation est réglée surBTC_USD
et le code du contrat est défini, il s'agit d'un contrat basé sur la devise:
Réglé à des contrats perpétuels:exchange.SetContractType("swap")
- Je ne sais pas.
Résultats des contrats trimestriels:exchange.SetContractType("quarter")
Je suis désolée.
Contrat pour le prochain trimestre:exchange.SetContractType("next_quarter")
.
USDT comme contrat de marge:
Par exemple, si la paire de négociation est réglée surBTC_USDT
, puis définissez le code du contrat, il s'agit d'un contrat avec USDT comme marge.
Réglé à des contrats perpétuels:exchange.SetContractType("swap")
.
Les contrats à terme avec Binance
Binance Futures Exchange défaut sur le contrat perpétuel de la paire de négociation en cours, code du contrat:swap
- Je ne sais pas.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
, les contrats perpétuels de Binance ont des contrats qui utilisentUSDT
comme marge.USDT
contrat perpétuel standard deBTC
Le taux de change de la paire de négociation peut être utilisé comme contrat de marge et la paire de négociation est réglée surBTC_USDT
Binance prend également en charge les contrats perpétuels qui utilisent des pièces comme marge, par exemple,BTC
Le contrat perpétuel standard de Binance, avec la paire de négociationBTC_USD
- Je ne sais pas.
Résultats des contrats trimestriels:exchange.SetContractType("quarter")
, le contrat de livraison comporte un contrat standard en devises (c'est-à-dire en utilisant des devises comme marge), par exemple,BTC
Dans le contrat trimestriel, la paire de négociation est réglée sur:BTC_USD
et ensuite fixer le contratexchange.SetContractType("quarter")
, il est réglé surBTC
un contrat trimestriel avec un contrat type en devises.
Contrat pour le prochain trimestre:exchange.SetContractType("next_quarter")
, par exemple,BTC
du contrat trimestriel type de devises, la paire de négociation est fixée à:BTC_USD
, et ensuite fixer le contratexchange.SetContractType("next_quarter")
- Je ne sais pas.
Binance prend en charge partiellementUSDT
comme contrat de livraison de marge, prendreBTC
par exemple, définir la paire de négociation àBTC_USDT
, puis définissez le code du contrat.
Prise en charge des contrats Binance Options:
Le format du code du contrat d'option est basé sur le code du contrat d'option défini par la bourse:BTC-241227-15000-C
, XRP-240112-0.5-C
, BTC-241227-15000-P
Prenez le code du contrat d' option BinanceBTC-241227-15000-P
Par exemple: BTC est le code de la devise de l'option, 241227 est la date d'exercice, 15000 est le prix d'exercice, P représente une option de vente et C représente une option d'achat.
Pour plus de détails sur le type d'option, qu'il s'agisse d'option européenne ou d'option américaine, veuillez consulter les informations pertinentes du contrat d'option de l'échange.
L'échange peut restreindre les vendeurs d'options et les obliger à demander des qualifications séparément.
Les échanges à terme
Code du contrat pour les contrats perpétuels Bibox:swap
- Je ne sais pas.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
.
Les échanges à terme
Le code du contrat est le contrat perpétuel pour la paire de négociation en cours:swap
- Je ne sais pas.
Le code du contrat de cette semaine:this_week
- Je ne sais pas.
Code du contrat de la semaine prochaine:next_week
- Je ne sais pas.
Code du contrat de la troisième semaine:third_week
- Je ne sais pas.
Code du contrat mensuel:month
- Je ne sais pas.
Code du contrat du mois prochain:next_month
Je suis désolée.
Code du contrat trimestriel:quarter
Je suis désolée.
Code du contrat pour le trimestre suivant:next_quarter
- Je ne sais pas.
Code du contrat pour le troisième trimestre:third_quarter
.
Les contrats à terme
Le contrat par défaut est le contrat perpétuel de la paire de négociation en cours, code du contrat:swap
.
swap
Le contrat est perpétuel.month
: contrat du mois en cours.quarter
: contrat trimestriel.next_quarter
Le contrat pour le prochain trimestre.swap_pf
: Contrats perpétuels à marge mixte.quarter_ff
: Contrat trimestriel à marge mixte.month_ff
: contrat de marge mixte pour le mois en cours.next_quarter_ff
Contrat de marge mixte pour le prochain trimestre.
Les titres à terme
Le code du contrat est le code de la paire de négociation en cours.swap
.
Les contrats à terme_Bitget
Le code du contrat est le code de la paire de négociation en cours.swap
- Je ne sais pas.
La paire de négociation est réglée surBTC_USD
pour les contrats standard de devises, et la paire de négociation est réglée surBTC_USDT
pour les contrats réglés parUSDT
Les contrats de démonstration peuvent être établis avec des paires de négociation telles queSBTC_USD
, BTC_SUSDT
.
Les échanges à terme
Code du contrat pour les contrats perpétuels dYdX:swap
- Je ne sais pas.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
, dYdX ne propose que des contrats standard en USDT.
Les échanges à terme
Code du contrat pour les contrats perpétuels MEXC:swap
- Je ne sais pas.
Réglé sur des contrats perpétuels:exchange.SetContractType("swap")
. Régler la paire de négociation àBTC_USD
, qui est un contrat standard de devise, et définit une paire de négociation àBTC_USDT
, qui estUSDT
- Un contrat conclu.
Les contrats à terme
Les jetons dans un compte sur lecrypto.comLes opérations de change peuvent être converties en crédits libellés en USD à utiliser comme marge pour le trading de contrats.
Je suis en contrat à perpétuité:exchange.SetContractType("swap")
. Exemple d'appel duexchange.SetContractType("swap")
fonction de définition d'un contrat perpétuel pour BTC lorsque la paire de négociation est réglée surBTC_USD
- Je ne sais pas.
Lecrypto.comLes contrats de livraison de change sont des contrats mensuels avec les codes de contrat suivants (de janvier à décembre):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Définir le contrat de livraison:exchange.SetContractType("October")
Par exemple, lorsque la paire de négociation est réglée surBTC_USD
, appeler la fonctionexchange.SetContractType("October")
pour fixer le contrat de livraison d'octobre pour BTC.
Le code du contrat correspondant à l'heure actuelle est le suivant:BTCUSD-231027
.
Les contrats à terme
Comptes à terme_WOOUSDT
Les contrats basés sur un code de contrat perpétuel deswap
Par exemple, lorsque la paire de négociation est réglée surBTC_USDT
, la fonctionexchange.SetContractType("swap")
est appelé à définir le contrat actuel comme un contrat perpétuel pour BTC basé sur USDT.
{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}
Leexchange.GetContractType()
fonction est utilisée pour obtenir le code du contrat pour le paramètre actuel de l'objet d'échange {@var/EXCHANGE exchange}.
Leexchange.GetContractType()
la fonction renvoie le code de contrat défini par la plateforme FMZ, par exemple:this_week
, swap
, etc.
chaîne
Il est possible de modifier le type de contrat.
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é.
Leexchange.GetFundings()
Cette fonction est utilisée pour obtenir les données sur le taux de financement pour la période en cours.
Leexchange.GetFundings()
la fonction renvoie un tableau de structures {@struct/Funding Funding} lorsque la demande de données est réussie, et renvoie une valeur nulle lorsque la demande de données échoue.
{@struct/Funding Funding} tableau, valeur nulle
Les fonds sont versés à l'échange. Les échanges de fonds (symbole)
Le paramètresymbol
est utilisé pour régler lesymbole de transactionougamme de symboles de transactionLe rapport de la commission de l'emploi et des affaires socialessymbol
si le paramètre n'est pas passé, les données relatives au taux de financement actuel de tous les instruments seront demandées par défaut dans la gamme de dimensions de la paire de négociation et du code du contrat en cours.
le symbole faux chaîne
/*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() + "`");
}
Utilisez l'objet d'échange de contrats à terme pour appeler leexchange.GetFundings()
Avant d'appeler une fonction de marché, GetFundings renvoie uniquement les données de financement de la paire de trading 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. Vous pouvez vous référer à l'exemple de test suivant:
Pour les bourses à terme qui ne prennent pas en charge la requête par lots de données sur les taux de financement, si lesymbol
le paramètre est spécifié comme la plage de requête, par exemple:USDT.swap
ou lesymbol
Si le paramètre n'est pas passé, l'interface signalera une erreur.GetFundings()
fonction utilisant ce type d'objet d'échange de contrats à terme, vous devez spécifier lesymbol
paramètre comme type de contrat perpétuel spécifique afin d'interroger les données actuelles sur le taux de financement du type.
Leexchange.GetFundings()
La fonctionnalité prend en charge les systèmes réels de trading et de backtesting.
Les échanges qui ne prennent pas en charge l'acquisition par lots de données sur les taux de financement: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbol
paramètre avec le code de symbole spécifique, par exemple:ETH_USDT.swap
.
Les échanges qui ne soutiennent pas leexchange.GetFundings()
fonction:
Nom de la fonction | Échanges au comptant non pris en charge | Échanges de contrats à terme non soutenus |
---|---|---|
GetFundings | – | Les contrats à terme |
{@struct/Funding Financing} Je suis désolée.
Compte Réglages réseau