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
Bot de dYdX
Siempre garantizo que no hay absolutamente ninguna recarga para
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.
La versión de la estrategia antes de la actualización se registra en la página
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.LogStatus
Luego, encontramos este punto de entrada y comenzamos a diseñar el código.
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:
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:
Quiero mostrar elunRealizedProfit
Puede 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.
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.