Tài nguyên đang được tải lên... tải...

Tiền tương lai

exchange.GetPositions

Cácexchange.GetPositions()chức năng được sử dụng để có được thông tin vị trí;GetPositions()hàm là một hàm thành viên của đối tượng trao đổi {@var/EXCHANGE exchange}.GetPositions()chức năng nhận được thông tin vị trí của tài khoản trao đổi gắn liền với đối tượng trao đổiexchangeMục đích của các chức năng thành viên (các phương pháp)exchangeđối tượng chỉ liên quan đếnexchangevà sẽ không được lặp lại ở đây.

Cácexchange.GetPositions()hàm trả về một mảng cấu trúc {@struct/Position Position} nếu yêu cầu dữ liệu thành công, và nó trả về giá trị null nếu yêu cầu dữ liệu thất bại. {@struct/Position Position} mảng, giá trị không

trao đổi.GetPositions ((() trao đổi.GetPositions (bản biểu tượng)

Các thông sốsymbolđược sử dụng để thiết lậpBiểu tượng giao dịchhoặcphạm vi ký hiệu giao dịchđể được thẩm vấn. NếusymbolNếu tham số không được truyền, mặc định là yêu cầu dữ liệu vị trí của tất cả các biểu tượng trong phạm vi kích thước của cặp giao dịch hiện tại và mã hợp đồng.

biểu tượng sai chuỗi

/*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; 
}

Sử dụng các đối tượng trao đổi tương lai để đặt lệnh thị trường cho nhiều cặp giao dịch và mã hợp đồng khác nhau.

Hợp đồng tương lai tiền điện tử khác với hợp đồng tương lai tiền điện tử, chỉ có khái niệm hợp lý về vị trí.các cặp giao dịch, mã hợp đồngVui lòng tham khảo các hàm {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType} TrongGetPositionschức năng, các kịch bản sử dụng của tham số biểu tượng được tóm tắt như sau:

Phân loại đối tượng Exchange biểu tượng Parameter Phạm vi truy vấn Nhận xét
Tiền tương lai Không vượt qua tham số biểu tượng Tìm kiếm tất cả các sản phẩm giao dịch trong phạm vi kích thước cặp giao dịch và mã hợp đồng hiện tại Nếu cặp giao dịch hiện tại là BTC_USDT và mã hợp đồng là swap, tất cả các hợp đồng vĩnh viễn dựa trên USDT sẽ được truy vấn.GetPositions("USDT.swap")
Tiền tương lai Xác định sản phẩm giao dịch, tham số biểu tượng là: BTC_USDT.swap Tìm kiếm hợp đồng vĩnh viễn dựa trên USDT của một BTC cụ thể Đối với các đối tượng giao dịch tương lai, định dạng biểu tượng tham số là: sự kết hợp củacặp giao dịchmã hợp đồngđược xác định bởi nền tảng FMZ, được tách bởi các ký tự"..
Tiền tương lai Xác định phạm vi các sản phẩm giao dịch, tham số biểu tượng là: USDT.swap Tìm kiếm tất cả các hợp đồng vĩnh viễn dựa trên USDT -
Các sàn giao dịch tương lai hỗ trợ các tùy chọn Không vượt qua tham số biểu tượng Tìm kiếm tất cả các hợp đồng quyền chọn trong phạm vi kích thước cặp giao dịch hiện tại Nếu cặp giao dịch hiện tại là BTC_USDT, hợp đồng được thiết lập thành hợp đồng quyền chọn, ví dụ, hợp đồng quyền chọn Binance: BTC-240108-40000-C
Các sàn giao dịch tương lai hỗ trợ các tùy chọn Xác định sản phẩm giao dịch cụ thể truy vấn hợp đồng tùy chọn được chỉ định Ví dụ, đối với Binance Futures Exchange, tham số biểu tượng là: BTC_USDT.BTC-240108-40000-C
Các sàn giao dịch tương lai hỗ trợ các tùy chọn Xác định phạm vi các sản phẩm giao dịch, tham số biểu tượng là: USDT.option Tìm kiếm tất cả các hợp đồng quyền chọn dựa trên USDT -

TrongGetPositionschức năng, đối tượng giao dịch tương lai phạm vi kích thước truy vấn được tóm tắt như sau:

biểu tượng Parameter Định nghĩa phạm vi yêu cầu Nhận xét
USDT.swap Phạm vi hợp đồng vĩnh viễn dựa trên USDT. Đối với

kích thước không được hỗ trợ bởi giao diện API trao đổi, một lỗi sẽ được báo cáo và một giá trị null sẽ được trả về khi gọi.

USDT.futures. USDT dựa trên hợp đồng giao hàng.

USD.swap. hợp đồng.

USD.futures. phạm vi giao hàng dựa trên tiền tệ hợp đồng.

USDT.option. USDT-based options contract range.

USD.option. Tùy chọn dựa trên đồng tiền.

  • |

USDT.futures_combo Một loạt các sự kết hợp CFD. Futures_Deribit Exchange.

USD.futures_ff. phạm vi của hợp đồng giao dịch ký quỹ hỗn hợp. Futures_Kraken Exchange.

USD.swap_pf. Futures_Kraken Exchange.

Tương thích vớiexchange.GetPosition()gọi,GetPositionlà chính xác giống nhưGetPositions.

Khi tài khoản được đại diện bởi đối tượng trao đổiexchangekhông có vị trí trongphạm vi truy vấnhoặcCác công cụ giao dịch cụ thể, cácexchange.GetPositions()hàm trả về một mảng trống, ví dụ:[].

{@struct/Position Position}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@fun/Futures/exchange.SetContractType exchange.SetContractType}

exchange.SetMarginLevel

Cácexchange.SetMarginLevel()chức năng được sử dụng để thiết lập giá trị đòn bẩy của cặp giao dịch hoặc hợp đồng được chỉ định bởisymbolGoh so với chỉ đi qua trong tham sốmarginLevelđể thiết lập giá trị đòn bẩy của cặp giao dịch hoặc hợp đồng hiện tại của đối tượng giao dịch {@var/EXCHANGE exchange}.

exchange.SetMarginLevel (( biểu tượng, marginLevel) Exchange.SetMarginLevel ((MarginLevel))

CácsymbolCác thông số này được sử dụng để xác định cặp giao dịch hoặc hợp đồng mà giá trị đòn bẩy cần được điều chỉnh.symboltham số củaSetMarginLevel()chức năng phù hợp với định dạng củasymboltham số củaGetTicker()chức năng. biểu tượng sai chuỗi CácmarginLeveltham số được sử dụng để thiết lập giá trị đòn bẩy, thường là một số nguyên cho sàn giao dịch và nó cũng hỗ trợ cài đặt giá trị đòn bẩy điểm nổi cho một số sàn giao dịch. marginLevel đúng số

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); 
}

Cácexchange.SetMarginLevel()chức năng hỗ trợ cryptocurrency hợp đồng tương lai trao đổi đối tượng chỉ. hệ thống backtesting hỗ trợ gọiexchange.SetMarginLevel()chức năng để thiết lập giá trị đòn bẩy. Đối với các hợp đồng tương lai tiền điện tử, cơ chế đòn bẩy không đồng đều do các sàn giao dịch hợp đồng tương lai tiền điện tử.exchange.SetMarginLevel()chức năng không tạo ra một yêu cầu mạng, nhưng chỉ thiết lập biến đòn bẩy trong hệ thống FMZ cơ bản (được sử dụng để truyền các tham số trong giao diện đặt lệnh). Giá trị đòn bẩy của một số hợp đồng tương lai trao đổi là một thiết lập của sàn giao dịch, cần phải được thiết lập trên trang trang web trao đổi hoặc sử dụng giao diện API.exchange.SetMarginLevel()có thể có nhiều lý do cho điều này, ví dụ: có một vị trí hiện tại hoặc lệnh đang chờ, khiến không thể đặt một giá trị đòn bẩy mới cho cặp giao dịch hoặc hợp đồng này. Các sàn giao dịch không hỗ trợexchange.SetMarginLevel()chức năng:

Tên chức năng Không hỗ trợ trao đổi tại chỗ Giao dịch tương lai không được hỗ trợ
SetMarginLevel Tiền tương lai_dYdX / Tiền tương lai_Deribit

{@var/EXCHANGE exchange}

exchange.SetDirection

Cácexchange.SetDirection()hàm được sử dụng để đặt hướng lệnh của hàm {@fun/Trade/exchange.Buy exchange.Buy}, hàm {@fun/Trade/exchange.Sell exchange.Sell} khi đặt lệnh cho các hợp đồng tương lai.

chuyển đổi.SetDirection ((hướng)

Cácdirectiontham số được sử dụng để thiết lập hướng của hợp đồng tương lai khi đặt lệnh."buy", "closesell", "sell", "closebuy". hướng đúng chuỗi

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);
}

Cácexchange.SetDirection()chức năng thiết lập sự tương ứng giữa hướng giao dịch hợp đồng tương lai và chức năng đặt lệnh:

Chức năng đặt hàng Hướng định bởi các tham số của hàm SetDirection Nhận xét
exchange.Buy mua Mua và mở các vị trí dài
exchange.Buy closesell Mua và đóng các vị trí ngắn
exchange.Sell bán Bán và mở các vị trí ngắn
exchange.Sell closebuy Bán và đóng các vị trí dài

{@fun/Trade/exchange.Buy exchange.Buy}, {@fun/Trade/exchange.Sell exchange.Sell}

exchange.SetContractType

Cácexchange.SetContractType()hàm được sử dụng để đặt mã hợp đồng hiện tại của đối tượng trao đổi {@var/EXCHANGE exchange}.

Cácexchange.SetContractType()hàm trả về một cấu trúc có chứa mã hợp đồng trao đổi tương ứng với mã hợp đồng hiện tại. Ví dụ, đối với sàn giao dịch hợp đồng tương lai Binance, mã hợp đồng hiện tại làquarter, và cấu trúc giá trị trả về của hàm này là:{"InstrumentID": "BTCUSD_230630", "instrument": "BTCUSD_230630"}. đối tượng

exchange.SetContractType (( biểu tượng)

Cácsymboltham số được sử dụng để thiết lập mã hợp đồng, các giá trị tùy chọn là:"this_week", "next_week", "quarter", "next_quarter", "swap", vv Hợp đồng tương lai tiền điện tửHợp đồng giao hàngmã, nếu không được chỉ định, thường có:

  • this_week: hợp đồng của tuần hiện tại.
  • next_week: hợp đồng tuần sau.
  • quarter: hợp đồng hàng quý.
  • next_quarter: hợp đồng hàng quý tiếp theo.Hợp đồng thường trựcmã trong các hợp đồng tương lai tiền điện tử, nếu không được chỉ định, thường có:
  • swap: hợp đồng vĩnh viễn.

biểu tượng đúng chuỗi

function main() {
    // Set to this week contract
    exchange.SetContractType("this_week") 
}
def main():
    exchange.SetContractType("this_week")
void main() {
    exchange.SetContractType("this_week");
}

Đặt hợp đồng hiện tại là hợp đồng tuần hiện tại:

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());
}

Khi thiết lập hợp đồng vớiUSDTnhư ký quỹ, bạn cần phải chuyển đổi cặp giao dịch trong mã (bạn cũng có thể đặt cặp giao dịch trực tiếp khi thêm đối tượng trao đổi):

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);
}

In giá trị trả về củaexchange.SetContractType()chức năng:

Trong chiến lược hợp đồng tương lai tiền điện tử, hãy lấy ví dụ về việc chuyển sangBTC_USDTCặp giao dịch: Khi chuyển đổi các cặp giao dịch sử dụngexchange.SetCurrency("BTC_USDT")hoặcexchange.IO("currency", "BTC_USDT")chức năng, sau khi chuyển đổi, bạn cần phải sử dụng cácexchange.SetContractType()hệ thống xác định xem nó có phải là một hợp đồng giao dịch mới hay không.Hợp đồng tiêu chuẩn tiền tệhoặc mộtHợp đồng tiêu chuẩn USDTVí dụ, nếu một cặp giao dịch được thiết lập đểBTC_USDT, sử dụngexchange.SetContractType("swap")chức năng để thiết lập mã hợp đồng đểswapTại thời điểm này, nó được thiết lập đểBTCđối vớiTiêu chuẩn USDThợp đồng vĩnh viễn.BTC_USD, sử dụngexchange.SetContractType("swap")chức năng để thiết lập mã hợp đồng đểswapTại thời điểm này, nó được thiết lập đểBTCỪ.Tiêu chuẩn tiền tệhợp đồng vĩnh viễn. Chi tiết về các sàn giao dịch hợp đồng tương lai tiền điện tử được hỗ trợ, với tên hợp đồng cho mỗi sàn giao dịch như sau:

  • Tiền tương lai_OKCoin (OKX) Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap")Đặt vào hợp đồng của tuần này:exchange.SetContractType("this_week")Đặt hợp đồng vào tuần tới:exchange.SetContractType("next_week")Đặt vào hợp đồng hàng tháng:exchange.SetContractType("month")Đặt hợp đồng vào tháng tới:exchange.SetContractType("next_month")Đặt vào các hợp đồng hàng quý:exchange.SetContractType("quarter")Đặt vào hợp đồng quý tiếp theo:exchange.SetContractType("next_quarter")

    OKX có các hợp đồng giao dịch trước thị trường: ngày giao dịch hợp đồng là một thời gian cố định. Mã hợp đồng được xác định bởi sàn giao dịch là, ví dụ:HMSTR-USDT-250207. Đặt cặp giao dịchHMSTR_USDTtrên nền tảng FMZ, và sau đó sử dụngexchange.SetContractType("HMSTR-USDT-250207")để thiết lập hợp đồng. Đối với các chức năng hỗ trợsymbolcác thông số như:exchange.GetTicker(), exchange.CreateOrder(), v.v. Bạn có thể xác địnhsymboltham số như:HMSTR_USDT.HMSTR-USDT-250207để thu thập dữ liệu thị trường của hợp đồng này hoặc đặt hàng.

  • Tiền tương lai_HuobiDM (Tiền tương lai của Huobi) Đặt vào hợp đồng của tuần này:exchange.SetContractType("this_week"). Đặt hợp đồng vào tuần tới:exchange.SetContractType("next_week"). Đặt vào các hợp đồng hàng quý:exchange.SetContractType("quarter"). Đặt vào hợp đồng quý tiếp theo:exchange.SetContractType("next_quarter"). Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Nó hỗ trợ các hợp đồng vớiUSDTnhư ký quỹ, lấyBTChợp đồng ví dụ: sử dụngexchange.IO("currency", "BTC_USDT")để chuyển sang một hợp đồng sử dụngUSDTnhư là biên. Hoặc đặt cặp giao dịch hiện tạiBTC_USDTtrực tiếp khi cấu hình các tham số giao dịch trực tiếp và thêm các đối tượng trao đổi.exchange.SetContractType()chức năng một lần nữa để thiết lập hợp đồng.

  • Tiền tương lai_BitMEX (BitMEX) Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Hợp đồng giao dịch giao dịch tương lai BitMEX là hợp đồng hàng tháng với các mã hợp đồng sau (từ tháng 1 đến tháng 12):

    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    

    Thiết lập hợp đồng giao hàng:exchange.SetContractType("December")Ví dụ, khi cặp giao dịch được thiết lập đểXBT_USDT, cácexchange.SetContractType("December")chức năng được gọi để thiết lập hợp đồng cho tháng 12 giao hàng trong USDT dựa trên BTC (tương ứng với mã hợp đồng thực tế củaXBTUSDTZ23).

    Tóm tắt thông tin hợp đồng tương lai_BitMEX

    Mã hợp đồng được xác định bởi Futures_BitMEX Cặp giao dịch tương ứng trong FMZ Mã hợp đồng tương ứng trong FMZ Nhận xét
    DOGEUSD DOGE_USD giao dịch Định nghĩa USD, XBT thanh toán. XBT là BTC.
    DOGEUST DOGE_USDT giao dịch Định nghĩa USDT, USDT thanh toán.
    XBTETH XBT_ETH giao dịch ETH được mệnh giá, XBT được thanh toán.
    XBTEUR XBT_EUR giao dịch Định giá bằng EUR, XBT được thanh toán.
    USDTUSDC USDT_USDC giao dịch Định nghĩa USDC, XBT thanh toán.
    ETHUSD_ETH ETH_USD_ETH giao dịch Định giá bằng USD, ETH được thanh toán.
    XBTH24 XBT_USD Tháng 3 Ngày hết hạn: 24 tháng 3, mã tháng là: H; denominated USD, XBT settled.
    ETHUSDZ23 ETH_USD Tháng 12 Ngày hết hạn: 23 tháng 12, mã tháng là: Z; denominated USD, XBT settled.
    XBTUSDTZ23 XBT_USDT Tháng 12 Ngày hết hạn: ngày 23 tháng 12 Mã tháng là: Z ; denominated USDT, settled USDT.
    ADAZ23 ADA_XBT Tháng 12 Ngày hết hạn: 23 tháng 12, mã tháng là: Z ; XBT hóa đơn, XBT thanh toán.
    P_XBTETFX23 USDT_XXX P_XBTETFX23 Thời hạn: 11/23/23; được biểu diễn bằng tỷ lệ phần trăm và được thanh toán bằng USDT.
  • Futures_GateIO Đặt vào hợp đồng của tuần này:exchange.SetContractType("this_week"). Đặt hợp đồng vào tuần tới:exchange.SetContractType("next_week"). Đặt vào các hợp đồng hàng quý:exchange.SetContractType("quarter"). Đặt vào hợp đồng quý tiếp theo:exchange.SetContractType("next_quarter"). Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Nó hỗ trợ các hợp đồng vớiUSDTnhư ký quỹ, lấyBTChợp đồng ví dụ: sử dụngexchange.IO("currency", "BTC_USDT")để chuyển sang một hợp đồng sử dụngUSDTnhư là biên. Hoặc đặt cặp giao dịch hiện tạiBTC_USDTtrực tiếp khi cấu hình các tham số giao dịch trực tiếp và thêm các đối tượng trao đổi.exchange.SetContractType()chức năng một lần nữa để thiết lập hợp đồng.

  • Tiền tương lai_Deribit Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Nó hỗ trợ DeribitUSDChợp đồng. Các hợp đồng giao hàng là:"this_week", "next_week", "month", "quarter", "next_quarter", "third_quarter", "fourth_quarter". CFD (future_combo):"this_week,swap", "next_week,swap", "next_quarter,this_week", "third_quarter,this_week", "month,next_week", có rất nhiều sự kết hợp. Đối với các hợp đồng quyền chọn, bạn cần đi vào mã hợp đồng quyền chọn cụ thể được xác định bởi sàn giao dịch, xem trang web Deribit để biết chi tiết.

  • Futures_KuCoin Ví dụ, nếu cặp giao dịch được thiết lập đểBTC_USDvà mã hợp đồng được thiết lập, đó là hợp đồng dựa trên tiền tệ: Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Đặt vào các hợp đồng hàng quý:exchange.SetContractType("quarter"). Đặt vào hợp đồng quý tiếp theo:exchange.SetContractType("next_quarter").

    USDT như hợp đồng ký quỹ: Ví dụ, nếu cặp giao dịch được thiết lập đểBTC_USDT, và sau đó đặt mã hợp đồng, đó là một hợp đồng với USDT như ký quỹ. Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap").

  • Futures_Binance Binance Futures Exchange mặc định đối với hợp đồng vĩnh viễn của cặp giao dịch hiện tại, mã hợp đồng:swap. Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"), các hợp đồng vĩnh viễn của Binance có các hợp đồng sử dụngUSDTví dụ,USDThợp đồng vĩnh viễn tiêu chuẩn củaBTCcó thể được sử dụng như một hợp đồng ký quỹ, và cặp giao dịch được thiết lập đểBTC_USDTBinance cũng hỗ trợ các hợp đồng vĩnh viễn sử dụng tiền xu như ký quỹ, ví dụ,BTClà hợp đồng vĩnh cửu tiêu chuẩn của Binance, với cặp giao dịch được thiết lập đểBTC_USD. Đặt vào các hợp đồng hàng quý:exchange.SetContractType("quarter"), hợp đồng giao hàng có hợp đồng tiêu chuẩn tiền tệ (tức là sử dụng tiền tệ làm ký quỹ), ví dụ:BTCTrong hợp đồng hàng quý, cặp giao dịch được thiết lập để:BTC_USDvà sau đó thiết lập hợp đồngexchange.SetContractType("quarter"), nó được thiết lập đểBTChợp đồng hàng quý với hợp đồng tiêu chuẩn tiền tệ. Đặt vào hợp đồng quý tiếp theo:exchange.SetContractType("next_quarter"), ví dụ,BTCcủa hợp đồng hàng quý tiêu chuẩn tiền tệ, cặp giao dịch được thiết lập là:BTC_USD, và sau đó thiết lập hợp đồngexchange.SetContractType("next_quarter"). Binance hỗ trợ một phầnUSDTnhư hợp đồng giao dịch ký quỹ,BTCví dụ, đặt cặp giao dịch đểBTC_USDT, sau đó đặt mã hợp đồng.

    Hỗ trợ cho các hợp đồng Binance Options: Định dạng mã hợp đồng quyền chọn dựa trên mã hợp đồng quyền chọn được xác định bởi sàn giao dịch:BTC-241227-15000-C, XRP-240112-0.5-C, BTC-241227-15000-PHãy lấy mã hợp đồng quyền chọn BinanceBTC-241227-15000-Pví dụ: BTC là mã tiền tệ tùy chọn, 241227 là ngày thực hiện, 15000 là giá thực hiện, P đại diện cho tùy chọn bán và C đại diện cho tùy chọn mua. Để biết chi tiết về loại quyền chọn, cho dù đó là quyền chọn châu Âu hay quyền chọn Mỹ, vui lòng tham khảo thông tin liên quan của hợp đồng quyền chọn của sàn giao dịch. Sàn giao dịch có thể hạn chế người bán tùy chọn và yêu cầu họ nộp đơn xin trình độ riêng biệt.

  • Futures_Bibox Mã hợp đồng cho hợp đồng vĩnh viễn Bibox:swap. Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap").

  • Tiền tương lai_Bybit Chế độ mặc định là hợp đồng vĩnh viễn cho cặp giao dịch hiện tại, mã hợp đồng:swap. Mã hợp đồng tuần này:this_week. Mã hợp đồng tuần tới:next_week. Mã hợp đồng tuần thứ ba:third_week. Mã hợp đồng hàng tháng:month. Mã hợp đồng tháng tới:next_month. Mã hợp đồng quý:quarter. Mã hợp đồng quý tiếp theo:next_quarter. Mã hợp đồng quý 3:third_quarter.

  • Futures_Kraken Chế độ mặc định là hợp đồng vĩnh viễn của cặp giao dịch hiện tại, mã hợp đồng:swap. swap: hợp đồng vĩnh viễn.month: hợp đồng tháng hiện tại.quarter: hợp đồng hàng quý.next_quarterHợp đồng quý tiếp theo.swap_pf: Hợp đồng vĩnh viễn với ký quỹ hỗn hợp.quarter_ff: Hợp đồng hàng quý với ký quỹ hỗn hợp.month_ff: Hợp đồng ký quỹ hỗn hợp trong tháng hiện tại.next_quarter_ff: Hợp đồng biên độ hỗn hợp quý tiếp theo.

  • Tiền tương lai_Bitfinex Chế độ mặc định là hợp đồng vĩnh viễn cho cặp giao dịch hiện tại, mã hợp đồng:swap.

  • Tiền tương lai_Bitget Chế độ mặc định là hợp đồng vĩnh viễn cho cặp giao dịch hiện tại, mã hợp đồng:swap. Cặp giao dịch được thiết lập làBTC_USDđối với các hợp đồng tiêu chuẩn tiền tệ, và cặp giao dịch được thiết lập làBTC_USDTđối với các hợp đồng được thanh toán bởiUSDTHợp đồng demo có thể được thiết lập với các cặp giao dịch nhưSBTC_USD, BTC_SUSDT.

  • Futures_dYdX Mã hợp đồng cho các hợp đồng vĩnh viễn dYdX:swap. Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"), dYdX chỉ có hợp đồng tiêu chuẩn USDT.

  • Tiền tương lai_MEXC Mã hợp đồng cho các hợp đồng vĩnh viễn của MEXC:swap. Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Đặt cặp giao dịch vàoBTC_USD, đó là hợp đồng tiêu chuẩn tiền tệ, và đặt cặp giao dịch đểBTC_USDT, đó làUSDT- Hợp đồng đã được thỏa thuận.

  • Tiền tương lai_Thiên mật mã Token trong một tài khoản trêncrypto.comgiao dịch ngoại hối có thể được chuyển đổi thành các khoản tín dụng bằng USD để được sử dụng làm ký quỹ cho giao dịch hợp đồng. Đặt vào hợp đồng vĩnh viễn:exchange.SetContractType("swap"). Ví dụ về việc gọiexchange.SetContractType("swap")chức năng để thiết lập một hợp đồng vĩnh viễn cho BTC khi cặp giao dịch được thiết lập đểBTC_USD. Cáccrypto.comHợp đồng giao hàng trao đổi là hợp đồng hàng tháng với mã hợp đồng sau (từ tháng 1 đến tháng 12):

    "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
    

    Đặt hợp đồng giao hàng:exchange.SetContractType("October")Ví dụ, khi cặp giao dịch được thiết lập đểBTC_USD, gọi hàmexchange.SetContractType("October")để thiết lập hợp đồng giao hàng tháng 10 cho BTC. Mã hợp đồng tương ứng hiện tại là:BTCUSD-231027.

  • Tiền tương lai Tiền tương lai_WOO hỗ trợ trao đổiUSDTdựa trên hợp đồng với mã hợp đồng vĩnh viễn củaswapVí dụ, khi cặp giao dịch được thiết lập đểBTC_USDT, chức năngexchange.SetContractType("swap")được gọi để thiết lập hợp đồng hiện tại là một hợp đồng vĩnh viễn dựa trên USDT cho BTC.

{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}

exchange.GetContractType

Cácexchange.GetContractType()hàm được sử dụng để lấy mã hợp đồng cho cài đặt hiện tại của đối tượng trao đổi {@var/EXCHANGE exchange}.

Cácexchange.GetContractType()hàm trả về mã hợp đồng được xác định bởi nền tảng FMZ, ví dụ:this_week, swap, vv chuỗi

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}

exchange.GetFundings

Cácexchange.GetFundings()chức năng được sử dụng để lấy dữ liệu tỷ lệ tài trợ cho giai đoạn hiện tại.

Cácexchange.GetFundings()hàm trả về một mảng {@struct/Funding Funding} cấu trúc khi yêu cầu dữ liệu thành công, và trả về một giá trị null khi yêu cầu dữ liệu thất bại. {@struct/Funding Funding} mảng, giá trị không

trao đổi.GetFundings() trao đổi.GetFundings (thông hiệu)

Các thông sốsymbolđược sử dụng để thiết lậpbiểu tượng giao dịchhoặcphạm vi ký hiệu giao dịchđược hỏi.symbolNếu tham số này không được vượt qua, dữ liệu tỷ lệ tài trợ hiện tại của tất cả các công cụ sẽ được yêu cầu theo mặc định trong phạm vi kích thước của cặp giao dịch và mã hợp đồng hiện tại.

biểu tượng sai chuỗi

/*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() + "`");
}

Sử dụng đối tượng trao đổi tương lai để gọiexchange.GetFundings()trước khi gọi bất kỳ chức năng thị trường nào, GetFundings chỉ trả về dữ liệu Funding của cặp giao dịch mặc định hiện tại. Sau khi gọi chức năng thị trường, nó trả về dữ liệu Funding của tất cả các giống được yêu cầu. Bạn có thể tham khảo ví dụ kiểm tra sau:

Đối với các sàn giao dịch tương lai không hỗ trợ truy vấn hàng loạt dữ liệu tỷ lệ tài trợ, nếusymboltham số được chỉ định là phạm vi truy vấn, ví dụ:USDT.swaphoặcsymboltham số không được thông qua, giao diện sẽ báo cáo một lỗi.GetFundings()chức năng sử dụng loại này của tương lai trao đổi đối tượng, bạn phải chỉ định cácsymboltham số như một loại hợp đồng vĩnh viễn cụ thể để truy vấn dữ liệu tỷ lệ tài trợ hiện tại của loại hợp đồng đó. Cácexchange.GetFundings()chức năng hỗ trợ các hệ thống giao dịch và backtesting thực tế. Các sàn giao dịch không hỗ trợ mua hàng loạt dữ liệu tỷ lệ tài trợ: Futures_Bitget, Futures_OKX, Futures_MEXC, Futures_Deribit, Futures_Crypto.symboltham số với mã biểu tượng cụ thể, ví dụ:ETH_USDT.swap.

Các sàn giao dịch không hỗ trợexchange.GetFundings()chức năng:

Tên chức năng Không hỗ trợ trao đổi tại chỗ Giao dịch tương lai không được hỗ trợ
GetFundings Tiền tương lai_DigiFinex

{@struct/Funding Funding}

Tài khoản NetSettings