Série de Investimentos Quantitativos Blockchain - Estratégia de Balanço Dinâmico

Autora:Bem-estar, Criado: 2019-03-26 11:52:11, Atualizado:

Original: FMZ Quantwww.fmz.com

O "real stuff" do quantitative trading local de reunião onde você pode realmente beneficiar.

No 1

O mentor de Warren Buffett, Benjamin Graham, uma vez mencionou no livro "O Investidor Inteligente" um modelo de negociação em que ações e títulos são dinamicamente equilibrados.imgEste modelo de negociação é muito simples:

50% dos fundos em mãos são investidos em fundos de ações e os 50% restantes são investidos em fundos de obrigações, ou seja, ações e obrigações representam metade.

Um reequilíbrio das posições de activos baseado em intervalos fixos ou em alterações do mercado restabelece a relação entre os activos de acções e os activos de obrigações a um nível inicial de 1:1.

Esta é toda a lógica de toda a estratégia, incluindo quando comprar e vender, e quanto comprar e vender.

No 2

Neste método, a volatilidade dos fundos de obrigações é na verdade muito pequena, muito inferior à volatilidade das acções, pelo que as obrigações são aqui utilizadas como ancoras de referência, ou seja, utilizam-se obrigações para medir se as acções estão a subir demasiado ou demasiado pouco.

Se o preço da ação subir, o valor de mercado da ação será maior do que o valor de mercado da obrigação. Quando a relação do valor de mercado desses dois exceder o conjunto de um limiar, a posição total será reajustada, a ação será vendida e a obrigação será comprada para que o valor da ação para a relação do valor da obrigação para restaurar ao inicial 1: 1.

Por outro lado, se o preço das ações cair, o valor de mercado das ações será menor do que o valor de mercado da obrigação. Quando a relação do valor de mercado destas duas exceder o conjunto de um limiar, a posição total será reajustada, a ação será comprada e a obrigação será vendida para fazer a relação de capitalização de mercado do valor da obrigação para o valor da ação para restaurar o inicial 1: 1.imgDesta forma, a relação entre o equilíbrio dinâmico de ações e títulos é suficiente para desfrutar do lucro do crescimento das ações e reduzir a volatilidade dos ativos.

Uma vez que esta é uma estratégia completa e mútua, por que não a usamos no mercado de criptomoedas?

No 3

Atividades Blockchain Estratégia de Balanço Dinâmico em BTC

Estratégia lógica

De acordo com o valor atual do BTC, o saldo da conta é mantido em US $ 6400 em dinheiro e 1 BTC, ou seja, a relação inicial de dinheiro para o valor de mercado do BTC é de 1: 1.

Se o preço do BTC subir para $7400, ou seja, o valor de mercado do BTC é maior que o saldo da conta, e a diferença entre eles excede o limite estabelecido, então (7400-6400)/7400/2 moedas são vendidas.

Se o preço do BTC cair para $5400, ou seja, o valor de mercado do BTC é menor do que o saldo da conta e a diferença entre eles excede o limite definido, compre (6400-5400)/5400/2 moedas.

Desta forma, independentemente de o BTC ser apreciado ou depreciado, o saldo da conta e o valor de mercado do BTC são sempre mantidos dinamicamente iguais.

No 4

Então, como é que se implementa com código de programação?

Tomemos como exemplo a plataforma de negociação quantitativa 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
    }
}

Toda a estrutura da estratégia é realmente muito simples, uma função main, uma função onTick de colocação de ordens, uma função CancelPendingOrders e os parâmetros necessários.

No 5

Modulo de encomenda

// 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
}

A lógica da transação de encomenda é clara, e todos os comentários foram escritos no código.

O processo principal é o seguinte:

Obtenha informações da conta.

Obtenha os dados do Tick.

Calcular a diferença entre os preços de venda e os preços de venda dos dados Tick.

Calcular o saldo da conta e o diferencial do valor de mercado do BTC.

Calcular a condição de desencadeamento da negociação, preço da ordem e quantidade da ordem.

