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}
Compte exchange.SetMarginLevel