Type/to search
8
Follow
1365
Followers
mise à niveau! Stratégie Martingale pour les contrats à terme sur cryptomonnaies
Discussions
Created 2022-02-07 09:12:36  Updated 2024-12-02 21:32:43
 5
 4319

img

mise à niveau! Stratégie Martingale pour les contrats à terme sur cryptomonnaies

En tant que stratégie d’enseignement, il est bien sûr préférable de prendre en compte certaines performances pratiques. La « Stratégie Martin pour les contrats à terme sur crypto-monnaies » est affichée dans la section Watch de FMZ.COM depuis près de six mois. Après avoir traversé de nombreux hauts et bas, on constate que les stratégies de Martin et de grille comportent leurs risques et leurs défauts, et les paramètres conservateurs ne signifient pas qu'ils ne peuvent pas être utilisés.

  • Binance Futures en direct

    img

  • dYdX en direct

    img

M. Meng garantit qu'il n'y a absolument aucune recharge pour « fabriquer » la courbe de rendement (tête de chien manuelle).

Cependant, la première version de la stratégie était plutôt rudimentaire. L'interface ne comportait qu'une seule sortie de données sur les positions et les capitaux propres totaux, et la courbe de rendement n'imprimait que les profits et pertes réalisés, sans tenir compte de la perte flottante. De nombreux nouveaux étudiants s'en sont plaints et ont demandé que l'affichage soit optimisé.

Dans cet article, nous allons mettre à niveau cette stratégie qui est utilisée dans la pratique depuis six mois.

Plan de mise à niveau

  • Mise à jour de l'affichage de la barre d'état pour afficher les informations de position actuelle au lieu d'imprimer un tas de données. Affiche le total actuel des capitaux propres, le résultat flottant et le résultat réel (résultat total incluant le résultat flottant)
  • Le graphique du marché s'affiche et la position actuelle de la commande en attente s'affiche.

La version de la politique avant la mise à niveau est enregistrée dans la page Notes de la politique.

img

C'est aussi mon habitude de développement personnel. Il est très pratique d'enregistrer chaque détail du développement et de l'itération de la stratégie sur FMZ.COM.

Commencez la mise à niveau !
Tout d'abord, optimisons l'affichage de la « barre d'état ». Les étudiants qui connaissent les documents de développement FMZ savent que les données de la barre d'état sont affichées sur FMZ à l'aide deLogStatusfonction. Ensuite, nous trouvons ce point d’entrée et commençons à concevoir le code.

img

Ensuite, ajoutez un gros morceau de code 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) + "`")

Remplacer le brut précédentLogStatusSortir

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

La stratégie ajoute 2 paramètres :

img

  • Paramètres de showLine
    Si cette case est cochée, vous pouvez utiliser la bibliothèque de dessins au trait pour dessiner sur la page de trading réelle, en dessinant le prix de la position, le prix de l'ordre en attente et la courbe de prix actuelle.

  • Paramètre SpecifyPosField
    Il est utilisé pour définir les champs d'origine des informations de position qui doivent être affichées, car les noms des champs de données d'origine des positions sont différents pour chaque bourse. Nous concevons donc ici un paramètre personnalisé pour spécifier le nom du champ à afficher.
    Par exemple, mon compte réel Binance :

    img

    Je souhaite afficher le champ Info des données d'informations de position (les données d'origine de l'interface d'échange)unRealizedProfitAttribut, c'est-à-dire le profit et la perte non réalisés de la position. Vous pouvez définir le paramètre SpecifyPosField sur unRealizedProfit. Il sera affiché dans la barre d'état.

    Une conception aussi similaire permet à la stratégie d’adapter la sortie à des données non uniformes, donnant aux utilisateurs la possibilité de personnaliser le contenu de la sortie.

Redémarrez le trading réel de Binance et dYdX après la mise à niveau de la stratégie

img

img

Vous pouvez voir que les données à afficher sont claires en un coup d’œil. Il est beaucoup plus pratique d’observer la progression des échanges de la stratégie, le prix de la position actuelle, les profits et les pertes et le prix de l’ordre en attente.
Cette stratégie comporte certains risques. Veuillez définir des paramètres spécifiques en fonction de votre propre contrôle des risques et assumer vos propres profits et pertes. La stratégie est divulguée uniquement à des fins de communication et d’apprentissage.

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)