¡Actualice! Estrategia de futuros de criptomonedas Martingale

El autor:No lo sé., Creado: 2022-04-06 17:38:39, Actualizado: 2022-04-07 09:26:16

¡Actualice! Estrategia de futuros de criptomonedas Martingale

Como estrategia de enseñanza, lo mejor es tener en cuenta la práctica.FMZ.COMDespués de varias dificultades, las estrategias de Martingale y de red tienen sus propios riesgos y defectos, y con parámetros conservadores, pueden ser útiles.

  • Bot de futuros de Binance

    img

  • Bot de dYdX

    img

Siempre garantizo que no hay absolutamente ninguna recarga para crear la curva de rendimiento.

Es sólo que el diseño de la estrategia de la primera versión es relativamente simple y bruto. Sólo hay una posición y exportación de datos de capital total en la interfaz. La curva de ganancias solo imprime las ganancias y pérdidas realizadas, y no cuenta la pérdida flotante.

En este artículo, trabajaré con ustedes para actualizar la estrategia, que ha sido estable y práctica durante medio año.

Plan de actualización

  • La barra de estado se actualiza para mostrar información sobre la posición actual, en lugar de una masa de datos que se imprime.
  • Se muestra el gráfico de mercado y se muestra la posición actual de la orden pendiente.

La versión de la estrategia antes de la actualización se registra en la página Nota de la estrategia.

img

Este es también mi hábito de desarrollo personal. es muy conveniente para registrar cada bit de desarrollo de estrategia e iteración enFMZ.COM.

¡Comienza con la actualización!

En primer lugar, vamos a optimizar la pantalla de la barra de estado.LogStatusLuego, encontramos este punto de entrada y comenzamos a diseñar el código.

img

A continuación, añadir un gran pedazo de código aquí:

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

Reemplazar el bruto anteriorLogStatus export.

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

La estrategia ha añadido 2 parámetros:

img

  • línea de muestra Compruebe, y puede usar la biblioteca de dibujo de líneas para dibujar en la página del bot, y dibujar el precio de la posición, el precio de la orden pendiente y las curvas de precios actuales.

  • Especificar el campo Se utiliza para establecer el campo de datos de posición en bruto que debe mostrarse, porque el nombre del campo de datos de posición en bruto de cada plataforma es diferente. Por ejemplo, mi bot de Binance:

    img

    Quiero mostrar elunRealizedProfitPuede configurar el parámetro SpecifyPosField en unRealizedProfit, y mostrarlo en la barra de estado.

    Este diseño similar permite a la estrategia exportar de forma adaptativa los datos no uniformes, dando a los usuarios la opción de personalizar el contenido de exportación.

Reinicie los bots de Binance y dYdX después de actualizar la estrategia

img

img

Es mucho más conveniente observar el progreso de la estrategia, el precio de la posición actual, las ganancias y pérdidas y el precio de la orden. La estrategia tiene ciertos riesgos, y el bot establecerá parámetros específicos de acuerdo con su propio control de riesgos, y será responsable de sus propias ganancias y pérdidas.


Más.