Gần đây, các nhà phát minh của nền tảng giao dịch định lượng đã nâng cấp hệ thống kiểm tra lại để hỗ trợ kiểm tra lại các tùy chọn tiền kỹ thuật số, lần này hỗ trợDeribit
Một số dữ liệu quyền chọn trên sàn giao dịch. Vì vậy, chúng tôi có những công cụ tốt hơn để học giao dịch quyền chọn và xác minh chiến lược.
Định nghĩa trong hệ thống kiểm traDeribit
Các hợp đồng quyền chọn là theo kiểu châu Âu, một hợp đồng có giá trị 1 BTC.BTC-7AUG20-12750-C
。
Địa chỉ | Ngày nhậm chức | Giá quyền đi | (Tăng/giảm) |
---|---|---|---|
BTC | 7AUG20 | 12750 | C |
Bitcoin | Quyền hành động ngày 7 tháng 8 năm 20 | Giá quyền đi 12750 | Nhìn vào quyền chọn |
BTC | 7AUG20 | 12750 | P |
Bitcoin | Quyền hành động ngày 7 tháng 8 năm 20 | Giá quyền đi 12750 | Tùy chọn phá sản |
Các hoạt động như thiết lập hợp đồng, mua cổ phiếu cũng giống như các hợp đồng tương lai tiền kỹ thuật số.
Đặt hợp đồng:exchange.SetContractType("BTC-7AUG20-12750-C")
Nhận cổ phần:var pos = exchange.GetPosition()
Giá của hợp đồng tùy chọn là số tiền tùy chọn của một hợp đồng tùy chọn, người mua tùy chọn cần phải thanh toán số tiền tùy chọn cho người bán tùy chọn. Người mua có quyền đi, người bán có nghĩa vụ đi. Có thể giao dịch trước khi hợp đồng tùy chọn có quyền đi (ví dụ như hòa vốn, đóng nghĩa vụ).
Trong khi đó, các nhà đầu tư khác cũng có thể bán các quyền chọn và mua tiền mặt.
/*backtest
start: 2020-07-27 00:00:00
end: 2020-08-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"OKEX","currency":"BTC_USDT","balance":100000}]
*/
function main() {
exchanges[0].SetContractType('BTC-7AUG20-12750-C');
var initSpotAcc = _C(exchanges[1].GetAccount)
var isFirst = true
while(true) {
var optionTicker = exchanges[0].GetTicker()
var spotTicker = exchanges[1].GetTicker()
if(isFirst) {
exchanges[0].SetDirection("sell")
exchanges[0].Sell(optionTicker.Buy, 1)
exchanges[1].Buy(spotTicker.Sell, 1)
isFirst = false
}
var optionPos = _C(exchanges[0].GetPosition)
var nowSpotAcc = _C(exchanges[1].GetAccount)
var diffStocks = (nowSpotAcc.Stocks - initSpotAcc.Stocks)
var diffBalance = (nowSpotAcc.Balance - initSpotAcc.Balance)
var spotProfit = diffBalance + diffStocks * spotTicker.Last
var optionProfit = optionPos[0].Profit * spotTicker.Last
LogProfit(spotProfit + optionProfit)
$.PlotLine("现货", spotProfit)
$.PlotLine("期权", optionProfit)
Sleep(500)
}
}
Tùy chọn có thể làm cho một mức độ bảo hiểm đối với các tài sản mua hiện tại. Thông thường được sử dụng cho hiện tại tốt, sẵn sàng để nắm giữ hiện tại. Rủi ro là giá hiện tại giảm, mặc dù một số mức độ tùy chọn có thể bù đắp cho một số lỗ hiện tại, nhưng sau khi lỗ vượt quá số tiền quyền chọn, sẽ có lỗ ròng.
Ngoài ra, thị trường tùy chọn tiền kỹ thuật số thường không tìm thấy đối thủ. Đây cũng là một vấn đề cần được xem xét.
Cũng như vậy, chúng ta có thể thay thế hiện tại thành tương lai, với mã như sau:
/*backtest
start: 2020-07-27 00:00:00
end: 2020-08-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Deribit","currency":"BTC_USD"},{"eid":"Futures_OKCoin","currency":"BTC_USD"}]
*/
function main() {
exchanges[0].SetContractType('BTC-7AUG20-12750-C');
exchanges[1].SetContractType("quarter")
var isFirst = true
while(true) {
var optionTicker = exchanges[0].GetTicker()
var futuresTicker = exchanges[1].GetTicker()
if(isFirst) {
exchanges[0].SetDirection("sell")
exchanges[0].Sell(optionTicker.Buy, 1)
exchanges[1].SetDirection("buy")
exchanges[1].Buy(futuresTicker.Sell, _N(1 * futuresTicker.Sell / 100, 0))
isFirst = false
}
var optionPos = _C(exchanges[0].GetPosition)
var futuresPos = _C(exchanges[1].GetPosition)
var futuresProfit = futuresPos[0].Profit
var optionProfit = optionPos[0].Profit
LogProfit(futuresProfit + optionProfit)
$.PlotLine("期货", futuresProfit)
$.PlotLine("期权", optionProfit)
Sleep(500)
}
}
Những người tham gia cuộc thi đã được xác định:
Các hợp đồng tương lai có thể làm giảm số tiền chiếm dụng so với tiền mặt, nhưng rủi ro cao hơn một chút so với tiền mặt.
Ngoài ra, có rất nhiều loại giao dịch khác:
Những người quan tâm có thể nghiên cứu trong hệ thống kiểm tra lại.