Серия количественных инвестиций в блокчейн - Стратегия динамического баланса

Автор:Доброта, Создано: 2019-03-26 11:52:11, Обновлено:

Оригинал: FMZ Quantwww.fmz.com

"Настоящие вещи" количественной торговли - это место, где вы действительно можете извлечь выгоду.

Номер 1

Ментор Уоррена Баффетта, Бенджамин Грэм, однажды упомянул в книге "Умный инвестор" торговую модель, в которой акции и облигации динамически балансируются.imgЭта торговая модель очень проста:

50% средств в руках инвестируются в фонды акций, а оставшиеся 50% инвестируются в фонды облигаций, то есть акции и облигации составляют половину каждого.

Ребалансировка позиции активов, основанная на фиксированных интервалах или изменениях рынка, восстанавливает соотношение акций к облигациям до первоначального уровня 1:1.

Это вся логика всей стратегии, включая когда покупать и продавать, и сколько покупать и продавать.

Номер 2

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

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

Напротив, если цена акций падает, рыночная стоимость акций будет меньше рыночной стоимости облигации. Когда соотношение рыночной стоимости этих двух превышает установленный порог, общая позиция будет скорректирована, акции будут куплены, и облигации будут проданы, чтобы соотношение рыночной капитализации стоимости облигации к стоимости акций восстановилось до первоначального 1: 1.imgТаким образом, соотношение между динамическим балансом акций и облигаций достаточно, чтобы наслаждаться прибылью от роста акций и уменьшить волатильность активов.

Поскольку это полная и взаимная стратегия, почему бы нам не использовать ее на рынке криптовалют?

No 3

Стратегия динамического баланса блокчейн-активов в BTC

Логика стратегии

Согласно текущей стоимости BTC, баланс счета сохраняется на уровне $6400 наличных и 1 BTC, то есть первоначальное соотношение наличности к рыночной стоимости BTC составляет 1:1.

Если цена BTC поднимается до $7400, то есть рыночная стоимость BTC больше баланса счета, и разница между ними превышает установленный порог, то продаются монеты (7400-6400)/7400/2. Это означает, что BTC подорожала, и нам нужно обменять наличные обратно.

Если цена BTC падает до $5400, то есть рыночная стоимость BTC меньше баланса счета и разница между ними превышает установленный порог, покупаем (6400-5400)/5400/2 монеты. Это означает, что BTC обесценился, и нам нужно купить BTC обратно.

Таким образом, независимо от того, ценится BTC или обесценивается, баланс счета и рыночная стоимость BTC всегда сохраняются динамически равными.

No 4

Как это реализовать с помощью программного кода?

Возьмем, к примеру, платформу количественной торговли FMZ.

// strategy parameter
var threshold = 0.05; // Threshold
var LoopInterval = 60; // Polling interval(seconds)
var MinStock = 0.001; // Minimum transaction volume
var XPrecision = 4; // Quantity accuracy
var ZPrecision = 8; // Price accuracy

// Withdrawal order function
function CancelPendingOrders() {

}

// Placing Order function
function onTick() {

}

// Main function
function main() {
    // Filter non-critical information
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // Polling mode
        if (onTick()) { // Execute the onTick function
            CancelPendingOrders(); // Cancel unexecuted pending orders
        }
        Sleep(LoopInterval * 1000); // Sleep
    }
}

Вся структура стратегии на самом деле очень проста: main функция, onTick функция размещения заказов, CancelPendingOrders функция и необходимые параметры.

No 5

Модуль заказов

// Placing Order function
function onTick() {
    var acc = _C(exchange.GetAccount); // Get account information
    var ticker = _C(exchange.GetTicker); // Get Tick data
    var spread = ticker.Sell - ticker.Buy; // Get the bid-ask spread of Tick data
    // 0.5 times the difference between the account balance and the current position value
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / Account Balance
    LogStatus('ratio:', ratio, _D()); // Print ratio and current time
    if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
        return false; // return false
    }
    if (ratio > 0) { // If ratio is greater than 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
        if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Buy order
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
        if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell order
    }
    return true; // return true
}

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

