Peningkatan! Cryptocurrency Futures Strategi Martingale

Penulis:Ninabadass, Dicipta: 2022-04-06 17:38:39, Dikemas kini: 2022-04-07 09:26:16

Peningkatan! Cryptocurrency Futures Strategi Martingale

Sebagai strategi pengajaran, adalah lebih baik untuk mengambil amalan dalam pertimbangan.FMZ.COMSelepas beberapa kesukaran, strategi Martingale dan grid mempunyai risiko dan kelemahan mereka sendiri, dan dengan parameter yang ditetapkan secara konservatif, mereka masih boleh berguna.

  • Binance Futures Bot

    img

  • Bot dYdX

    img

Saya sentiasa menjamin bahawa terdapat sama sekali tidak pengecasan untuk membuat keluk hasil.

Ia hanya bahawa reka bentuk strategi versi pertama adalah agak mudah dan kasar. Hanya ada satu kedudukan dan eksport data ekuiti keseluruhan pada antara muka. kurva keuntungan hanya mencetak keuntungan dan kerugian yang direalisasikan, dan tidak mengira kerugian terapung. Banyak pelajar baru mengadu dan meminta untuk mengoptimumkan paparan.

Dalam artikel ini, saya akan bekerjasama dengan anda untuk menaik taraf strategi, yang telah stabil dan praktikal selama setengah tahun.

Pelan Peningkatan

  • Bar status dikemas kini untuk memaparkan maklumat mengenai kedudukan semasa, dan bukannya jisim data yang dicetak.
  • Carta pasaran dipaparkan, dan kedudukan pesanan yang sedang menunggu semasa dipaparkan.

Versi strategi sebelum peningkatan dicatatkan dalam halaman Note strategi.

img

Ini juga tabiat pembangunan peribadi saya. Ia adalah sangat mudah untuk merakam setiap bit pembangunan strategi dan pengulangan padaFMZ.COM.

Mulakan menaik taraf!

Pertama sekali, mari optimumkan status bar paparan. pelajar yang biasa dengan dokumentasi pembangunan FMZ tahu bahawaLogStatusfungsi digunakan untuk memaparkan data bar status pada FMZ. kemudian, kita mencari titik masuk ini dan mula merancang kod.

img

Seterusnya, tambahkan sekeping kod yang besar di sini:

                    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) + "`")

Ganti kasar sebelum iniLogStatus export.

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

Strategi ini telah menambah 2 parameter:

img

  • showLine Periksa, dan anda boleh menggunakan perpustakaan lukisan garis untuk menarik pada halaman bot, dan lukis harga kedudukan, harga pesanan menunggu dan lengkung harga semasa.

  • Tentukan PosField Ia digunakan untuk menetapkan medan mentah maklumat kedudukan yang perlu dipaparkan, kerana nama medan data kedudukan mentah setiap platform adalah berbeza. Seperti, bot Binance saya:

    img

    Saya mahu memaparkanunRealizedProfitanda boleh menetapkan parameter SpecifyPosField untuk unRealizedProfit, dan memaparkannya dalam bar status.

    Reka bentuk yang serupa membolehkan strategi untuk mengeksport data yang tidak seragam secara adaptif, memberi pengguna pilihan untuk menyesuaikan kandungan eksport.

Mulakan semula bot Binance dan dYdX selepas menaik taraf strategi

img

img

Anda boleh melihat data yang perlu dipaparkan sekilas. Ia adalah lebih mudah untuk memerhatikan kemajuan perdagangan strategi, harga kedudukan semasa, keuntungan dan kerugian, dan harga pesanan. Strategi ini mempunyai risiko tertentu, dan bot akan menetapkan parameter tertentu mengikut kawalan risiko sendiri, dan bertanggungjawab untuk keuntungan dan kerugian sendiri.


Lebih lanjut