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

Tăng cấp! chiến lược tương lai tiền kỹ thuật số

Tác giả:Những nhà phát minh định lượng - những giấc mơ nhỏ, Tạo: 2022-02-07 09:12:36, Cập nhật: 2023-09-20 10:11:23

img

Tăng cấp! chiến lược tương lai tiền kỹ thuật số

作为一个教学策略,兼顾一定的实战性能当然是最好的。「数字货币期货类马丁策略」在FMZ.COM围观板块也已经展示了小半年了。经历了好几拨风吹雨打,马丁、网格策略有其风险硬伤,参数保守一点也不是不能用。

  • Biên An tương lai thực

    img

  • đĩa thực dYdX

    img

Trong khi đó, một số nhà sản xuất dầu mỏ ở Việt Nam cũng cho biết họ sẽ tiếp tục sản xuất dầu vào năm 2020.

Tuy nhiên, phiên bản đầu tiên của chiến lược thiết kế tương đối đơn giản, trên giao diện chỉ có một nắm giữ, tổng quyền lợi dữ liệu đầu ra, lợi nhuận đường cong cũng chỉ in để đạt được lợi nhuận và lỗ, không tính vào lãi và lỗ.

Bài viết này cùng với tất cả các bạn nâng cấp chiến lược ổn định trong nửa năm chiến tranh thực.

Kế hoạch nâng cấp

  • Cảng trạng thái nâng cấp hiển thị, hiển thị thông tin về cổ phiếu hiện tại, chứ không phải là một tập dữ liệu được in ra. Hiển thị tổng lợi nhuận hiện tại, lợi nhuận lỏng lẻo, lợi nhuận thực tế (đã tính tổng lợi nhuận lỏng lẻo)
  • Biểu đồ hành vi cho thấy vị trí đăng tải hiện tại.

Phiên bản chính sách trước khi nâng cấp được ghi lại trên trang "Lưu ý" của chính sách.

img

这个也是我的个人开发习惯,在FMZ.COM上很方便记录策略开发、迭代的点点滴滴。

Bắt đầu nâng cấp! Đầu tiên, chúng tôi sẽ tối ưu hóa "bảng trạng thái" để hiển thị, và tất cả những người quen thuộc với các tài liệu phát triển FMZ đều biết rằng hiển thị dữ liệu trên FMZ là một cách tốt nhất để hiển thị dữ liệu trên FMZ.LogStatusCác chức năng. Vì vậy, chúng ta tìm ra điểm cắt này để bắt đầu thiết kế mã.

img

Sau đó, hãy thêm một đoạn mã lớn:

                    var tblPos = {
                        "type" : "table",
                        "title" : "持仓",
                        "cols" : ["持仓数量", "持仓方向", "持仓均价", "持仓盈亏", "合约代码", "自定义字段 / " + SpecifyPosField],
                        "rows" : []
                    }
                    var descType = ["多头仓位", "空头仓位"]
                    for (var posIndex = 0 ; posIndex < pos.length ; posIndex++) {
                        tblPos.rows.push([pos[posIndex].Amount, descType[pos[posIndex].Type], pos[posIndex].Price, pos[posIndex].Profit, pos[posIndex].ContractType, SpecifyPosField == "" ? "--" : pos[posIndex].Info[SpecifyPosField]])
                    }
                    
                    var tbl = {
                        "type" : "table",
                        "title" : "数据",
                        "cols" : ["当前总权益", "实际盈亏", "当前价格", "买单价格/数量", "卖单价格/数量"],
                        "rows" : []
                    }
                    var buyOrder = null 
                    var sellOrder = null 
                    for (var orderIndex = 0 ; orderIndex < orders.length ; orderIndex++) {
                        if (orders[orderIndex].Type == ORDER_TYPE_BUY) {
                            buyOrder = orders[orderIndex]
                        } else {
                            sellOrder = orders[orderIndex]
                        }
                    }
                    var realProfit = currTotalEq - totalEq
                    if (exchange.GetName() == "Futures_Binance") {
                        _.each(pos, function(p) {
                            realProfit += parseFloat(p.Info.unRealizedProfit)
                        })                        
                    }
                    var t = exchange.GetTicker()
                    tbl.rows.push([currTotalEq, realProfit, t ? t.Last : "--", (buyOrder.Price + "/" + buyOrder.Amount), (sellOrder.Price + "/" + sellOrder.Amount)])
                    
                    // 更新图表数据             
                    if (t && showLine) {
                        _.each(pos, function(p) {
                            $.PlotLine(descType[p.Type] + "持仓价格", p.Price)
                        })
                        $.PlotLine("买单挂单价格", buyOrder.Price)
                        $.PlotLine("卖单挂单价格", sellOrder.Price)
                        $.PlotLine("当前价格", t.Last)
                    }
                    
                    // 更新状态栏数据
                    LogStatus("时间:" + _D() + "\n" + "`" + JSON.stringify(tblPos) + "`" + "\n" + "`" + JSON.stringify(tbl) + "`")

