Количественная торговля криптовалютами для новичков - приближение к количественной криптовалюте (4)

Автор:Лидия., Создано: 2022-07-29 16:32:47, Обновлено: 2023-09-21 21:05:29

img

Количественная торговля криптовалютами для новичков - приближение к количественной криптовалюте (4)

В предыдущих статьях мы узнали основные концепции многих криптовалют, программирования и количественной торговли. Наконец, мы можем перейти к теме и поговорить о самой стратегии. В этой статье мы научимся вместе реализовывать простую стратегию. Для Grid Strategy, кто-то, кто занимался количественной торговлей, должен был слышать о ней, но это не имеет значения, если вы этого не сделали.обменыВ то время как многие торговые системы, в том числе и в сфере электронной торговли, уже запустили свои собственные программные и количественные функции торговли, наиболее простой и простой в использовании стратегией являетсяСтратегия сетиТем не менее, функции сетевой стратегии и детали, предоставляемые каждой биржей, отличаются, поскольку мы планируем перейти к количественной торговле криптовалютами, почему бы нам не реализовать сетевую стратегию самостоятельно?

В это время кто-то, возможно, сказал: Я не умею писать код! Мне болит голова, когда я вижу код!

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

На данный момент, если у вас есть удобный инструмент, это довольно просто, по крайней мере, сложность уменьшается на 70%. Вы можете представить, как удобно и быстро это, если вы только написать саму логику торговли, и все остальные обменный интерфейс соединение, проверка подписи, конфигурационные файлы, конструкция операционной среды, UI интерфейс письмо, интерактивная письменность и так далее все готовы.

Не веришь? Давай попробуем!

Использование простой стратегии сетки точек

