Serie de inversiones cuantitativas de Blockchain - Estrategia de equilibrio dinámico

El autor:La bondad, Creado: 2019-03-26 11:52:11, Actualizado:

Originario: FMZ Quantwww.fmz.com

La "verdadera cosa" del comercio cuantitativo es el lugar de reunión donde realmente se puede beneficiar.

No. 1

El mentor de Warren Buffett, Benjamin Graham, una vez mencionó en el libro <> un modelo de negociación en el que las acciones y los bonos están dinámicamente equilibrados.imgEste modelo comercial es muy simple:

El 50% de los fondos en manos se invierten en fondos de capital, y el 50% restante se invierten en fondos de bonos.

Un reequilibrio de la posición de activos basado en intervalos fijos o cambios de mercado restablece la relación entre los activos de acciones y los activos de bonos a un nivel inicial de 1:1.

Esta es toda la lógica de toda la estrategia, incluyendo cuándo comprar y vender, y cuánto comprar y vender.

No. 2

En este método, la volatilidad de los fondos de bonos es en realidad muy pequeña, muy por debajo de la volatilidad de las acciones, por lo que los bonos se utilizan aquí como "anclajes de referencia", es decir, utilizando bonos para medir si las acciones están aumentando demasiado o demasiado poco.

Si el precio de las acciones aumenta, el valor de mercado de las acciones será mayor que el valor de mercado del bono. Cuando la relación del valor de mercado de estos dos exceda el conjunto de un umbral, la posición total se reajustará, las acciones se venderán y el bono se comprará para que el valor de las acciones al valor del bono se restablezca a la relación inicial de 1: 1.

Por el contrario, si el precio de las acciones cae, el valor de mercado de las acciones será menor que el valor de mercado del bono. Cuando la relación del valor de mercado de estos dos excede el conjunto de un umbral, la posición total se reajustará, se comprará la acción y se venderá el bono para que la relación de capitalización de mercado del valor del bono al valor de las acciones se restablezca a la inicial de 1: 1.imgDe esta manera, la relación entre el equilibrio dinámico de las acciones y los bonos es suficiente para disfrutar de los beneficios del crecimiento de las acciones y reducir la volatilidad de los activos.

Ya que esta es una estrategia completa y mutua, ¿por qué no la usamos en el mercado de criptomonedas?

No. 3

Estrategia de equilibrio dinámico de activos Blockchain en BTC

La lógica de la estrategia

De acuerdo con el valor actual de BTC, el saldo de la cuenta se mantiene en $ 6400 en efectivo y 1 BTC, es decir, la relación inicial de efectivo al valor de mercado de BTC es de 1: 1.

Si el precio del BTC sube a $7400, es decir, el valor de mercado del BTC es mayor que el saldo de la cuenta, y la diferencia entre ellos excede el umbral establecido, entonces se venden monedas (7400-6400)/7400/2.

Si el precio del BTC cae a $ 5400, es decir, el valor de mercado del BTC es menor que el saldo de la cuenta y la diferencia entre ellos excede el umbral establecido, compre (6400-5400) / 5400/2 monedas.

De esta manera, independientemente de si el BTC se aprecia o se deprecia, el saldo de la cuenta y el valor de mercado del BTC siempre se mantienen dinámicamente iguales.

No 4

Entonces, ¿cómo implementarlo con código de programación?

Tomemos como ejemplo la plataforma de comercio cuantitativo 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
    }
}

Todo el marco de la estrategia es en realidad muy simple, una función main, una función onTick de colocación de pedidos, una función CancelPendingOrders y los parámetros necesarios.

No. 5

Módulo de orden

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

La lógica de la transacción del pedido es clara, y todos los comentarios han sido escritos en el código.

El proceso principal es el siguiente:

Obtener información de la cuenta.

Obtenga los datos de Tick.

Calcular el margen de oferta y demanda de los datos de Tick.

Calcular el saldo de la cuenta y el diferencial de valor de mercado de BTC.

Calcular la condición de activación de la negociación, el precio de la orden y la cantidad de la orden.

