Type/to search
8
Follow
1365
Followers
¡mejora! Estrategia Martingala para futuros de criptomonedas
Discussions
Created 2022-02-07 09:12:36  Updated 2024-12-02 21:32:43
 5
 4319

img

¡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

    img

  • dYdX en vivo

    img

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.

img

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.

img

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:

img

  • 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:

    img

    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

img

img

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.

Related Recommendations
Comment
All comments (5)

    梦总,源码里的n=1好像并没有体现出意义?下面并没有n++体现加仓次数?

    4 years ago

    可以设计上,不过感觉风险比较大,所以就写死n=1了。

    4 years ago

    梦总 我觉得做黄金不错 XAUUSD 相对来说暴涨暴跌真没有币圈这么猛

    4 years ago

    多品种啊,梦总~首先利润变量那个参数要改成比例才可以多币种同时跑吧

    4 years ago

    是的,因为不同交易对,价格相差甚远,不能直观的用价格差表示了,需要用百分比来设计。如果要继续用价格差表示,需要设置一个数组参数,分开设置这些不同品种的价格差。

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)