Faça uma encomenda e devolva a verdade.

NO.6

Cancelar o módulo de ordem pendente

// 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
            }
        }
    }
}

O módulo cancelar ordem pendente é ainda mais simples, os passos são os seguintes:

Espere 1 segundo antes de retirar a ordem, porque algumas casas de câmbio podem ter atrasos no servidor.

Continue a obter uma matriz de ordens não executadas, e se uma exceção for devolvida, continue tentando até que seja bem sucedida.

Se a matriz de ordens não executadas estiver vazia, ela devolverá o status de retirada imediatamente.

Se houver ordens não executadas, a matriz inteira é atravessada e a ordem é retirada de acordo com o ID da ordem.

NO.7

Esta estratégia é todo código fonte de programaçãoimg imgNa plataforma de negociação quantitativa FMZ, com apenas 80 linhas de código, uma estratégia completa de equilíbrio dinâmico BTC blockchain foi construída com sucesso.

No. 8

Em seguida, vamos testar esta simples estratégia de equilíbrio dinâmico para ver se funciona.

Ambiente de ensaio de retrocessoimgDesempenho dos testes de regressoimgCurva do ensaio retrôimgOutro, o mesmo período gráfico de preços BTCimgHá algum choque para ti?

O BTC continuou seu declínio de oito meses, e mesmo o maior declínio ultrapassou 70%, o que fez com que muitos investidores perdessem a confiança nos ativos blockchain.

A receita cumulativa desta estratégia é tão alta quanto 160%, e a taxa de retorno ao risco anuada excede 5. Para uma estratégia de negociação tão simples, esse retorno sobre o investimento excedeu a maioria dos tipos de jogadores All-in.

NO.9

Esta estratégia de equilíbrio, com apenas um parâmetro central (valor limiar), é um método de investimento muito simples que não procura rendimentos excessivos, mas sólidos lucros.

Ao contrário da estratégia de tendência, a estratégia de equilíbrio dinâmico é contra a tendência. Esta estratégia é reduzir a posição e arrefecer quando o mercado está muito quente. Quando o mercado está deserto, ele será escondido, o que é semelhante à regulação macroeconômica.

De facto, a estratégia de balanço dinâmico baseia-se na ideia de que o preço é imprevisível, ao mesmo tempo em que capta as flutuações de preços.

Em vista da extensão do artigo, é impossível que um artigo seja abrangente sobre tudo. Como diz um velho ditado Dê a um homem um peixe e você o alimenta por um dia. Ensine a um homem a pescar e você o alimenta por toda a vida.. A coisa mais importante sobre a estratégia de equilíbrio dinâmico é a ideia de investimento. Você pode até substituir os ativos individuais de BTC neste artigo por uma cesta de carteiras de ativos blockchain.imgFinalmente, vamos terminar este artigo com um parágrafo do famoso livro de Benjamin Graham <>:

O mercado de ações não é um "peso" que mede com precisão o valor. Pelo contrário, é uma "máquina de votação". As decisões tomadas por inúmeras pessoas são um dopante racional e emocional. Há muitas vezes em que essas escolhas são feitas. Está longe do julgamento de valor da razão. O segredo do investimento é investir quando os preços são muito mais baixos do que o valor intrínseco e acreditar que as tendências do mercado vão aumentar.

  • Benjamin Graham

Para copiar diretamente o código fonte, visite o nosso quadrado de estratégia em:https://www.fmz.com/strategy/110900

Há muitas estratégias que podes estudar, baixar, alugar ou comprar.

NO.10

Sobre nós

A razão para operar este site é mudar o estado actual do mundo do comércio quantitativo, onde falta o "real stuff", onde há muitos fraudes e apenas comunicações profundas, e criar uma plataforma de aprendizagem e comunicação quantitativa mais pura.www.fmz.com)

Se você acha que este artigo é útil para você, por favor, envie-o para seu amigo e apoie-nos.

Contacte-nos

Telegram: FMZ Quant

Email:henry@fmz.com

Página Web:www.fmz.com


Mais.