Peraturanexchange.GetPositions()
fungsi digunakan untuk mendapatkan informasi posisi;GetPositions()
fungsi adalah anggota fungsi dari exchange object {@var/EXCHANGE exchange}.GetPositions()
fungsi mendapatkan informasi posisi akun pertukaran terikat pada objek pertukaranexchange
Tujuan dari fungsi anggota (metode) dariexchange
objek hanya terkait denganexchange
dan tidak akan diulang di sini.
Peraturanexchange.GetPositions()
fungsi mengembalikan array struktur {@struct/Position Position} jika permintaan data berhasil, dan mengembalikan nilai nol jika permintaan data gagal.
{@struct/Position Position} array, nilai nol
Pertukaran.GetPositions ((() tukar.GetPositions (simbol)
Parametersymbol
digunakan untuk mengatursimbol perdaganganataukisaran simbol perdaganganuntuk diinterogasi.
Jikasymbol
parameter tidak diteruskan, default adalah untuk meminta data posisi dari semua simbol dalam kisaran dimensi pasangan perdagangan saat ini dan kode kontrak.
lambang palsu string
/*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 obyek pertukaran berjangka untuk menempatkan pesanan pasar untuk beberapa pasangan perdagangan yang berbeda dan kode kontrak.
Kontrak berjangka cryptocurrency berbeda dari spot cryptocurrency, yang hanya memiliki konsep posisi yang logis.Pasangan perdagangan, kode kontrakSilakan lihat fungsi {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}
DalamGetPositions
fungsi, skenario penggunaan parameter simbol diringkas sebagai berikut:
Klasifikasi Objek Exchange | simbol Parameter | Ruang lingkup kueri | Pernyataan |
---|---|---|---|
Masa Depan | Jangan lulus parameter simbol | Mencari semua produk perdagangan dalam kisaran dimensi pasangan perdagangan saat ini dan kode kontrak | Jika pasangan perdagangan saat ini adalah BTC_USDT dan kode kontrak adalah swap, semua kontrak abadi berbasis USDT akan ditanyakan.GetPositions("USDT.swap") |
Masa Depan | Tentukan produk perdagangan, parameter simbol adalah: |
Mencari kontrak abadi berbasis USDT dari BTC tertentu | Untuk obyek bursa berjangka, format simbol parameter adalah:pasangan perdagangandankode kontrakdidefinisikan oleh platform FMZ, dipisahkan oleh karakter". . |
Masa Depan | Tentukan rentang produk perdagangan, parameter simbol adalah: |
Mencari semua kontrak abadi berbasis USDT | - |
Bursa berjangka yang mendukung opsi | Jangan lulus parameter simbol | Mencari semua kontrak opsi dalam kisaran dimensi pasangan perdagangan saat ini | Jika pasangan perdagangan saat ini adalah BTC_USDT, kontrak ditetapkan sebagai kontrak opsi, misalnya, kontrak opsi Binance: BTC-240108-40000-C |
Bursa berjangka yang mendukung opsi | Tentukan produk perdagangan tertentu | Mencari kontrak opsi yang ditentukan | Misalnya, untuk Binance Futures Exchange, parameter simbol adalah: BTC_USDT.BTC-240108-40000-C |
Bursa berjangka yang mendukung opsi | Tentukan rentang produk perdagangan, parameter simbol adalah: |
Mencari semua kontrak opsi berbasis USDT | - |
DalamGetPositions
fungsi, obyek pertukaran berjangka
rentang dimensi kueri diringkas sebagai berikut:
simbol Parameter | Definisi Lingkup Permintaan | Pernyataan |
---|---|---|
USDT.swap | Rentang kontrak abadi berbasis USDT. | Untuk |
dimensi yang tidak didukung oleh antarmuka API pertukaran, kesalahan akan dilaporkan dan nilai nol akan dikembalikan ketika Menelpon.
USDT.futures. USDT berbasis rentang kontrak pengiriman.
{\cH00FFFF}$USD.swap {\cH00FFFF}Skop perpetual berbasis mata uang kontrak.
{\cH00FFFF}USD.futures. {\cH00FFFF}Skop pengiriman berdasarkan mata uang kontrak.
{\cH00FFFF}$USDT.option {\cH00FFFF}$USDT-based options contract range {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT-based options contract range {\cH00FFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFFFF}$USDT.option {\cH00FFFF}$USDT.option {\cH00FFFFFF}$USDT-based options contract range {\cH00FFFFFF}$USDT.option range.
USD.option Rentang kontrak opsi berbasis mata uang
USDT.futures_combo Rentang kombinasi CFD. Futures_Deribit Exchange
{\cH00FFFF}$.futures_ff. {\cH00FFFF}Skop kontrak pengiriman margin campuran. Futures_Kraken Exchange
{\cH00FFFF}USD.swap_pf {\cH00FFFF}Rentang kontrak jangka panjang margin campuran. Futures_Kraken Exchange
Kompatibel denganexchange.GetPosition()
panggilan,GetPosition
sama persis denganGetPositions
.
Ketika akun yang diwakili oleh objek pertukaranexchange
tidak memiliki posisi direntang kueriatauInstrumen perdagangan tertentu, yangexchange.GetPositions()
fungsi mengembalikan array kosong, misalnya:[]
.
{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}
Peraturanexchange.SetMarginLevel()
Fungsi ini digunakan untuk menetapkan nilai leverage dari pasangan perdagangan atau kontrak yang ditentukan olehsymbol
Kompatibel dengan hanya melewati dalam parametermarginLevel
untuk menetapkan nilai leverage dari pasangan perdagangan atau kontrak saat ini dari objek pertukaran {@var/EXCHANGE exchange}.
exchange.SetMarginLevel ((simbol, marginLevel) Pertukaran.Set MarginLevel ((marginLevel)
Peraturansymbol
parameter digunakan untuk menentukan pasangan perdagangan atau kontrak yang mana nilai leverage perlu disesuaikan.symbol
parameter dariSetMarginLevel()
fungsi konsisten dengan format darisymbol
parameter dariGetTicker()
fungsi.
lambang
palsu
string
PeraturanmarginLevel
parameter digunakan untuk mengatur nilai leverage, yang biasanya bilangan bulat untuk bursa dan juga mendukung pengaturan nilai leverage titik terapung untuk beberapa bursa.
marginLevel
benar
nomor
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);
}
Peraturanexchange.SetMarginLevel()
fungsi mendukung cryptocurrency kontrak berjangka pertukaran objek saja. sistem backtesting mendukung memanggilexchange.SetMarginLevel()
fungsi untuk mengatur nilai leverage.
Untuk kontrak berjangka cryptocurrency, mekanisme leverage tidak seragam karena pertukaran kontrak berjangka cryptocurrency.exchange.SetMarginLevel()
fungsi tidak menghasilkan permintaan jaringan, tetapi hanya menetapkan variabel leverage dalam sistem FMZ yang mendasari (digunakan untuk melewati parameter dalam antarmuka penempatan pesanan). Nilai leverage dari beberapa kontrak berjangka pertukaran adalah pengaturan dari bursa, yang perlu ditetapkan di halaman situs web bursa atau menggunakan antarmuka API. Dalam hal ini memanggilexchange.SetMarginLevel()
fungsi akan menghasilkan permintaan jaringan dan mungkin gagal mengatur leverage. Ada banyak alasan untuk ini, misalnya: ada posisi saat ini atau pesanan yang menunggu, yang membuat tidak mungkin untuk menetapkan nilai leverage baru untuk pasangan perdagangan atau kontrak ini.
Bursa yang tidak mendukungexchange.SetMarginLevel()
Fungsi:
Nama Fungsi | Pertukaran Spot yang tidak didukung | Pertukaran Futures Tanpa Dukungan |
---|---|---|
SetMarginLevel | – | Futures_dYdX / Futures_Deribit |
{@var/EXCHANGE pertukaran}
Peraturanexchange.SetDirection()
Fungsi ini digunakan untuk mengatur arah pesanan dari fungsi {@fun/Trade/exchange.Buy exchange.Buy}, fungsi {@fun/Trade/exchange.Sell exchange.Sell} ketika menempatkan pesanan untuk kontrak berjangka.
Pertukaran.SetDirection ((arah)
Peraturandirection
parameter digunakan untuk mengatur arah kontrak berjangka ketika pesanan ditempatkan."buy"
, "closesell"
, "sell"
, "closebuy"
Aku tidak tahu.
arah
benar
string
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);
}
Peraturanexchange.SetDirection()
Fungsi menetapkan korespondensi antara arah transaksi kontrak berjangka dan fungsi penempatan order:
Fungsi penempatan pesanan | Arah yang ditetapkan oleh parameter fungsi SetDirection | Pengamatan |
---|---|---|
exchange.Buy | Membeli dan membuka posisi panjang | |
exchange.Buy | Membeli dan menutup posisi pendek | |
exchange.Sell | Jual dan buka posisi pendek | |
exchange.Sell | Jual dan tutup posisi panjang |
{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}
Peraturanexchange.SetContractType()
Fungsi ini digunakan untuk mengatur kode kontrak saat ini dari objek pertukaran {@var/EXCHANGE exchange}.
Peraturanexchange.SetContractType()
fungsi mengembalikan struktur yang berisi kode kontrak pertukaran yang sesuai dengan kode kontrak saat ini.quarter
, dan struktur nilai pengembalian fungsi ini adalah:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}
Aku tidak tahu.
objek
exchange.SetContractType ((simbol)
Peraturansymbol
parameter digunakan untuk mengatur kode kontrak, nilai opsional adalah:"this_week"
, "next_week"
, "quarter"
, "next_quarter"
, "swap"
, dll.
Kontrak berjangka cryptocurrencykontrak pengirimankode, jika tidak ditentukan, umumnya memiliki:
this_week
: kontrak minggu ini.next_week
: kontrak minggu depan.quarter
: kontrak triwulanan.next_quarter
: kontrak kuartal berikutnya.Kontrak permanenkode dalam kontrak berjangka cryptocurrency, jika tidak ditentukan, umumnya memiliki:swap
: kontrak abadi.lambang benar string
function main() {
// Set to this week contract
exchange.SetContractType("this_week")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
Tetapkan kontrak saat ini sebagai kontrak minggu saat ini:
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());
}
Ketika membuat kontrak denganUSDT
sebagai margin, Anda perlu beralih pasangan perdagangan dalam kode (Anda juga dapat mengatur pasangan perdagangan langsung saat menambahkan objek pertukaran):
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);
}
Mencetak nilai kembali dariexchange.SetContractType()
Fungsi:
Dalam strategi kontrak berjangka cryptocurrency, ambil contoh beralih keBTC_USDT
Pasangan perdagangan: Ketika beralih pasangan perdagangan menggunakanexchange.SetCurrency("BTC_USDT")
atauexchange.IO("currency", "BTC_USDT")
fungsi, setelah beralih, Anda perlu menggunakanexchange.SetContractType()
Sistem ini berfungsi untuk mengatur ulang kontrak untuk menentukan kontrak saat ini yang akan dioperasikan di bawah pasangan perdagangan baru.kontrak standar mata uangatauKontrak standar USDTMisalnya, jika pasangan perdagangan diatur untukBTC_USDT
, gunakanexchange.SetContractType("swap")
fungsi untuk mengatur kode kontrak untukswap
Pada titik ini, itu diatur untukBTC
untukStandar USDTkontrak abadi. Jika pasangan perdaganganBTC_USD
, gunakanexchange.SetContractType("swap")
fungsi untuk mengatur kode kontrak untukswap
Pada titik ini, itu diatur untukBTC
Itu adalahstandar mata uangkontrak abadi.
Rincian dari pertukaran kontrak berjangka cryptocurrency yang didukung, dengan nama kontrak untuk setiap pertukaran sebagai berikut:
Futures_OKCoin (OKX)
Setel untuk kontrak abadi:exchange.SetContractType("swap")
Set untuk kontrak minggu ini:exchange.SetContractType("this_week")
Setel untuk kontrak minggu depan:exchange.SetContractType("next_week")
Setel kontrak bulanan:exchange.SetContractType("month")
Setel untuk kontrak bulan depan:exchange.SetContractType("next_month")
Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")
Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")
OKX memiliki kontrak perdagangan pra-pasar: tanggal pengiriman kontrak adalah waktu tetap.HMSTR-USDT-250207
. Atur pasangan perdagangan keHMSTR_USDT
di platform FMZ, dan kemudian menggunakanexchange.SetContractType("HMSTR-USDT-250207")
untuk mengatur kontrak.
Untuk fungsi yang mendukungsymbol
parameter, seperti:exchange.GetTicker()
, exchange.CreateOrder()
, dll. Anda dapat menentukansymbol
parameter sebagai:HMSTR_USDT.HMSTR-USDT-250207
untuk memperoleh data pasar dari kontrak ini atau melakukan pesanan.
Futures_HuobiDM (Futures Huobi)
Set untuk kontrak minggu ini:exchange.SetContractType("this_week")
Aku tidak tahu.
Setel untuk kontrak minggu depan:exchange.SetContractType("next_week")
Aku tidak tahu.
Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")
Aku tidak tahu.
Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")
Aku tidak tahu.
Setel untuk kontrak abadi:exchange.SetContractType("swap")
Aku tidak tahu.
Ini mendukung kontrak denganUSDT
sebagai margin, ambilBTC
kontrak sebagai contoh: penggunaanexchange.IO("currency", "BTC_USDT")
untuk beralih ke kontrak yang menggunakanUSDT
sebagai margin.
Atau atur pasangan perdagangan saat ini keBTC_USDT
langsung saat mengkonfigurasi parameter perdagangan langsung dan menambahkan objek pertukaran.exchange.SetContractType()
fungsi lagi untuk mengatur kontrak.
Futures_BitMEX (BitMEX)
Setel untuk kontrak abadi:exchange.SetContractType("swap")
Aku tidak tahu.
Kontrak pengiriman bursa Futures_BitMEX adalah kontrak bulanan dengan kode kontrak berikut (dari Januari hingga Desember):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Menetapkan kontrak pengiriman:exchange.SetContractType("December")
Misalnya, ketika pasangan perdagangan diatur untukXBT_USDT
, yangexchange.SetContractType("December")
fungsi dipanggil untuk menetapkan kontrak untuk pengiriman Desember dalam USDT berdasarkan BTC (mengandung kode kontrak yang sebenarnya dariXBTUSDTZ23
).
Futures_BitMEX Ringkasan Informasi Kontrak
Kode kontrak yang didefinisikan oleh Futures_BitMEX | Pasangan perdagangan yang sesuai di FMZ | Kode kontrak yang sesuai di FMZ | Pernyataan |
---|---|---|---|
DOGEUSD | DOGE_USD | swap | Denied USD, XBT diselesaikan. |
DOGEUSDT | DOGE_USDT | swap | USDT, USDT diselesaikan. |
XBTETH | XBT_ETH | swap | ETH di atas, XBT di atas. |
XBTEUR | XBT_EUR | swap | Dimensional EUR, XBT diselesaikan. |
USDTUSDC | USDT_USDC | swap | USDC, XBT diselesaikan. |
ETHUSD_ETH | ETH_USD_ETH | swap | Nominasikan dalam USD, ETH diselesaikan. |
XBTH24 | XBT_USD | Maret | Tanggal kedaluwarsa: 24 Maret, kode bulan adalah: H; denominasi USD, XBT diselesaikan. |
ETHUSDZ23 | ETH_USD | Desember | Tanggal kedaluwarsa: 23 Desember, kode bulan adalah: Z; denominasi USD, diselesaikan dalam XBT. |
XBTUSDTZ23 | XBT_USDT | Desember | Tanggal kedaluwarsa: 23 Desember, kode bulan adalah: Z ; denominasi USDT, diselesaikan dalam USDT. |
ADAZ23 | ADA_XBT | Desember | Tanggal kedaluwarsa: 23 Desember, kode bulan adalah: Z ; penagihan XBT, XBT diselesaikan. |
P_XBTETFX23 | USDT_XXX | P_XBTETFX23 | Kesudahan: 11/23/23; dinyatakan sebagai persentase dan diselesaikan dalam USDT. |
Futures_GateIO
Set untuk kontrak minggu ini:exchange.SetContractType("this_week")
Aku tidak tahu.
Setel untuk kontrak minggu depan:exchange.SetContractType("next_week")
Aku tidak tahu.
Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")
Aku tidak tahu.
Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")
Aku tidak tahu.
Setel untuk kontrak abadi:exchange.SetContractType("swap")
Aku tidak tahu.
Ini mendukung kontrak denganUSDT
sebagai margin, ambilBTC
kontrak sebagai contoh: penggunaanexchange.IO("currency", "BTC_USDT")
untuk beralih ke kontrak yang menggunakanUSDT
sebagai margin.
Atau atur pasangan perdagangan saat ini keBTC_USDT
langsung saat mengkonfigurasi parameter perdagangan langsung dan menambahkan objek pertukaran.exchange.SetContractType()
fungsi lagi untuk mengatur kontrak.
Futures_Deribit
Setel untuk kontrak abadi:exchange.SetContractType("swap")
Aku tidak tahu.
Ini mendukung DeribitUSDC
kontrak.
Kontrak pengiriman adalah:"this_week"
, "next_week"
, "month"
, "quarter"
, "next_quarter"
, "third_quarter"
, "fourth_quarter"
Aku tidak tahu.
CFD (future_combo):"this_week,swap"
, "next_week,swap"
, "next_quarter,this_week"
, "third_quarter,this_week"
, "month,next_week"
, ada banyak kombinasi.
Untuk kontrak opsi, Anda harus memasukkan kode kontrak opsi tertentu yang ditentukan oleh bursa, lihat situs web Deribit untuk rincian.
Futures_KuCoin
Misalnya, jika pasangan perdagangan diatur untukBTC_USD
dan kode kontrak ditetapkan, itu adalah kontrak berbasis mata uang:
Setel kontrak abadi:exchange.SetContractType("swap")
Aku tidak tahu.
Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")
Aku tidak tahu.
Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")
.
USDT sebagai kontrak margin:
Misalnya, jika pasangan perdagangan diatur untukBTC_USDT
, dan kemudian mengatur kode kontrak, itu adalah kontrak dengan USDT sebagai margin.
Setel kontrak abadi:exchange.SetContractType("swap")
.
Futures_Binance
Binance Futures Exchange default untuk kontrak abadi dari pasangan perdagangan saat ini, kode kontrak:swap
Aku tidak tahu.
Setel untuk kontrak abadi:exchange.SetContractType("swap")
, kontrak abadi Binance memiliki kontrak yang menggunakanUSDT
sebagai margin.USDT
standar kontrak abadi dariBTC
dapat digunakan sebagai kontrak margin, dan pasangan perdagangan diatur untukBTC_USDT
Binance juga mendukung kontrak abadi yang menggunakan koin sebagai margin, misalnya,BTC
Binance standar kontrak abadi, dengan pasangan perdagangan diatur untukBTC_USD
Aku tidak tahu.
Diatur ke kontrak triwulanan:exchange.SetContractType("quarter")
, kontrak pengiriman memiliki kontrak standar mata uang (yaitu, menggunakan mata uang sebagai margin), misalnya,BTC
Pada kontrak kuartalan, pasangan perdagangan diatur untuk:BTC_USD
dan kemudian mengatur kontrakexchange.SetContractType("quarter")
, itu diatur untukBTC
kontrak kuartal dengan kontrak standar mata uang.
Setel untuk kontrak kuartal berikutnya:exchange.SetContractType("next_quarter")
, misalnya,BTC
dari kontrak tahunan standar mata uang, pasangan perdagangan ditetapkan untuk:BTC_USD
, dan kemudian mengatur kontrakexchange.SetContractType("next_quarter")
Aku tidak tahu.
Binance mendukung sebagianUSDT
sebagai kontrak pengiriman margin, mengambilBTC
sebagai contoh, mengatur pasangan perdagangan untukBTC_USDT
, lalu atur kode kontrak.
Dukungan untuk kontrak Binance Options:
Format kode kontrak opsi didasarkan pada kode kontrak opsi yang didefinisikan oleh bursa:BTC-241227-15000-C
, XRP-240112-0.5-C
, BTC-241227-15000-P
Ambil kode kontrak opsi Binance.BTC-241227-15000-P
sebagai contoh: BTC adalah kode mata uang opsi, 241227 adalah tanggal pelaksanaan, 15000 adalah harga pelaksanaan, P mewakili opsi jual, dan C mewakili opsi pembelian.
Untuk rincian jenis opsi, apakah itu opsi Eropa atau opsi Amerika, silakan lihat informasi yang relevan dari kontrak opsi bursa.
Bursa dapat membatasi penjual opsi dan mengharuskan mereka untuk mengajukan kualifikasi secara terpisah.
Futures_Bibox
Kode kontrak untuk kontrak abadi Bibox:swap
Aku tidak tahu.
Setel untuk kontrak abadi:exchange.SetContractType("swap")
.
Futures_Bybit
Standar adalah kontrak abadi untuk pasangan perdagangan saat ini, kode kontrak:swap
Aku tidak tahu.
Kode kontrak minggu ini:this_week
Aku tidak tahu.
Kode kontrak minggu depan:next_week
Aku tidak tahu.
Kode kontrak minggu ketiga:third_week
Aku tidak tahu.
Kode kontrak bulanan:month
Aku tidak tahu.
Kode kontrak bulan depan:next_month
Aku tidak tahu.
Kode kontrak kuartal:quarter
Aku tidak tahu.
Kode kontrak kuartal berikutnya:next_quarter
Aku tidak tahu.
Kode kontrak kuartal ketiga:third_quarter
.
Futures_Kraken
Standar adalah kontrak abadi dari pasangan perdagangan saat ini, kode kontrak:swap
.
swap
: kontrak abadi.month
: kontrak bulan saat ini.quarter
: kontrak triwulanan.next_quarter
: kontrak kuartal berikutnya.swap_pf
: Kontrak abadi dengan margin campuran.quarter_ff
: Kontrak kuartal dengan margin campuran.month_ff
: Kontrak bulan saat ini dengan margin campuran.next_quarter_ff
: Margin campuran kontrak kuartal berikutnya.
Futures_Bitfinex
Default adalah kontrak abadi untuk pasangan perdagangan saat ini, kode kontrak:swap
.
Futures_Bitget
Default adalah kontrak abadi untuk pasangan perdagangan saat ini, kode kontrak:swap
Aku tidak tahu.
Pasangan perdagangan diatur untukBTC_USD
untuk kontrak standar mata uang, dan pasangan perdagangan diatur untukBTC_USDT
untuk kontrak yang diselesaikan olehUSDT
Kontrak demo dapat diatur dengan pasangan perdagangan sebagaiSBTC_USD
, BTC_SUSDT
.
Futures_dYdX
Kode kontrak untuk kontrak abadi dYdX:swap
Aku tidak tahu.
Setel untuk kontrak abadi:exchange.SetContractType("swap")
, dYdX hanya memiliki kontrak standar USDT.
Futures_MEXC
Kode kontrak untuk kontrak abadi MEXC:swap
Aku tidak tahu.
Setel untuk kontrak abadi:exchange.SetContractType("swap")
. Atur pasangan perdagangan keBTC_USD
, yang merupakan kontrak standar mata uang, dan mengatur pasangan perdagangan untukBTC_USDT
, yang merupakanUSDT
- Kontrak diselesaikan.
Futures_Crypto
Token di rekening dicrypto.comnilai tukar dapat dikonversi menjadi kredit dalam USD untuk digunakan sebagai margin untuk perdagangan kontrak.
Set untuk kontrak abadi:exchange.SetContractType("swap")
. Contoh memanggilexchange.SetContractType("swap")
fungsi untuk mengatur kontrak abadi untuk BTC ketika pasangan perdagangan diatur untukBTC_USD
Aku tidak tahu.
Peraturancrypto.comkontrak pengiriman pertukaran adalah kontrak bulanan dengan kode kontrak berikut (dari Januari hingga Desember):
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
Tetapkan kontrak pengiriman:exchange.SetContractType("October")
Misalnya, ketika pasangan perdagangan diatur untukBTC_USD
, memanggil fungsiexchange.SetContractType("October")
untuk menetapkan kontrak pengiriman Oktober untuk BTC.
Kode kontrak yang sesuai saat ini adalah:BTCUSD-231027
.
Futures_WOO
Futures_WOO dukungan pertukaranUSDT
berdasarkan kontrak dengan kode kontrak abadiswap
Misalnya, ketika pasangan perdagangan diatur untukBTC_USDT
, fungsiexchange.SetContractType("swap")
disebut untuk mengatur kontrak saat ini untuk menjadi kontrak abadi berbasis USDT untuk BTC.
{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}
Peraturanexchange.GetContractType()
Fungsi ini digunakan untuk mendapatkan kode kontrak untuk pengaturan saat ini dari objek pertukaran {@var/EXCHANGE exchange}.
Peraturanexchange.GetContractType()
fungsi mengembalikan kode kontrak yang didefinisikan oleh platform FMZ, misalnya:this_week
, swap
, dll.
string
exchange.GetContractType (()
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}
Peraturanexchange.GetFundings()
Fungsi ini digunakan untuk mendapatkan data tingkat pendanaan untuk periode saat ini.
Peraturanexchange.GetFundings()
fungsi mengembalikan array struktur {@struct/Funding Funding} ketika permintaan data berhasil, dan mengembalikan nilai nol ketika permintaan data gagal.
{@struct/Funding Funding} array, nilai nol
pertukaran.GetFundings ((() exchange.GetFundings (simbol)
Parametersymbol
digunakan untuk mengaturSimbol transaksiataurentang simbol transaksiuntuk ditanyakan.symbol
Jika parameter tidak dilewati, data tingkat pendanaan saat ini dari semua instrumen akan diminta secara default dalam kisaran dimensi pasangan perdagangan saat ini dan kode kontrak.
lambang palsu string
/*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() + "`");
}
Gunakan obyek pertukaran berjangka untuk memanggilexchange.GetFundings()
fungsi dalam sistem backtesting. Sebelum memanggil fungsi pasar, GetFundings hanya mengembalikan data Pendanaan dari pasangan perdagangan default saat ini. Setelah memanggil fungsi pasar, ia mengembalikan data Pendanaan dari semua varietas yang diminta. Anda dapat merujuk pada contoh uji berikut:
Untuk bursa berjangka yang tidak mendukung batch query dari data tingkat pendanaan, jikasymbol
parameter ditentukan sebagai rentang kueri, misalnya:USDT.swap
atausymbol
parameter tidak diteruskan, antarmuka akan melaporkan kesalahan.GetFundings()
fungsi menggunakan jenis ini obyek pertukaran berjangka, Anda harus menentukansymbol
parameter sebagai jenis kontrak abadi tertentu untuk menanyakan data tingkat pendanaan saat ini dari jenis tersebut.
Peraturanexchange.GetFundings()
fungsi mendukung sistem perdagangan dan backtesting yang nyata.
Bursa yang tidak mendukung akuisisi batch data tingkat pendanaan: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symbol
parameter dengan kode simbol khusus, misalnya:ETH_USDT.swap
.
Bursa yang tidak mendukungexchange.GetFundings()
Fungsi:
Nama Fungsi | Pertukaran Spot yang tidak didukung | Pertukaran Futures Tanpa Dukungan |
---|---|---|
GetFundings | – | Futures_DigiFinex |
{@struct/Pembiayaan Pendanaan}
Rekening Pengaturan Jaringan