Type/to search
8
Follow
1365
Followers
アップグレード!暗号通貨先物におけるマーチンゲール戦略
Discussions
Created 2022-02-07 09:12:36  Updated 2024-12-02 21:32:43
 5
 4319

img

アップグレード!暗号通貨先物におけるマーチンゲール戦略

指導戦略としては、もちろん、特定の実践的なパフォーマンスを考慮するのが最善です。 「暗号通貨先物のためのマーティン戦略」は、FMZ.COMウォッチセクションに約半年にわたって掲載されてきました。多くの浮き沈みを経て、マーティン戦略とグリッド戦略にはリスクと欠点があり、保守的なパラメータだからといって使用できないわけではないことがわかりました。

  • Binance先物ライブ

    img

  • dYdXライブ

    img

孟氏は、利回り曲線を「製造」するための再充電は絶対に行われないことを保証しています(手動ドッグヘッド)。

しかし、戦略設計の最初のバージョンはかなり粗雑なものでした。インターフェースにはポジションと総株式データの出力が 1 つしかなく、利回り曲線には浮動損失を考慮せずに実現損益のみが出力されていました。多くの新入生がこれに不満を述べ、表示を最適化するよう求めました。

今回は、半年ほど実践してきたこの戦略をバージョンアップしていきましょう。

アップグレードプラン

  • ステータス バーの表示を更新し、大量のデータを印刷するのではなく、現在の位置情報を表示するようにしました。現在の総資本、浮動損益、実損益(浮動損益を含む総損益)を表示します。
  • マーケットチャートが表示され、現在の保留注文のポジションが表示されます。

アップグレード前のポリシー バージョンは、ポリシーの「メモ」ページに記録されます。

img

これは私の個人的な開発習慣でもあります。戦略開発と反復のあらゆる詳細を FMZ.COM に記録しておくと非常に便利です。

アップグレードを開始してください!
まず、「ステータスバー」の表示を最適化しましょう。FMZ開発ドキュメントに精通している学生は、ステータスバーのデータがFMZで次のように表示されることを知っています。LogStatus関数。次に、このエントリ ポイントを見つけて、コードの設計を開始します。

img

次に、ここに大きなコードを追加します。

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

以前の原油を置き換えるLogStatus出力

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

この戦略では 2 つのパラメータが追加されます。

img

  • showLineパラメータ
    チェックすると、線描画ライブラリを使用して実際の取引ページに描画し、ポジション価格、保留注文価格、現在の価格曲線を描画できます。

  • SpecifyPosFieldパラメータ
    ポジションの元データフィールドの名前は取引所ごとに異なるため、表示する必要があるポジション情報の元フィールドを設定するために使用されます。そこで、ここでは、表示するフィールド名を指定するためのカスタマイズされたパラメータを設計します。
    たとえば、私の Binance リアルアカウント:

    img

    位置情報データ(交換インターフェースの元データ)のInfoフィールドを表示したいunRealizedProfit属性、つまりポジションの未実現損益。パラメータSpecifyPosFieldをunRealizedProfitに設定できます。ステータスバーに表示されます。

    このような類似した設計により、この戦略では出力を非均一なデータに適応させることができ、ユーザーは出力コンテンツをカスタマイズするオプションが得られます。

戦略をアップグレードした後、BinanceとdYdXの実際の取引を再開します

img

img

表示すべきデータが一目でわかるようになります。戦略の取引の進行状況、現在のポジション価格、損益、保留中の注文価格を観察することがはるかに便利です。
この戦略には一定のリスクが伴います。ご自身のリスク管理に応じて具体的なパラメータを設定し、損益はご自身で負担してください。この戦略はコミュニケーションと学習のためだけに公開されます。

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)