60 строк кода реализуют идею - стратегию контрактного копирования.

Автор:Маленькие мечты, Создано: 2022-03-19 14:37:08, Обновлено: 2023-09-20 09:03:57

img

网格策略、马丁策略这种喜欢震荡行情的策略有其固有弊端,在ETH合约市场上也测试了一段时间的类似策略。也经常和FMZ.COM上的新老玩家们聊天分享经验。对于此类策略,有一点是非常赞同一位朋友的说法的。那就是币圈中做合约,做多相对于做空风险小了那么一丢丢。或者简单说就是下跌最惨就是归零,上涨是无限的。

Так что, Мартин, а может быть, такие стратегии, как просто делать больше, ничего не делать, рисковать распределением переписки в длинном диапазоне лучше, чем делать это в двух направлениях?

基于FMZ.COM迅捷开发

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

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

Источник стратегии:

function cancelAll() {
    while (true) {
        var orders = _C(exchange.GetOrders)
        if (orders.length == 0) { 
            break 
        }
        for (var i = 0 ; i < orders.length ; i++) {
            exchange.CancelOrder(orders[i].Id, orders[i])
            Sleep(interval)
        }
    }
}

function getLong(arr, kind) {
    var ret = null 
    for (var i = 0 ; i < arr.length ; i++) {
        if (arr[i].Type == (kind == "pos" ? PD_LONG : ORDER_TYPE_BUY)) {
            ret = arr[i]
        }
    }
    return ret
}

function pendingBidOrders(firstPrice) {
    var index = 0
    var amount = baseAmount
    while (true) {
        var pos = _C(exchange.GetPosition)
        var price = firstPrice - index * baseSpacing
        amount *= ratio
        index++
        exchange.SetDirection("buy")
        exchange.Buy(price, amount)        
        if (pos.length != 0) {
            var longPos = getLong(pos, "pos")
            if (longPos) {
                exchange.SetDirection("closebuy")
                exchange.Sell(longPos.Price + profitTarget, longPos.Amount)
            }
        }
        while (true) {
            Sleep(interval)
            if (!getLong(_C(exchange.GetOrders), "orders")) {
                cancelAll()
                break
            }
            if (!getLong(_C(exchange.GetPosition), "pos")) {
                cancelAll()
                return 
            }
        }
    }
}

function main() {
    exchange.SetContractType(symbol)
    while (true) {
        pendingBidOrders(_C(exchange.GetTicker).Last)
    }
}

В этом случае вы можете использовать только один из них.

img

Это всего лишь параметры.

Посмотрите на эти десятки строк кода, которые повторяют эффект.

Например, вы можете установить временной диапазон повторной проверки:

img

Проверка выполнена:

img

img

Похоже на сетку, на вкус стратегии типа Мартина. Новые ученики, которые начинают изучать, не боятся длинных стратегий, которые легко отговаривают. Короткие и утонченные стратегии лучше подходят для вступления, легче усваивают стратегические идеи, учатся логическому дизайну.

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


Связанные

Больше

Аль-Аль/upload/asset/1dd6dcfd4579dc0b239a6.jpeg После запуска получается ошибка, а затем постоянно зависает, отключается бесконечный цикл, как это решить

Восемь цифр для мечты.Может быть, эта стратегия работает только в биткоине?

Восемь цифр для мечты.Что означает коэффициент роста позиций?

Восемь цифр для мечты.Почему у нас нет политического адреса?

Маленькие мечтыЕсли на одном сервере работает два диска, частота удваивается, и так далее.

Аль-Аль/upload/asset/1dd36e54848c3bdf8c759.jpeg По логике, параметры, которые я использую, это два раз в минуту, максимум 120 раз в минуту, и это не превышает границы биткоина в 1200 посещений в минуту.

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

Аль-Аль/upload/asset/1dce38677beaf3c7ca065.jpeg Сейчас Binance не может поддерживать политику использования языка Mac, что указывает на то, как использовать веб для обновления в режиме реального времени, чтобы избежать блокировки API.

Маленькие мечтыНе вежливо, только что написал в поддержку FMZ Quantity.

Аль-АльХорошо, спасибо, я знаю.

Маленькие мечтыЗдравствуйте, это учебная стратегия, в основном для объяснения идей, которые можно использовать для выполнения бессрочных контрактов на Биньян, и для выполнения OK необходимо изменить эту стратегию. Причина проблемы в том, что следующая единица является дробильной, OKX требует, чтобы следующая единица была целым контрактом.

Маленькие мечтыВсе они могут работать, то есть с изменениями в параметрах.

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

Маленькие мечтыУстановка на 2 означает, что удвоение класса.