Основной процесс следующий:

Получи информацию о счете.

Получи данные от Тика.

Вычислить разницу между спросом и предложением данных Tick.

Вычислить баланс счета и спред рыночной стоимости BTC.

Вычислить условие запуска торговли, цену заказа и количество заказа.

Закажите и верните.

No 6

Отменить модуль ожидания заказа

// Withdrawal order function
function CancelPendingOrders() {
    Sleep(1000); // Sleep 1 second
    var ret = false;
    while (true) {
        var orders = null;
        // Continue to get an array of unexecuted orders, if an exception is returned, continue to get
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // Sleep 1 second
        }
        if (orders.length == 0) { // If the order array is empty
            return ret; // Return to withdrawal status
        }
        for (var j = 0; j < orders.length; j++) { // Traversing the array of unexecuted orders
            exchange.CancelOrder(orders[j].Id); // Cancel unexecuted orders one by one
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // Sleep 1 second
            }
        }
    }
}

Модуль отмены ожидания заказа еще проще, шаги следующие:

Подождите одну секунду, прежде чем отозвать заказ, потому что некоторые биржи могут иметь задержки сервера.

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

Если массив неисполненных заказов пуст, он немедленно возвращает статус вывода.

Если есть неисполненные заказы, весь массив пересекается и заказ отзывается в соответствии с идентификатором заказа.

NO.7

Эта стратегия - это весь исходный код программирования.img imgНа квантитативной торговой платформе FMZ, всего с 80 строк кода, была успешно построена полная стратегия динамического балансирования блокчейна BTC.

Номер 8

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

Окружающая среда для обратного тестированияimgРезультаты обратных испытанийimgКривая обратного испытанияimgЕще один, график цен на BTC за тот же период.imgУ вас шок?

BTC продолжает свой восьмимесячный спад, и даже самое большое падение превысило 70%, что привело к тому, что многие инвесторы потеряли доверие к активам блокчейна.

Совокупный доход этой стратегии составляет до 160%, а годовое отношение возврата к риску превышает 5. Для такой простой торговой стратегии эта доходность от инвестиций превышает большинство игроков типа "все в".

NO.9

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

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

По сути, стратегия динамического баланса основана на идее, что цена непредсказуема, в то же время отражая колебания цен.

Учитывая длину статьи, невозможно, чтобы статья была всеобъемлющей. Как говорится в старой поговорке Дай человеку рыбу и ты накормишь его на день. Научи человека ловить рыбу и ты накормишь его на всю жизнь.. Самое важное в динамической стратегии баланса - это инвестиционная идея. Вы даже можете заменить отдельные активы BTC в этой статье корзиной портфелей активов блокчейна.imgНаконец, давайте закончим эту статью абзацем из знаменитой книги Бенджамина Грэма <<Интеллигентный инвестор>>:

Фондовый рынок - это не веситель, который точно измеряет стоимость. Наоборот, это машина для голосования. Решения, принимаемые бесчисленными людьми, являются рациональным и эмоциональным допиантом. Есть много случаев, когда эти выборы делаются. Это далеко от суждения о стоимости разума. Секрет инвестирования заключается в том, чтобы инвестировать, когда цены намного ниже внутренней стоимости, и верить, что рыночные тенденции вырастут.

  • Бенджамин Грэм

Для непосредственного копирования исходного кода, пожалуйста, посетите наш стратегический квадрат на:https://www.fmz.com/strategy/110900

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

NO.10

о нас

Причина работы этого веб-сайта заключается в том, чтобы изменить нынешний статус количественного мира торговли, где не хватает реальных вещей, где много мошенничества и едва глубокая коммуникация, и создать более чистую платформу для обучения и коммуникации количественного торговли.www.fmz.com)

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

Свяжитесь с нами

Телеграмма: FMZ Quant

Электронная почта:henry@fmz.com

Сайт:www.fmz.com


Больше