Nâng cấp! Cryptocurrency tương lai chiến lược Martingale

Tác giả:Ninabadass, Tạo: 2022-04-06 17:38:39, Cập nhật: 2022-04-07 09:26:16

Nâng cấp! Cryptocurrency tương lai chiến lược Martingale

Như một chiến lược giảng dạy, tốt nhất là phải xem xét thực hành.FMZ.COMSau một số khó khăn, các chiến lược Martingale và lưới có rủi ro và lỗ hổng của riêng mình, và với các tham số được đặt một cách thận trọng, chúng vẫn có thể hữu ích.

  • Binance Futures Bot

    img

  • dYdX Bot

    img

Tôi luôn đảm bảo rằng hoàn toàn không có sạc để tạo ra đường cong năng suất.

Chỉ là thiết kế chiến lược của phiên bản đầu tiên tương đối đơn giản và thô. Chỉ có một vị trí và xuất dữ liệu tổng vốn chủ sở hữu trên giao diện. Cột lợi nhuận chỉ in lợi nhuận và lỗ thực hiện, và không tính lỗ nổi. Nhiều sinh viên mới phàn nàn và yêu cầu tối ưu hóa màn hình.

Trong bài viết này, tôi sẽ làm việc với bạn để nâng cấp chiến lược, đã ổn định và thực tế trong nửa năm.

Kế hoạch nâng cấp

  • Các thanh trạng thái được cập nhật để hiển thị thông tin về vị trí hiện tại, chứ không phải là một khối lượng dữ liệu được in ra. hiển thị tổng vốn chủ sở hữu hiện tại, lãi và lỗ lưu động, và lợi nhuận và lỗ thực tế (lãi và lỗ tổng được bao gồm trong lãi và lỗ lưu động)
  • Biểu đồ thị trường được hiển thị, và vị trí lệnh đang chờ hiện tại được hiển thị.

Phiên bản của chiến lược trước khi nâng cấp được ghi lại trong trang Chú ý của chiến lược.

img

Đây cũng là thói quen phát triển cá nhân của tôi.FMZ.COM.

Bắt đầu nâng cấp!

Trước hết, hãy tối ưu hóa màn hình status bar.LogStatussau đó, chúng ta tìm điểm đầu vào này và bắt đầu thiết kế mã

img

Tiếp theo, thêm một đoạn mã lớn ở đây:

                    var tblPos = {
                        "type" : "table",
                        "title" : "position",
                        "cols" : ["position amount", "position direction", "position average price", "position profit and loss", "contract code", "custom feild / " + SpecifyPosField],
                        "rows" : []
                    }
                    var descType = ["long position", "short position"]
                    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" : "data",
                        "cols" : ["current total equity", "actual profit and loss", "current price", "buy order price/amount", "sell order price/amount"],
                        "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)])
                    
                    // Update the chart data             
                    if (t && showLine) {
                        _.each(pos, function(p) {
                            $.PlotLine(descType[p.Type] + "position price", p.Price)
                        })
                        $.PlotLine("buy order price", buyOrder.Price)
                        $.PlotLine("sell order price", sellOrder.Price)
                        $.PlotLine("current price", t.Last)
                    }
                    
                    // Update the status bar data 
                    LogStatus("time:" + _D() + "\n" + "`" + JSON.stringify(tblPos) + "`" + "\n" + "`" + JSON.stringify(tbl) + "`")

Thay thế trước đó thôLogStatus export.

LogStatus(_D(), "Current total equity:", currTotalEq, "position:", pos)

Chiến lược đã thêm 2 tham số:

img

  • showLine Kiểm tra nó, và bạn có thể sử dụng thư viện vẽ đường để vẽ trên trang bot, và vẽ giá vị trí, giá lệnh đang chờ và đường cong giá hiện tại.

  • Xác định trường Pos Nó được sử dụng để thiết lập trường dữ liệu vị trí thô cần được hiển thị, bởi vì tên của trường dữ liệu vị trí thô của mỗi nền tảng là khác nhau. Ví dụ như, Binance bot của tôi:

    img

    Tôi muốn hiển thịunRealizedProfitBạn có thể đặt tham số SpecifyPosField thành unRealizedProfit, và hiển thị nó trong thanh trạng thái.

    Thiết kế tương tự như vậy cho phép chiến lược xuất khẩu dữ liệu không đồng nhất một cách thích nghi, cho phép người dùng tùy chỉnh nội dung xuất khẩu.

Khởi động lại các bot của Binance và dYdX sau khi nâng cấp chiến lược

img

img

Bạn có thể xem dữ liệu cần được hiển thị một cái nhìn. Nó là thuận tiện hơn nhiều để quan sát tiến độ giao dịch của chiến lược, giá vị trí hiện tại, lợi nhuận và lỗ, và giá lệnh. Chiến lược này có một số rủi ro nhất định, và bot sẽ thiết lập các tham số cụ thể theo kiểm soát rủi ro của riêng nó, và chịu trách nhiệm cho lợi nhuận và lỗ của riêng nó.


Thêm nữa