avatar of 发明者量化-小小梦 发明者量化-小小梦
Seguir Mensajes Privados
4
Seguir
1271
Seguidores

¡mejora! Estrategia Martingala para futuros de criptomonedas

Creado el: 2022-02-07 09:12:36, Actualizado el: 2024-12-02 21:32:43
comments   5
hits   3858

¡mejora! Estrategia Martingala para futuros de criptomonedas

¡mejora! Estrategia Martingala para futuros de criptomonedas

Como estrategia de enseñanza, por supuesto, lo mejor es tener en cuenta ciertos resultados prácticos. La “Estrategia de Martin para futuros de criptomonedas” se ha mostrado en la sección Watch de FMZ.COM durante casi medio año. Después de pasar por muchos altibajos, se descubre que las estrategias de Martin y de cuadrícula tienen sus riesgos y deficiencias, y los parámetros conservadores no significan que no se puedan utilizar.

  • Futuros de Binance en vivo

¡mejora! Estrategia Martingala para futuros de criptomonedas

  • dYdX en vivo

¡mejora! Estrategia Martingala para futuros de criptomonedas

El señor Meng garantiza que no hay absolutamente ningún recargo para “fabricar” la curva de rendimiento (cabeza de perro manual).

Sin embargo, la primera versión del diseño de la estrategia era bastante rudimentaria. En la interfaz solo se mostraban los datos de una posición y del capital total, y la curva de rendimiento solo mostraba las ganancias y pérdidas realizadas, sin tener en cuenta la pérdida flotante. Muchos estudiantes nuevos se quejaron y pidieron que se optimizara la visualización.

En este artículo actualizaremos esta estrategia que se viene utilizando en la práctica desde hace medio año.

Plan de actualización

  • Se actualizó la pantalla de la barra de estado para mostrar información de la posición actual en lugar de imprimir un montón de datos. Muestra el capital total actual, las ganancias y pérdidas flotantes y las ganancias y pérdidas reales (ganancias y pérdidas totales incluidas las ganancias y pérdidas flotantes)
  • Se muestra el gráfico del mercado y la posición actual de la orden pendiente.

La versión de la política antes de la actualización se registra en la página Notas de la política.

¡mejora! Estrategia Martingala para futuros de criptomonedas

Este también es mi hábito de desarrollo personal. Es muy conveniente registrar cada detalle del desarrollo y la iteración de la estrategia en FMZ.COM.

¡Empieza a actualizar! Primero, optimicemos la visualización de la “barra de estado”. Los estudiantes que están familiarizados con los documentos de desarrollo de FMZ saben que los datos de la barra de estado se muestran en FMZ medianteLogStatusfunción. Luego encontramos este punto de entrada y comenzamos a diseñar el código.

¡mejora! Estrategia Martingala para futuros de criptomonedas

A continuación, agregue un gran fragmento de código aquí:

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

Reemplazar el crudo anteriorLogStatusProducción

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

La estrategia añade 2 parámetros:

¡mejora! Estrategia Martingala para futuros de criptomonedas

  • Parámetros de showLine Si está marcada, puede usar la biblioteca de dibujo de líneas para dibujar en la página de negociación real, dibujando el precio de la posición, el precio de la orden pendiente y la curva de precio actual.

  • Parámetro SpecifyPosField Se utiliza para establecer los campos originales de la información de posición que debe mostrarse, porque los nombres de los campos de datos originales de las posiciones son diferentes para cada intercambio. Aquí diseñamos un parámetro personalizado para especificar el nombre del campo que se mostrará. Por ejemplo, mi cuenta real de Binance:

¡mejora! Estrategia Martingala para futuros de criptomonedas

Quiero mostrar el campo de información de los datos de posición (los datos originales de la interfaz de intercambio)unRealizedProfitAtributo, es decir, la ganancia y pérdida no realizada de la posición. Puede establecer el parámetro SpecifyPosField en unRealizedProfit. Se mostrará en la barra de estado.

Un diseño similar permite que la estrategia adapte la salida a datos no uniformes, brindando a los usuarios la opción de personalizar el contenido de salida.

Reinicie el comercio real de Binance y dYdX después de actualizar la estrategia

¡mejora! Estrategia Martingala para futuros de criptomonedas

¡mejora! Estrategia Martingala para futuros de criptomonedas

De un vistazo se puede ver claramente que los datos que deben mostrarse son claros. Es mucho más conveniente observar el progreso comercial de la estrategia, el precio de la posición actual, las ganancias y pérdidas y el precio de la orden pendiente. Esta estrategia conlleva ciertos riesgos. Establezca parámetros específicos según su propio control de riesgos y asuma sus propias ganancias y pérdidas. La estrategia se divulga únicamente para la comunicación y el aprendizaje.