Ponga un pedido y devuelva verdad.

No.6

Cancelar el módulo de orden pendiente

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

El módulo de cancelación de órdenes pendientes es aún más simple, los pasos son los siguientes:

Espera un segundo antes de retirar el pedido, porque algunas casas de cambio pueden tener retrasos en el servidor.

Continúe obteniendo una serie de órdenes no ejecutadas, y si se devuelve una excepción, siga intentando hasta que tenga éxito.

Si la matriz de órdenes no ejecutadas está vacía, devolverá el estado de retirada inmediatamente.

Si hay órdenes no ejecutadas, toda la matriz se recorre y la orden se retira de acuerdo con el ID de orden.

No 7

Esta estrategia es todo el código fuente de programaciónimg imgEn la plataforma de comercio cuantitativo FMZ, con solo 80 líneas de código, se ha construido con éxito una estrategia completa de balance dinámico de blockchain BTC.

No. 8

A continuación, vamos a probar esta simple estrategia de equilibrio dinámico para ver si funciona.

Entorno de pruebas de retrocesoimgDesempeño de las pruebas de retrocesoimgCurva de ensayo hacia atrásimgOtro, el mismo período gráfico de precios de BTCimg¿Tiene alguna conmoción?

El BTC ha continuado su declive de ocho meses, e incluso la mayor caída ha superado el 70%, lo que ha causado que muchos inversores pierdan la confianza en los activos de blockchain.

El ingreso acumulado de esta estrategia es tan alto como el 160%, y la relación anualizada de retorno al riesgo excede 5.

No 9

Esta estrategia de equilibrio, con un solo parámetro básico (valor umbral), es un método de inversión muy simple que no persigue rendimientos excedentes sino beneficios sólidos.

En contraste con la estrategia de tendencia, la estrategia de equilibrio dinámico es contra la tendencia. Esta estrategia es reducir la posición y enfriarse cuando el mercado está demasiado caliente. Cuando el mercado está desierto, se ocultará, lo que es similar a la regulación macroeconómica.

En efecto, la estrategia de balance dinámico se basa en la idea de que el precio es impredecible y al mismo tiempo captura las fluctuaciones de precios.

En vista de la longitud del artículo, es imposible que un artículo sea exhaustivo sobre todo. Como dice un viejo dicho Dale a un hombre un pez y le darás de comer por un día. Enséñale a un hombre a pescar y le darás de comer por toda la vida.. Lo más importante de la estrategia de balance dinámico es la idea de inversión. Incluso puedes reemplazar los activos individuales de BTC en este artículo con una cesta de carteras de activos blockchain.imgFinalmente, terminemos este artículo con un párrafo del famoso libro de Benjamin Graham <>:

El mercado de valores no es un "medidor de peso" que mide con precisión el valor. Por el contrario, es una "máquina de voto". Las decisiones tomadas por innumerables personas son un dopante racional y emocional. Hay muchas veces cuando se toman estas elecciones. Está lejos del juicio de valor de la razón. El secreto de invertir es invertir cuando los precios son mucho más bajos que el valor intrínseco, y creer que las tendencias del mercado aumentarán.

  • ¿Qué es eso?

Para copiar directamente el código fuente, por favor visite nuestro cuadro de estrategia en:https://www.fmz.com/strategy/110900

Hay muchas estrategias que puedes estudiar, descargar, alquilar o comprar.

NO.10

Sobre nosotros

La razón de la operación de este sitio web es cambiar el estado actual del mundo del comercio cuantitativo donde falta la "materia real", donde hay muchas estafas y apenas comunicaciones profundas, y crear una plataforma de aprendizaje y comunicación de comercio cuantitativo más pura.www.fmz.com)

Su reenvío será la fuerza impulsora para apoyarnos a continuar creando más cosas reales! Si usted siente que este artículo es útil para usted, por favor reenvíelo a su amigo y apoye a nosotros. Compartir también es una especie de sabiduría!

Contacta con nosotros

Telegrama: FMZ Quant

El correo electrónico:henry@fmz.com

Página web:www.fmz.com


Más.