Chương 3.1 cho thấy một mô hình giao dịch hiện tại, làm giảm đáng kể sự khó khăn trong việc viết chiến lược giao dịch hiện tại. Tuy nhiên, giao dịch tương lai được xử lý rất khác với giao dịch hiện tại, vì vậy các chức năng giao dịch tương lai được tích hợp trên cơ sở của mô hình hiện tại và hiện đã được công bố.
Những người tham gia vào cuộc biểu tình đã được công bố tại Quảng trường Chiến lược:
Các giao dịch hiện tại cũng giống như các giao dịch hiện tại của tiền điện tử tiền điện tử trước đây.
Các thông số:
Các chiến lược này có mã thử nghiệm:
function main() {
if (exchange.GetName() === 'Futures_OKCoin') {
var info = exchange.SetContractType("this_week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
var p = $.NewPositionManager();
p.OpenShort("this_week", 10, depth.Bids[0].Price - 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("this_week", depth.Bids[0].Price + 2, 5);
Log("cover ret:", ret);
//LogProfit(p.Profit());
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var depth = exchange.GetDepth();
p.OpenLong("this_week", 20, depth.Bids[0].Price + 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("this_week", depth.Bids[0].Price - 2, 10, PD_LONG);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var ret = p.Cover("this_week", depth.Bids[0].Price - 3, 10, PD_LONG);
Log("cover ret:", ret);
var ret = p.Cover("this_week", depth.Bids[0].Price + 3, 5, PD_SHORT);
Log("cover ret:", ret);
Log(exchange.GetPosition());
} else if (exchange.GetName() === 'Futures_BitVC') {
var info = exchange.SetContractType("week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
var p = $.NewPositionManager();
p.OpenLong("week", 500, depth.Bids[0].Price + 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("week", depth.Bids[0].Price - 2, 500);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var info = exchange.SetContractType("week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
p.OpenShort("week", 600, depth.Bids[0].Price - 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("week", depth.Bids[0].Price - 2, 500, PD_SHORT);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var ret = p.Cover("week", depth.Bids[0].Price + 3, 100, PD_SHORT);
Log("cover ret:", ret);
//p.Cover("week", depth.Asks[0].Price - 3, 300, PD_LONG);
Log(exchange.GetPosition());
} else if(exchange.GetName() === 'huobi' || exchange.GetName() === 'OKCoin'){
Log($.GetAccount());
Log($.Buy(0.5));
Log($.Sell(0.5));
exchange.Buy(1000, 3);
$.CancelPendingOrders(exchanges[0]);
Log($.Cross(30, 7));
Log($.Cross([1,2,3,2.8,3.5], [3,1.9,2,5,0.6]));
}
}
Sử dụng:
Chiến lược thử nghiệm:
function main(){
var p = $.NewPositionManager();
var i = 0;
exchanges[0].SetContractType("this_week");
var isFirst = true;
var ret = null;
while(true){
var depth = _C(exchanges[0].GetDepth);
var positions = _C(exchanges[0].GetPosition);
var len = positions.length;
if(isFirst === true && i % 3 === 0 && len === 0){
ret = p.OpenLong("this_week", 1 + (i % 3) + (i % 2), depth.Asks[0].Price);
isFirst = false;
}else if(isFirst === false){
ret = p.OpenShort("this_week", 1 + (i % 3) + (i % 2), depth.Bids[0].Price);
isFirst = true;
}else{
for(var j = 0 ; j < len; j++){
if(positions[j].Type === PD_LONG){
ret = p.Cover("this_week", depth.Bids[0].Price - 2, positions[j].Amount, PD_LONG);
}else if(positions[j].Type === PD_SHORT){
ret = p.Cover("this_week", depth.Asks[0].Price + 2, positions[j].Amount, PD_SHORT);
}
Log("ret:", ret);
}
}
Log("ret", ret, "---------------------#FF0000");
i++;
Sleep(1000 * 60 * 15);
}
}
Nếu bạn có bất kỳ câu hỏi, bugs, vui lòng liên hệ với tác giả, cảm ơn nhiều!
yundiTại sao tôi không tìm thấy thư mục giao dịch tiền kỹ thuật số của JS, và tôi không thấy chiến lược trong đó
Tôi không phải là một người chú xấu.Giá của $.Buy ((0.5) là bao nhiêu?
OutlawjkCó phải phiên bản python của bạn cũng hỗ trợ các giao dịch tương lai OKEX?
đơn giản-chunBạn có thể hỏi, ret là gì? RECOVER T là gì?
đơn giản-chunXin hỏi phiên bản PY ở đâu?
yhfggBạn có quen với Python, có phiên bản Python không?
Những nhà phát minh định lượng - những giấc mơ nhỏCác thư mục giao dịch tương lai tiền kỹ thuật số là không chính thức, vì giao dịch có giao diện giữ hàng thường bị trì hoãn và có thể dẫn đến đơn đặt hàng lặp đi lặp lại, vì vậy nó bị hủy công khai.
yundiXin chào, đây là giao dịch tương lai mặt tiền và hàng hóa, tôi đã hỏi trong nhóm, thư mục giao dịch tương lai tiền kỹ thuật số của JS đã bị lỗi và không còn.
Những nhà phát minh định lượng - những giấc mơ nhỏ/upload/asset/16c4dcc69723e302152c.png Ở vị trí này.
Những nhà phát minh định lượng - những giấc mơ nhỏGiá của đối thủ vào thời điểm đó, cộng thêm một chút giảm giá.
Những nhà phát minh định lượng - những giấc mơ nhỏĐây là một phiên bản Python của các giao dịch tương lai hàng hóa, và JS của tôi thực sự được viết theo cấu trúc của các giao dịch tương lai hàng hóa, bạn có thể tham khảo.
OutlawjkCó phải bạn sẽ sử dụng nhiều hơn với js, theo mô hình Python về OKEX futures?
Những nhà phát minh định lượng - những giấc mơ nhỏPython không có tính năng tương lai Không cấy ghép.
Những nhà phát minh định lượng - những giấc mơ nhỏreturn nghĩa là trả về giá trị, thường được sử dụng để tạm thời lưu trữ một hàm trả về giá trị.
đơn giản-chunCảm ơn.
Những nhà phát minh định lượng - những giấc mơ nhỏhttps://www.botvs.com/strategy/21104, có thể hơi khác với phiên bản của JS, nó được chuyển thể theo JS.
Những nhà phát minh định lượng - những giấc mơ nhỏCó phiên bản Python, nhưng sử dụng ít hơn khi sử dụng, tốt nhất là thử nghiệm.