作为一个教学策略,兼顾一定的实战性能当然是最好的。「数字货币期货类马丁策略」在FMZ.COM围观板块也已经展示了小半年了。经历了好几拨风吹雨打,马丁、网格策略有其风险硬伤,参数保守一点也不是不能用。
Binance-Futures auf dem Markt
DYdX-Festplatte
Die Firma Dream Total versichert, dass es absolut keine Ertragskurve für die Herstellung von Füllungspumpen gibt (Hand-Dog Head).
Allerdings ist die Strategie der ersten Version relativ einfach, die nur eine Halterung auf der Benutzeroberfläche, die Ausgabe von Gesamtrechts- und Gewinndaten und die Ertragskurve sind nur für Gewinn und Verlust gedruckt.
In diesem Artikel wollen wir gemeinsam mit euch diese sechs Monate lange Strategie des stabilen Krieges aufwerten.
Die Versionen der Strategie vor dem Upgrade werden auf der "Notizen"-Seite der Strategie aufgezeichnet.
这个也是我的个人开发习惯,在FMZ.COM上很方便记录策略开发、迭代的点点滴滴。
Beginnen Sie die Aktualisierung!
Zuerst optimieren wir die Status-Tab-Anzeige, und alle Schüler, die mit der FMZ-Entwicklungsdokumentation vertraut sind, wissen, dass die Status-Tab-Daten auf der FMZ verwendet werden.LogStatus
Die Funktion. Dann finden wir diesen Schnittpunkt, um den Code zu entwerfen.
Der nächste Schritt ist, einen großen Code zu fügen:
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) + "`")
Ersetzen Sie das einfacheLogStatus
Ausgabe
LogStatus(_D(), "当前总权益:", currTotalEq, "持仓:", pos)
Die Strategie fügt zwei Parameter hinzu:
ShowLine-Parameter Wenn Sie dies wünschen, können Sie mit Hilfe der Zeichnungslinie-Klassenbuch auf der Festplattenseite ein Diagramm erstellen, das die Preise der Bestände, der Aufstellungen und der aktuellen Kurskurven darstellt.
SpecifyPosField wird angezeigt. Es wird verwendet, um die natürlichen Felder der Lagerinformationen einzustellen, die angezeigt werden müssen, da die Namen der natürlichen Datenfelder für die Lagerinformationen für jede Börse unterschiedlich sind. Hier wurde ein benutzerdefinierter Parameter entwickelt, um die Namen der Felder anzugeben, die angezeigt werden sollen. Das ist ein Beispiel für meine Binance Plattform:
Ich möchte die Daten der Lagerinformationen im Info-Feld (Exchange Interface Raw Data) anzeigenunRealizedProfit
Die Eigenschaft, dass die Haltung keinen Gewinn oder Verlust erzielt.
Ein ähnliches Design ermöglicht es den Strategien, ihre Ausgabe für nicht einheitliche Daten zu optimieren und den Benutzern die Möglichkeit zu geben, die Ausgabe selbst anzupassen.
Die Daten, die angezeigt werden müssen, sind sofort sichtbar. Es ist sehr einfach, den Handelsprozess der Strategie zu beobachten, den aktuellen Haltpreis, den Gewinn, den Verlust und den Preis der Aufträge. Die Strategie hat ein gewisses Risiko, die Echtplatte setzt die Parameter auf Basis ihrer eigenen Risiken fest, selbstverständlich Gewinn und Verlust; die Strategie ist nur für den Austausch und das Lernen öffentlich bekannt.
AAA386Ich denke, es scheint, als ob n = 1 im Quellcode keinen Sinn ergeben würde.
Ein EinsiedlerIch denke, Gold ist gut gemacht XAUUSD ist relativ hoch und niedrig und es gibt keine Spiele, die so stark sind
Ich weiß nicht.Das ist eine Art von Multi-Variety, also ist es eine Art von Multi-Currency, also ist es eine Art von Multi-Currency, also ist es eine Art von Multi-Currency, also ist es eine Art von Multi-Currency.
Die Erfinder quantifizieren - Kleine TräumeEs ist möglich, aber es ist ein höheres Risiko, also schreibt man tot n = 1.
Die Erfinder quantifizieren - Kleine TräumeJa, weil die Preise der verschiedenen Paare so weit voneinander entfernt sind, dass sie nicht intuitiv dargestellt werden können, müssen sie in Prozent entworfen werden.