Peraturanexchange.GetPositions()
fungsi digunakan untuk mendapatkan maklumat kedudukan;GetPositions()
fungsi adalah fungsi ahli objek pertukaran {@var/EXCHANGE exchange}.GetPositions()
fungsi mendapat maklumat kedudukan akaun pertukaran terikat kepada objek pertukaranexchange
. Tujuan fungsi (metode) ahliexchange
objek hanya berkaitan denganexchange
dan tidak akan diulang di sini.
Peraturanexchange.GetPositions()
fungsi mengembalikan pelbagai struktur {@struct/Position Position} jika permintaan data berjaya, dan ia mengembalikan nilai null jika permintaan data gagal.
{@struct/Position Position} array, nilai sifar
pertukaran.GetPositions ((() pertukaran.GetPositions (simbol)
Parametersymbol
digunakan untuk menetapkansimbol perdaganganatauJulat simbol daganganuntuk ditanyakan.
Jikasymbol
Jika parameter tidak diteruskan, lalai adalah untuk meminta data kedudukan semua simbol dalam julat dimensi pasangan dagangan semasa dan kod kontrak.
simbol palsu senar
/*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;
}
Menggunakan objek pertukaran niaga hadapan untuk meletakkan pesanan pasaran untuk pelbagai pasangan dagangan yang berbeza dan kod kontrak.
Kontrak niaga hadapan mata wang kripto berbeza dengan spot mata wang kripto, yang hanya mempunyai konsep kedudukan yang logik.Pasangan dagangan, Kod kontrakSila rujuk {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} fungsi.
DalamGetPositions
fungsi, senario penggunaan parameter simbol diringkaskan seperti berikut:
Klasifikasi Objek Pertukaran | simbol Parameter | Lingkup pertanyaan | Perhatikan |
---|---|---|---|
Masa hadapan | Jangan lulus parameter simbol | Mencari semua produk dagangan dalam julat dimensi pasangan dagangan semasa dan kod kontrak | Jika pasangan dagangan semasa adalah BTC_USDT dan kod kontrak adalah swap, semua kontrak kekal berasaskan USDT akan ditanyakan.GetPositions("USDT.swap") |
Masa hadapan | Tentukan produk dagangan, parameter simbol adalah: |
Mencari kontrak kekal berasaskan USDT BTC tertentu | Untuk objek pertukaran niaga hadapan, format simbol parameter adalah: gabunganPasangan dagangandanKod kontrakditakrifkan oleh platform FMZ, dipisahkan dengan aksara". . |
Masa hadapan | Tentukan julat produk dagangan, parameter simbol adalah: |
Mencari semua kontrak kekal berasaskan USDT | - |
Bursa niaga hadapan yang menyokong opsyen | Jangan lulus parameter simbol | Mencari semua kontrak opsyen dalam julat dimensi pasangan dagangan semasa | Jika pasangan dagangan semasa adalah BTC_USDT, kontrak ditetapkan kepada kontrak opsyen, contohnya, kontrak opsyen Binance: BTC-240108-40000-C |
Bursa niaga hadapan yang menyokong opsyen | Menentukan produk perdagangan tertentu | Mencari kontrak opsyen yang ditentukan | Sebagai contoh, untuk Bursa niaga hadapan Binance, parameter simbol adalah: BTC_USDT.BTC-240108-40000-C |
Bursa niaga hadapan yang menyokong opsyen | Tentukan julat produk dagangan, parameter simbol adalah: |
Mencari semua kontrak opsyen berasaskan USDT | - |
DalamGetPositions
fungsi, objek pertukaran niaga hadapan
Julat dimensi pertanyaan diringkaskan seperti berikut:
simbol Parameter | Penentuan skop permintaan | Perhatikan |
---|---|---|
USDT.swap | Julat kontrak kekal berasaskan USDT. | Untuk |
dimensi yang tidak disokong oleh antara muka API pertukaran, Kesilapan akan dilaporkan dan nilai null akan dikembalikan apabila memanggil.
USDT.futures. USDT berasaskan kontrak penghantaran.
USD.swap. kontrak.
USD.futures.Skop penghantaran berasaskan mata wang kontrak.
USDT.option.Rentang kontrak pilihan berasaskan USDT.
USD.option. Rentang kontrak pilihan berasaskan mata wang.
USDT.futures_combo. Pelbagai kombinasi CFD. Futures_Deribit Exchange
USD.futures_ff. Jangkauan kontrak penghantaran margin bercampur. Futures_Kraken Exchange.
USD.swap_pf Rentang kontrak kekal margin campuran. Futures_Kraken Exchange.
Serasi denganexchange.GetPosition()
panggilan,GetPosition
adalah sama denganGetPositions
.
Apabila akaun yang diwakili oleh objek pertukaranexchange
tidak mempunyai kedudukan dalamJulat pertanyaanatauInstrumen dagangan tertentu, yangexchange.GetPositions()
fungsi mengembalikan array kosong, contohnya:[]
.
{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}
Akaun exchange.SetMarginLevel