La stratégie de Martin pour les futures de monnaie numérique

Auteur:Le petit rêve, Créé: 2022-02-07 09:12:36, Mis à jour: 2023-09-20 10:11:23

img

La stratégie de Martin pour les futures de monnaie numérique

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

  • Le cours réel des contrats à terme

    img

  • Disque dYdX

    img

Il y a une grande différence entre les deux types de produits, mais il y a une différence entre les deux types de produits.

Cependant, la première version de la stratégie est relativement simple, l'interface ne contient qu'un seul stock, une sortie de données sur les droits d'auteur et les avantages, et la courbe des bénéfices n'est imprimée que pour réaliser des gains et des pertes, sans compter les pertes et les pertes.

Ce billet nous aide à mettre à niveau cette stratégie de stabilité de six mois.

Plan de mise à niveau

  • La barre d'état de mise à niveau affiche des informations sur les avoirs actuels, plutôt que sur un ensemble de données imprimées. Affiche les gains totaux actuels, les gains et pertes flottants, les gains et pertes réels (gains et pertes totaux qui ont été comptabilisés pour les gains et pertes flottants)
  • Le graphique montre la position de l'appelant en cours.

Les versions de la politique avant la mise à niveau sont enregistrées sur la page "Notes" de la politique.

img

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

Commencez la mise à niveau! Tout d'abord, nous avons optimisé la barre d'état pour montrer que les élèves qui connaissent la documentation de développement FMZ savent que les données de la barre d'état sont utilisées pour afficher les données de la barre d'état sur FMZ.LogStatusDonc, nous avons trouvé ce point d'entrée et nous avons commencé à concevoir le code.

img

Il y a une grande partie de code qui est ajoutée ici:

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

Il a remplacé le simpleLogStatusProduit

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

La stratégie a ajouté deux paramètres:

img

  • Paramètres showLine Si vous le souhaitez, vous pouvez utiliser la bibliothèque de lignes graphiques pour dessiner sur la page du disque dur des prix de détention, des prix de soumission, des courbes de prix actuelles.

  • Indiquez le champ PosField Pour définir les champs de données de base de l'information de détention qui doivent être affichés, car les noms des champs de données de base de détention de chaque échange sont différents. Par exemple, mon disque de Bitcoin:

    img

    Je veux afficher les données d'information de stockage dans le champ Info.unRealizedProfitPropriété, le détenteur n'a pas réalisé de profit ou de perte. Vous pouvez définir le paramètre SpecifyPosField comme unRealizedProfit.

    Une conception similaire permettrait aux stratégies d'adapter les sorties à des données non uniformes, en donnant aux utilisateurs la possibilité de personnaliser le contenu des sorties.

Relancer le disque dur de Binance, dYdX après la mise à niveau

img

img

Vous pouvez voir les données à afficher en un coup d'œil. Il est beaucoup plus facile d'observer l'évolution des transactions, les prix actuels, les gains, les pertes et les prix des ordres de vente. Les stratégies comportent un certain risque, le disque réel définit des paramètres de contrôle spécifiques en fonction de ses propres risques, et prend en charge les gains et les pertes.


Relationnée

Plus de

AAA386En somme, n = 1 dans le code source ne semble pas avoir de sens?

Un ermiteJe pense que c'est bien de faire de l'or XAUUSD relativement en plein essor en plein essor il n'y a pas de cercle aussi fort

Je vous en prie.Il y a une variété de devises, le rêve est de faire fonctionner plusieurs monnaies en même temps.

Le petit rêveIl est possible de le concevoir, mais le risque est plus important, alors on écrit n = 1.

Le petit rêveOui, parce que les prix des différentes paires de transactions sont si différents qu'il est impossible de les représenter intuitivement, il faut les concevoir en pourcentage. Si vous voulez continuer à représenter les prix, vous devez définir un paramètre d'arithmétique pour définir les différences de prix de ces différentes variétés séparément.