Type/to search
8
Follow
1365
Followers
Aktualisierung! Martingale-Strategie für Kryptowährungs-Futures
Discussions
Created 2022-02-07 09:12:36  Updated 2024-12-02 21:32:43
 5
 4319

img

Aktualisierung! Martingale-Strategie für Kryptowährungs-Futures

Als Lehrstrategie bietet es sich natürlich an, gewisse praktische Leistungen zu berücksichtigen. Die „Martin-Strategie für Kryptowährungs-Futures“ wird seit fast einem halben Jahr im Watch-Bereich von FMZ.COM angezeigt. Nach vielen Höhen und Tiefen stellt man fest, dass Martin- und Grid-Strategien ihre Risiken und Mängel haben und konservative Parameter nicht bedeuten, dass sie nicht verwendet werden können.

  • Binance Futures Live

    img

  • Livestream von dYdX

    img

Herr Meng garantiert, dass zur „Herstellung“ der Renditekurve (manueller Hundekopf) absolut keine Aufladung erforderlich ist.

Allerdings war die erste Version des Strategieentwurfs ziemlich grob. Auf der Schnittstelle gab es nur eine Ausgabe der Positions- und Gesamtkapitaldaten und die Renditekurve druckte nur den realisierten Gewinn und Verlust aus, ohne den schwebenden Verlust zu berücksichtigen. Viele Studienanfänger beschwerten sich darüber und wünschten sich eine Optimierung der Darstellung.

Lassen Sie uns in diesem Artikel diese Strategie, die seit einem halben Jahr in der Praxis angewendet wird, verbessern.

Upgrade-Plan

  • Die Statusleistenanzeige wurde aktualisiert, um aktuelle Positionsinformationen anzuzeigen, anstatt eine Reihe von Daten auszudrucken. Zeigt das aktuelle Gesamteigenkapital, den schwebenden Gewinn und Verlust sowie den tatsächlichen Gewinn und Verlust (Gesamtgewinn und -verlust einschließlich schwebender Gewinne und Verluste) an.
  • Das Marktdiagramm wird angezeigt und die aktuelle Position der ausstehenden Order wird angezeigt.

Die Richtlinienversion vor dem Upgrade wird auf der Hinweisseite der Richtlinie aufgezeichnet.

img

Dies ist auch meine persönliche Entwicklungsgewohnheit. Es ist sehr praktisch, jedes Detail der Strategieentwicklung und -iteration auf FMZ.COM aufzuzeichnen.

Beginnen Sie mit dem Upgrade!
Lassen Sie uns zunächst die Anzeige der „Statusleiste“ optimieren. Studenten, die mit den Entwicklungsdokumenten von FMZ vertraut sind, wissen, dass die Statusleistendaten in FMZ mitLogStatusFunktion. Dann finden wir diesen Einstiegspunkt und beginnen mit der Gestaltung des Codes.

img

Fügen Sie als Nächstes hier einen großen Codeabschnitt hinzu:

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 bisherige RohölLogStatusAusgabe

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

Die Strategie fügt zwei Parameter hinzu:

img

  • showLine-Parameter
    Wenn diese Option aktiviert ist, können Sie die Bibliothek zum Zeichnen von Linien verwenden, um auf der echten Handelsseite den Positionspreis, den Preis der ausstehenden Bestellung und die aktuelle Preiskurve zu zeichnen.

  • Parameter „SpecifyPosField“
    Es wird verwendet, um die ursprünglichen Felder der Positionsinformationen festzulegen, die angezeigt werden müssen, da die Namen der ursprünglichen Datenfelder von Positionen für jede Börse unterschiedlich sind. Daher entwerfen wir hier einen benutzerdefinierten Parameter, um den anzuzeigenden Feldnamen anzugeben.
    Zum Beispiel mein Binance-Echtgeldkonto:

    img

    Ich möchte das Infofeld der Positionsinformationsdaten (die Originaldaten der Börsenschnittstelle) anzeigenunRealizedProfitAttribut, d. h. der nicht realisierte Gewinn und Verlust der Position. Sie können den Parameter „SpecifyPosField“ auf „unRealizedProfit“ setzen. Es wird in der Statusleiste angezeigt.

    Ein derart ähnliches Design ermöglicht es der Strategie, die Ausgabe an nicht einheitliche Daten anzupassen und gibt Benutzern die Möglichkeit, den Ausgabeinhalt individuell anzupassen.

Starten Sie den realen Handel von Binance und dYdX neu, nachdem Sie die Strategie aktualisiert haben

img

img

Sie erkennen auf einen Blick, welche Daten angezeigt werden sollen. Es ist viel bequemer, den Handelsverlauf der Strategie, den aktuellen Positionspreis, Gewinn und Verlust sowie den Preis der ausstehenden Order zu beobachten.
Diese Strategie birgt gewisse Risiken. Bitte legen Sie bestimmte Parameter entsprechend Ihrer eigenen Risikokontrolle fest und tragen Sie Ihre eigenen Gewinne und Verluste. Die Strategie wird nur zu Kommunikationszwecken und zum Lernen offengelegt.

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)