Thay thế những thứ đơn giản trước đâyLogStatusXuất phát

LogStatus(_D(), "当前总权益:", currTotalEq, "持仓:", pos)

Trong khi đó, các chiến lược đã thêm 2 tham số:

img

  • showLine Khi chọn, bạn có thể sử dụng thư viện lớp học vẽ trên trang thực để vẽ giá nắm giữ, giá đặt hàng, đường cong giá hiện tại.

  • SpecifyPosField Sử dụng để thiết lập các trường dữ liệu nguyên thủy để hiển thị thông tin nắm giữ, vì tên của các trường dữ liệu nguyên thủy của mỗi sàn giao dịch là khác nhau. Vì vậy, hãy thiết kế một tham số tùy chỉnh để chỉ định tên trường để hiển thị. Ví dụ, máy tính của tôi:

    img

    Tôi muốn hiển thị dữ liệu thông tin lưu trữ trong trường Info (đối với giao diện giao dịch dữ liệu gốc)unRealizedProfitThuộc tính, giữ không đạt được lợi nhuận. Bạn có thể đặt tham số SpecifyPosField thành unRealizedProfit.

    Thiết kế tương tự như vậy có thể cho phép chính sách điều chỉnh đầu ra đối với dữ liệu không thống nhất, cho phép người dùng tùy chỉnh nội dung đầu ra của mình.

Khởi động lại ổ đĩa thực của Binance, dYdX sau khi chính sách nâng cấp

img

img

Bạn có thể thấy dữ liệu cần hiển thị một cách dễ dàng. Quan sát chiến lược tiến độ giao dịch, giá cổ phiếu hiện tại, lợi nhuận, lỗ, giá đặt hàng là rất thuận tiện. Chiến lược có một số rủi ro, thực tế dựa trên rủi ro của mình để kiểm soát các tham số cụ thể, tự chịu lợi nhuận và tổn thất. Chiến lược công khai chỉ được sử dụng để trao đổi và học tập.


Có liên quan

Thêm nữa

AAA386Có vẻ như n = 1 trong mã nguồn không thể hiện ý nghĩa?

Người ẩn dật.XAUUSD tương đối tăng, giảm, không có một vòng đồng tiền mạnh mẽ như vậy

Ồ.Một số loại tiền tệ, một số tiền tệ, một số tiền tệ, một số tiền tệ, một số tiền tệ, một số tiền tệ, một số tiền tệ.

Những nhà phát minh định lượng - những giấc mơ nhỏCó thể thiết kế, nhưng cảm thấy rủi ro lớn hơn, vì vậy viết chết n = 1.

Những nhà phát minh định lượng - những giấc mơ nhỏVâng, bởi vì các cặp giao dịch khác nhau, giá khác nhau rất nhiều, không thể hiển thị sự khác biệt giá sử dụng trực quan, cần phải được thiết kế theo tỷ lệ phần trăm. Nếu muốn tiếp tục sử dụng sự khác biệt giá, bạn cần phải thiết lập một tham số số liệu để thiết lập sự khác biệt giá của các loại khác nhau.