¡Actualización! Las estrategias de los futuros de las monedas digitales

El autor:Un sueño pequeño., Creado: 2022-02-07 09:12:36, Actualizado: 2023-09-20 10:11:23

img

¡Actualización! Las estrategias de los futuros de las monedas digitales

作为一个教学策略,兼顾一定的实战性能当然是最好的。「数字货币期货类马丁策略」在FMZ.COM围观板块也已经展示了小半年了。经历了好几拨风吹雨打,马丁、网格策略有其风险硬伤,参数保守一点也不是不能用。

  • El mercado real de los futuros

    img

  • Disco físico dYdX

    img

Sin embargo, el gobierno de los Estados Unidos no ha hecho nada para evitar que los trabajadores de la industria del aluminio se vean afectados por el cambio climático, lo que significa que los trabajadores de la industria del aluminio no tienen ningún derecho a pagar por su producción.

Sin embargo, la primera versión de la estrategia de diseño es relativamente sencilla, en la interfaz sólo hay una tenencia, la salida de datos de beneficios y beneficios totales, la curva de ganancias también sólo se imprime para lograr ganancias y pérdidas, sin tener en cuenta las ganancias y pérdidas.

Este artículo nos ayuda a actualizar esta estrategia de estabilización de seis meses de guerra real.

Plan de mejoras

  • La barra de estado de actualización muestra información sobre la tenencia actual, en lugar de un conjunto de datos impresos. Muestra la ganancia total actual, ganancias flotantes, ganancias reales (ganancias y pérdidas totales de ganancias y pérdidas flotantes que ya se han incluido)
  • El gráfico muestra la ubicación actual de los anuncios.

Las versiones de la política antes de la actualización se registran en la página de "Notas" de la política.

img

这个也是我的个人开发习惯,在FMZ.COM上很方便记录策略开发、迭代的点点滴滴。

¡Comienza la actualización! Primero optimizamos la barra de estado para mostrar que los estudiantes que están familiarizados con la documentación de desarrollo de FMZ saben que mostrar datos de barra de estado en FMZ es una forma fácil de usar.LogStatusAsí que estamos buscando este punto de corte para comenzar a diseñar el código.

img

Ahora, añade un gran fragmento de código:

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

¿Qué es lo que está sucediendo?LogStatusExportación

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

La estrategia añade dos parámetros:

img

  • Los parámetros de showLine Si lo deseas, puedes usar la librería de líneas gráficas para dibujar precios de mantenimiento, precios de suspensión, curvas de precios actuales en la página del disco real.

  • Especificar el campo Pos Para configurar el campo de datos primarios de la información de tenencia que se desea mostrar, ya que cada intercambio tiene un nombre de campo de datos primarios de tenencia diferente. Por lo tanto, aquí se diseña un parámetro personalizado para especificar el nombre del campo a mostrar. Por ejemplo, mi plataforma de seguridad:

    img

    Quiero mostrar los datos de la información de almacenamiento en el campo Info (datos originales de la interfaz de intercambio)unRealizedProfitPropiedad, que es que la tenencia no ha logrado ganancias y pérdidas. Puede establecer el parámetro SpecifyPosField como unRealizedProfit. Puede mostrarse en la barra de estado.

    Un diseño similar permite que las políticas adapten la salida a datos no uniformes, dando a los usuarios la opción de personalizar el contenido de la salida.

Reinicie el disco real de Binance, dYdX después de la política de actualización

img

img

Se puede ver a simple vista los datos que se necesitan para mostrar. Observar el progreso de la estrategia, los precios actuales de los activos, las ganancias y las pérdidas, los precios de los pedidos suspendidos es muy conveniente. Las estrategias tienen cierto riesgo, las plataformas reales establecen parámetros específicos de control en función de sus propios riesgos, ganancias y pérdidas auto-responsables. Las estrategias públicas solo se utilizan para intercambiar y aprender.


Relacionados

Más.

AAA386En general, parece que n = 1 en el código fuente no tiene sentido. ¿No hay n ++ debajo que represente el número de veces que se ha agregado?

Es un ermitaño.En general, me parece que el oro es bueno para hacer XAUUSD en comparación con el auge de la caída no hay círculo de monedas tan fuerte

¿Qué es eso?La variedad, el total de los sueños, primero la variable de ganancias, el parámetro debe cambiar a la proporción para poder correr con varias monedas al mismo tiempo.

Un sueño pequeño.Si el riesgo es mayor, entonces la muerte se escribe n = 1.

Un sueño pequeño.Sí, ya que los diferentes pares de transacciones tienen precios muy diferentes y no se pueden representar de forma intuitiva, por lo que se debe diseñar en porcentaje. Si se continúa con la diferencia de precios, se debe establecer un parámetro de conjunto para establecer las diferencias de precios de estas diferentes variedades por separado.