Bài viết liên quan:https://www.fmz.com/bbs-topic/8479
/*backtest start: 2021-09-01 00:00:00 end: 2021-12-02 00:00:00 period: 1h basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}] */ var LONG = 1 var SHORT = -1 var IDLE = 0 function getPosition(positions, direction) { var ret = {Price : 0, Amount : 0, Type : ""} _.each(positions, function(pos) { if (pos.Type == direction) { ret = pos } }) return ret } function cancellAll() { while (true) { var orders = _C(exchange.GetOrders) if (orders.length == 0) { break } else { for (var i = 0 ; i < orders.length ; i++) { exchange.CancelOrder(orders[i].Id, orders[i]) Sleep(500) } } Sleep(500) } } function cover(tradeFunc, direction) { var mapDirection = {"closebuy": PD_LONG, "closesell": PD_SHORT} var positions = _C(exchange.GetPosition) var pos = getPosition(positions, mapDirection[direction]) if (pos.Amount > 0) { cancellAll() exchange.SetDirection(direction) if (tradeFunc(-1, pos.Amount)) { return true } else { return false } } return true } function main() { if (okexSimulate) { exchange.IO("simulate", true) // 切换到OKEX V5模拟盘测试 Log("切换到OKEX V5模拟盘") } exchange.SetContractType(ct) var state = IDLE var holdPrice = 0 var preTime = 0 while (true) { var r = _C(exchange.GetRecords) var l = r.length if (l < Math.max(ema1Period, ema2Period)) { Sleep(1000) continue } var ema1 = TA.EMA(r, ema1Period) var ema2 = TA.EMA(r, ema2Period) // 画图 $.PlotRecords(r, 'K线') if(preTime !== r[l - 1].Time){ $.PlotLine('ema1', ema1[l - 2], r[l - 2].Time) $.PlotLine('ema2', ema2[l - 2], r[l - 2].Time) $.PlotLine('ema1', ema1[l - 1], r[l - 1].Time) $.PlotLine('ema2', ema2[l - 1], r[l - 1].Time) preTime = r[l - 1].Time } else { $.PlotLine('ema1', ema1[l - 1], r[l - 1].Time) $.PlotLine('ema2', ema2[l - 1], r[l - 1].Time) } var up = (ema1[l - 2] > ema1[l - 3] && ema1[l - 4] > ema1[l - 3]) && (ema2[l - 2] > ema2[l - 3] && ema2[l - 4] > ema2[l - 3]) var down = (ema1[l - 2] < ema1[l - 3] && ema1[l - 4] < ema1[l - 3]) && (ema2[l - 2] < ema2[l - 3] && ema2[l - 4] < ema2[l - 3]) if (up && (state == SHORT || state == IDLE)) { if (state == SHORT && cover(exchange.Buy, "closesell")) { state = IDLE holdPrice = 0 $.PlotFlag(r[l - 1].Time, 'coverShort', 'CS') } exchange.SetDirection("buy") if (exchange.Buy(-1, amount)) { state = LONG holdPrice = r[l - 1].Close $.PlotFlag(r[l - 1].Time, 'openLong', 'L') } } else if (down && (state == LONG || state == IDLE)) { if (state == LONG && cover(exchange.Sell, "closebuy")) { state = IDLE holdPrice = 0 $.PlotFlag(r[l - 1].Time, 'coverLong', 'CL') } exchange.SetDirection("sell") if (exchange.Sell(-1, amount)) { state = SHORT holdPrice = r[l - 1].Close $.PlotFlag(r[l - 1].Time, 'openShort', 'S') } } // 止盈 if (state == LONG && r[l - 1].Close - holdPrice > profitTarget && cover(exchange.Sell, "closebuy")) { state = IDLE holdPrice = 0 $.PlotFlag(r[l - 1].Time, 'coverLong', 'CL') } else if (state == SHORT && holdPrice - r[l - 1].Close > profitTarget && cover(exchange.Buy, "closesell")) { state = IDLE holdPrice = 0 $.PlotFlag(r[l - 1].Time, 'coverShort', 'CS') } LogStatus(_D()) Sleep(500) } }
xxs1xxs1Ông chủ, tôi đã sửa đổi một chút, kết quả trông rất tốt. Bạn đã đưa ra một vài lời khuyên. Đọc thêm: https://www.fmz.com/m/edit-strategy/359761
Thiên đàng và tài sảnCô giáo: Bạn đã thực hiện bài kiểm tra về chiến lược giảng dạy bao nhiêu lần?
Thiên đàng và tài sảnTôi bắt đầu chơi, không có phản ứng nào.
Thiên đàng và tài sản/upload/asset/2152afd2a78355e8ce25b.png
Thiên đàng và tài sảnBuy ((-1, 5): 400: {"code":-2019, "msg:"Margin is insufficient. "} Ý nghĩa là gì?
Thiên đàng và tài sảnChị Chị Mùi: Xin vui lòng gửi tin nhắn cho tôi nhé?
Thiên đàng và tài sảnBạn có thể sử dụng chiến lược này trên máy tính thực không?
Cyclk9macd giao thoa mua lên mua xuống bán đồng thời chuyển đổi đơn hàng, không chỉ thắng, chỉ dừng lỗ như thế nào viết
13826543292Cảm ơn Chúa, thật tuyệt vời.
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, nghiên cứu này là nghiên cứu.
xxs1xxs1Ông già, bạn có thể đưa ra một chiến lược để khóa và mở kho không? Trong khi đó, một số người cho rằng chiến lược dừng lỗ trực tiếp là quá mạnh.
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, chúng tôi sẽ chia sẻ nhiều chiến lược hơn trong tương lai, cảm ơn vì đã hỗ trợ FMZ.
xxs1xxs1Chỉ cần nói ông chủ là bạn thực sự là 666 Tôi chỉ sử dụng lợi thế lợi nhuận. Bạn hãy thử thử EOS. Tôi đang nghiên cứu để xem liệu có thể không. Hiện tại, ước tính không đủ để trả phí. Tôi có thể thử một hợp đồng BUSD giá rẻ.
Những nhà phát minh định lượng - những giấc mơ nhỏCó thể là tài sản tài khoản chưa đủ.
Những nhà phát minh định lượng - những giấc mơ nhỏThông thường, đòn bẩy khi kiểm tra lại là 10 lần.
Những nhà phát minh định lượng - những giấc mơ nhỏX. X, tôi cũng không cho phép. Nhưng nói về phiên bản tối ưu của bạn 666, Sharp cao như thế nào?
Thiên đàng và tài sảnĐó là hợp đồng của bạn, phải không?
Những nhà phát minh định lượng - những giấc mơ nhỏBạn có tài khoản không đủ tiền bảo lãnh, không đủ tiền để đặt hàng.
Những nhà phát minh định lượng - những giấc mơ nhỏCó thể tìm thấy ví dụ tham khảo tại quảng trường chiến lược.