Фьючерсы на криптовалюты Мартингейл стратегия

Автор:Нинабадасс., Создано: 2022-04-06 17:38:39, Обновлено: 2022-04-07 09:26:16

Фьючерсы на криптовалюты Мартингейл стратегия

В качестве учебной стратегии лучше всего учитывать практику. Криптовалютные фьючерсы Мартингейл Стратегия также была показана в разделе Live FMZ.COM в течение полугода.

  • Бот Binance Futures

Upgrade! Cryptocurrency Futures Martingale Strategy

  • Бот dYdX

Upgrade! Cryptocurrency Futures Martingale Strategy

Я всегда гарантирую, что нет абсолютно никакой подзарядки для создания кривой доходности.

Это просто потому, что дизайн стратегии первой версии относительно простой и грубый. Есть только одна позиция и экспорт данных об общем капитале на интерфейсе. Кривая прибыли печатает только реализованную прибыль и убытки, и не считает плавающий убыток. Многие новые студенты жаловались и просили оптимизировать отображение.

В этой статье я буду работать с вами, чтобы обновить стратегию, которая была стабильной и практичной в течение полугода.

План модернизации

  • Полоса состояния обновляется для отображения информации о текущей позиции, а не массы данных, которые распечатываются. отображает текущий общий капитал, плавающую прибыль и убыток и фактическую прибыль и убыток (общая прибыль и убыток, которые были включены в плавающую прибыль и убыток)
  • Показана графика рынка и текущая позиция ожидаемых заказов.

Версия стратегии до обновления записывается на странице "Примечание" к стратегии.

Upgrade! Cryptocurrency Futures Martingale Strategy

Это тоже моя личная привычка, очень удобно записывать каждый момент разработки стратегии на FMZ.COM.

Начинайте обновлять!

Во-первых, давайте оптимизируем дисплей status bar.LogStatusФункция используется для отображения данных строки состояния на FMZ. Затем мы находим эту точку входа и начинаем проектировать код.

Upgrade! Cryptocurrency Futures Martingale Strategy

Далее добавьте большой кусок кода:

                    var tblPos = {
                        "type" : "table",
                        "title" : "position",
                        "cols" : ["position amount", "position direction", "position average price", "position profit and loss", "contract code", "custom feild / " + SpecifyPosField],
                        "rows" : []
                    }
                    var descType = ["long position", "short position"]
                    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" : "data",
                        "cols" : ["current total equity", "actual profit and loss", "current price", "buy order price/amount", "sell order price/amount"],
                        "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)])
                    
                    // Update the chart data             
                    if (t && showLine) {
                        _.each(pos, function(p) {
                            $.PlotLine(descType[p.Type] + "position price", p.Price)
                        })
                        $.PlotLine("buy order price", buyOrder.Price)
                        $.PlotLine("sell order price", sellOrder.Price)
                        $.PlotLine("current price", t.Last)
                    }
                    
                    // Update the status bar data 
                    LogStatus("time:" + _D() + "\n" + "`" + JSON.stringify(tblPos) + "`" + "\n" + "`" + JSON.stringify(tbl) + "`")

Заменить предыдущий грубыйLogStatus export.

LogStatus(_D(), "Current total equity:", currTotalEq, "position:", pos)

В стратегию были добавлены два параметра:

Upgrade! Cryptocurrency Futures Martingale Strategy

  • показывай Проверьте это, и вы можете использовать библиотеку чертежей линий, чтобы нарисовать на странице бота, и нарисовать цену позиции, цену ожидания и текущие кривые цены.

  • УказатьПоле Он используется для настройки сырого поля информации о местоположении, которое необходимо отобразить, потому что название сырого поля данных о местоположении каждой платформы отличается. Например, мой бот Binance:

Upgrade! Cryptocurrency Futures Martingale Strategy

Я хочу показатьunRealizedProfitВы можете установить параметр SpecifyPosField на unRealizedProfit и отобразить его в строке состояния.

Такая аналогичная конструкция позволяет стратегии адаптивно экспортировать неравномерные данные, предоставляя пользователям возможность настраивать экспортный контент.

Перезапустить ботов Binance и dYdX после обновления стратегии

Upgrade! Cryptocurrency Futures Martingale Strategy

Upgrade! Cryptocurrency Futures Martingale Strategy

Вы можете увидеть данные, которые необходимо отобразить на один взгляд. гораздо удобнее наблюдать за ходом торговли стратегии, текущей ценой позиции, прибылью и убытком, и ценой ордера. Стратегия имеет определенные риски, и бот будет устанавливать конкретные параметры в соответствии со своим собственным контролем рисков, и нести ответственность за свои собственные прибыли и убытки.


Больше информации