Инструмент, который мы используем: FMZ Quant Trading Platform (FMZ.COMОсновой разработки стратегии сети является логика покупки и продажи сети, поэтому перед разработкой стратегии необходимо уточнить эту логику.

Ниже приведены основные процессы разработки стратегии:

    1. Резюме стратегических потребностей

    Проще говоря, это то, что, как и какие функции ваша стратегия будет выполнять. Эта информация может быть написана в документе (ноутбук или что-то еще) до того, как вы напишете код стратегии. Разработка стратегий на FMZ очень проста, платформа подготовила решения для этих требований для вас, и мне не нужно писать эти требования в блокнот (что не очень удобно для управления). Я пишу требования стратегии в примечаниях стратегии непосредственно.

    img

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

    • Стратегия разработана как спотовая стратегия торговли с торговой паройXXX_USDT, например:BTC_USDT.
    • Решетка предназначена для равномерного расстояния, что означает, что расстояние между двумя соседними точками решетки является фиксированным распределением.
    • Решетка спроектирована как бесконечная решетка, которую можно бесконечно расширять.
    • Использовать рыночные ордера для размещения заказов.
    1. Создать структуру данных сетки:

    Для неясных идей мы можем рисовать и анализировать в начале.

    img

    Схема может быть построена как в верхнем, так и в нижнем направлениях от начальной цены в качестве базовой точки.

    1. Цена пересекла SMA.
    2. Цена перешла ниже SMA. Когда цена пересекает SMA, это означает, что цена растет и нужно продать, а затем ждать, пока цена упадет и купить, чтобы получить прибыль. Когда цена переходит ниже SMA, это означает, что цена падает, вы должны купить ее, а затем ждать, пока цена поднимется и продать ее, чтобы получить прибыль. Так что каждая линия сетки имеет два способа для торговли: покупка и продажа. и каждая линия сетки имеет свойство, которое является ценой, обозначенной этой линией. При разработке стратегии, выясните- Что?Сначала мы хотим сделать, а потом это легко сделать.

    Напишите функцию, которая строит структуру данных сетки:

    function createNet(begin, diff) {   // begin, diff are parameters, begin is the initial price, diff is the grid spacing (the spacing of the equal difference grid is the price)
        var oneSideNums = 10            // The grid generates 10 bars on the upward and downward sides. The above chart is a side of the generation of 2 bars (AB side, CD side) and the generation of 10 bars, you can imagine them by yourself.
        var up = []                     // Used to store the upward "grid line" data structure
        var down = []                   // Used to store the downward "grid line" data structure
        for (var i = 0 ; i < oneSideNums ; i++) {    // Determine the number of times according to the size of oneSideNums, and construct the "grid line" data structure cyclically
            var upObj = {                            // Construct an upward "gridline" data structure
                buy : false,                         // Buy marker, initial marker is false, meaning no buy
                sell : false,                        // Sell marker ...
                price : begin + diff / 2 + i * diff, // The price level represented by this "grid line" can be observed according to the cycle, and the price level is rising in turn.
            }
            up.push(upObj)                           // The constructed "gridline" data structure is placed into the up array
    
            var j = (oneSideNums - 1) - i            // The change in j during the loop is: 9 ~ 0
            var downObj = {
                buy : false,
                sell : false,
                price : begin - diff / 2 - j * diff,
            }
            if (downObj.price <= 0) {                // The price cannot be less than or equal to 0 
                continue
            }
            down.push(downObj)                       // The constructed "gridline" data structure is placed in down array
        }    
    
        return down.concat(up)                       // Add up after down to form a grid array structure with grid line prices from small to large
    }
    

    Вы можете запустить эту функцию отдельно, чтобы увидеть эффект. [Debugging Tools] или [Backtesting System] на FMZ очень удобны для отладки таких маленьких кодов.

    img

    Конструированные данные можно наблюдать.

    [
        {"buy":false,"sell":false,"price":5},
        {"buy":false,"sell":false,"price":15},
        {"buy":false,"sell":false,"price":25},
        {"buy":false,"sell":false,"price":35},
        {"buy":false,"sell":false,"price":45},
        {"buy":false,"sell":false,"price":55},
        {"buy":false,"sell":false,"price":65},
        {"buy":false,"sell":false,"price":75},
        {"buy":false,"sell":false,"price":85},
        {"buy":false,"sell":false,"price":95},
        {"buy":false,"sell":false,"price":105},  // 100 is the starting price, starting from 105 and going up the first line, with an interval of 10
        {"buy":false,"sell":false,"price":115},  // ... 
        {"buy":false,"sell":false,"price":125},
        {"buy":false,"sell":false,"price":135},
        {"buy":false,"sell":false,"price":145},
        {"buy":false,"sell":false,"price":155},
        {"buy":false,"sell":false,"price":165},
        {"buy":false,"sell":false,"price":175},
        {"buy":false,"sell":false,"price":185},
        {"buy":false,"sell":false,"price":195}
    ]
    
    1. Анализ логики торговли

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

    Все еще использую предыдущую диаграмму.

    img

t1 - это момент, t2 - это момент после t1, чтобы судить о пересеченной выше прямой C, нам нужно только судитьP1 < CиP2 > C- Да. Точно так же, чтобы судить пересеченный ниже линии B, мы должны только определитьP1 > BиP3 < B- Да. В это время нам нужно только пересечь (пересечение обычно называютПосмотрите на них один за другим.) каждую линию в массиве сетки, и решить, пересекать ли ее выше или ниже.

Поймав пересечение цены выше и ниже, можно ли разместить заказ, когда эти действия запускаются? Очевидно, что это невозможно. Если цена пересекается вверх и вниз неоднократно на одной линии, не будет ли это тратить плату за повторяющийся тренд на одном и том же ценовом уровне? Следовательно, все еще существует ряд условий суждения для запуска пересечения цены вверх и вниз, что требует использования маркеров покупки / продажи в структуре данных сетки, которую мы только что построили (например: {buy:false,"sell ":false,price:5}).

Спасибо за чтение, мы продолжим объяснять и учиться в следующем выпуске.


Связанные

Больше