Atualização!

Autora:Ninabadass, Criado: 2022-04-06 17:38:39, Atualizado: 2022-04-07 09:26:16

Atualização!

Como estratégia de ensino, é melhor levar em consideração a prática.FMZ.COMApós várias dificuldades, as estratégias Martingale e grid têm os seus próprios riscos e falhas, e com parâmetros conservadores, ainda podem ser úteis.

  • Binance Futures Bot

    img

  • Bot dYdX

    img

Eu garanto sempre que não há absolutamente nenhuma recarga para criar a curva de rendimento.

A curva de lucro imprime apenas o lucro e a perda realizados, e não conta a perda flutuante. Muitos novos alunos reclamaram e pediram para otimizar a exibição.

Neste artigo, vou trabalhar com você para atualizar a estratégia, que tem sido estável e prática por meio ano.

Plano de actualização

  • A barra de status é atualizada para exibir informações sobre a posição atual, em vez de uma massa de dados sendo impressa.
  • O gráfico de mercado é exibido e a posição atual das ordens pendentes.

A versão da estratégia antes da atualização é registada na página Nota da estratégia.

img

É muito conveniente para registrar cada bit de desenvolvimento de estratégia e iteração emFMZ.COM.

Começa a atualizar!

Primeiro de tudo, vamos otimizar o display de barra de status.LogStatusA função é usada para exibir os dados da barra de status no FMZ. Então, encontramos este ponto de entrada e começamos a projetar o código.

img

Em seguida, adicionar um grande pedaço de código aqui:

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

Substitua o bruto anteriorLogStatus export.

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

A estratégia acrescentou dois parâmetros:

img

  • showLine Verifique-o, e você pode usar a biblioteca de desenho de linha para desenhar na página do bot, e desenhar o preço da posição, o preço da ordem pendente e as curvas de preço atuais.

  • EspecificarCampo Ele é usado para definir o campo bruto de informações de posição que precisa ser exibido, porque o nome do campo de dados de posição bruto de cada plataforma é diferente. Como, o meu bot Binance:

    img

    Quero exibir ounRealizedProfitVocê pode definir o parâmetro SpecifyPosField para unRealizedProfit e exibi-lo na barra de status.

    Tal projeto similar permite que a estratégia para exportar de forma adaptativa os dados não uniformes, dando aos usuários a opção de personalizar o conteúdo de exportação.

Reinicie os bots da Binance e da dYdX após a atualização da estratégia

img

img

É muito mais conveniente observar o progresso da negociação da estratégia, o preço da posição atual, o lucro e a perda e o preço da ordem. A estratégia tem certos riscos, e o bot irá definir parâmetros específicos de acordo com seu próprio controle de risco, e ser responsável por seus próprios lucros e perdas.


Mais.