В процессе загрузки ресурсов... загрузка...

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

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

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

В качестве учебной стратегии лучше всего учитывать практику.FMZ.COMПосле нескольких трудностей, стратегии Мартингейла и сетки имеют свои риски и недостатки, и с консервативно установленными параметрами, они все еще могут быть полезны.

  • Бот Binance Futures

    img

  • Бот dYdX

    img

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

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

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

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

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

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

img

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

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

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

img

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

                    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)

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

img

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

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

    img

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

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

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

img

img

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


Больше