En la carga de los recursos... Cargando...

Comercio cuantitativo de criptomonedas para principiantes - acercándote a la criptomoneda cuantitativa (4)

El autor:FMZ~Lydia, Creado: 2022-07-29 16:32:47, Actualizado: 2023-09-21 21:05:29

img

Comercio cuantitativo de criptomonedas para principiantes - acercándote a la criptomoneda cuantitativa (4)

En los artículos anteriores, hemos aprendido los conceptos básicos de muchas criptomonedas, programación y comercio cuantitativo. Finalmente, podemos pasar al tema y hablar sobre la estrategia en sí. En este artículo, aprenderemos a implementar una estrategia simple juntos. Para Grid Strategy, alguien que haya hecho trading cuantitativo debería haber oído hablar de él, pero no importa si no lo ha hecho.intercambiosEn el caso de las empresas que se encuentran en una situación de crisis, la estrategia más fácil de utilizar es la estrategia de negociación de valores.estrategia de redSin embargo, las funciones de la estrategia de red y los detalles proporcionados por cada intercambio son diferentes, ya que planeamos pasar al comercio cuantitativo de criptomonedas, ¿por qué no implementamos una estrategia de red por nosotros mismos?

En este momento, alguien puede haber dicho: ¡No puedo escribir código! ¡Me dolía la cabeza cuando veía el código!

Eso es cierto. es de hecho bastante difícil para alguien que no es importante en software informático o no ha estado involucrado en el trabajo de programación para desarrollar una estrategia de comercio completa por sí mismos. porque usted tiene que hacer una serie de pre-trabajo desde el principio de acoplamiento de la interfaz de intercambio (tal vez su programa de lógica de comercio es sólo 100 líneas, pero el otro trabajo de codificación a hacer es bastante mucho, y es más difícil que escribir la lógica de comercio.)

En este momento, si tiene una herramienta práctica, es bastante simple, al menos la dificultad se reduce en un 70%. Puede imaginar lo conveniente y rápido que es si solo escribe la lógica de negociación en sí, y todas las demás conexiones de interfaz de intercambio, verificación de firmas, archivos de configuración, construcción de entorno operativo, escritura de interfaz de interfaz de usuario, escritura interactiva y así sucesivamente están todos listos.

¿No lo cree? ¡Vamos a probarlo!

Implementar una estrategia de red de puntos simple

La herramienta que utilizamos es: FMZ Quant Trading Platform (FMZ.COMEl núcleo del diseño de la estrategia de red en realidad es la lógica de la red de compra y venta, por lo que esto es algo que debe ser aclarado antes de diseñar una estrategia.

El siguiente es el flujo básico de diseño de una estrategia:

    1. Resumen de las necesidades estratégicas

    En pocas palabras, es lo que, cómo y qué funciones va a hacer su estrategia. Esta información se puede escribir en un documento (cuaderno de notas o algo así) antes de escribir el código de la estrategia. Es muy simple desarrollar estrategias en FMZ, La plataforma ha preparado soluciones para estos requisitos para usted, y no necesito escribir estos requisitos en un cuaderno de notas (que no es muy conveniente de administrar). Escribo los requisitos de la estrategia en las notas de estrategia directamente.

    img

    Sólo recuerde guardar la estrategia después de terminar, y luego escribiremos los requisitos de la estrategia (los requisitos de la estrategia no son estáticos, y también es posible registrar mientras se desarrolla).

    • La estrategia está diseñada como una estrategia de negociación al contado con el par de operacionesXXX_USDT, como por ejemploBTC_USDT.
    • La cuadrícula está diseñada para estar igualmente espaciada, lo que simplemente significa que la distancia entre dos puntos adyacentes en la cuadrícula es una extensión fija.
    • La red está diseñada como una red infinita que puede expandirse infinitamente.
    • Utilizar órdenes de mercado para la colocación de órdenes.
    1. Construir la estructura de datos de la red:

    Para ideas poco claras, podemos dibujar y analizar al principio.

    img

    Una cuadrícula puede ser construida en direcciones ascendentes y descendentes desde el precio inicial como punto base. La cuadrícula es una línea de compra y venta capa por capa.

    1. El precio cruzó por encima de la SMA.
    2. El precio cruzó por debajo de la SMA. Cuando el precio cruza por encima de la SMA, significa que el precio está subiendo y necesita ser vendido, y luego esperar a que el precio caiga y comprar para obtener ganancias. Cuando el precio cruza por debajo de la SMA, significa que el precio está bajando, necesitas comprarlo, y luego esperar a que el precio suba y venderlo para obtener ganancias. Así que cada línea de cuadrícula tiene dos formas de negociación: comprar y vender. y cada línea de cuadrícula tiene una propiedad inherente, que es el precio marcado por esta línea. un ejemplo es la representación de A / B / C / D en el gráfico. Al diseñar una estrategia, averiguar- ¿ Qué?lo que queremos hacer primero, y luego es fácil hacerlo.

    Escribe una función que construye la estructura de datos de la red:

    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
    }
    

    Puede ejecutar esta función por separado para ver el efecto. [Debugging Tools] o [Backtesting System] en FMZ son muy convenientes para depurar códigos tan pequeños.

    img

    Los datos construidos pueden ser observados.

    [
        {"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. Análisis de la lógica de negociación

    Después de analizar la estructura de datos de la cuadrícula, necesitamos considerar la lógica comercial específica de la estrategia de la cuadrícula. De hecho, la lógica de compra y venta es muy simple. Ya lo hemos dibujado en el gráfico anterior, comprar significa cruzar una cierta línea debajo, y vender significa cruzar una cierta línea arriba. Entonces, ¿cómo se muestra el cruce de arriba y abajo? También es muy simple, solo podemos juzgar comparando las posiciones de precios de dos momentos.

    Todavía usamos la tabla anterior.

    img

t1 es un momento, t2 es un momento después de t1, para juzgar el recorrido por encima de la línea C, sólo tenemos que juzgarP1 < CyP2 > C¿ Qué pasa? Del mismo modo, para juzgar el cruzado por debajo de la línea B, sólo tenemos que determinarP1 > ByP3 < B¿ Qué pasa? En ese momento, sólo tenemos que cruzar (la travesía se conoce comúnmente comoMira uno por uno.) cada línea en la matriz de la cuadrícula, y juzgar si cruzarlo por encima o por debajo. ¿Es simple?

Habiendo captado el cruce de precios por encima y por debajo, ¿es posible realizar una orden cuando se activan estas acciones? Obviamente, no es posible. Si el precio cruza por encima y por debajo repetidamente en una línea, ¿no desperdiciaría la tarifa por trending repetido en el mismo nivel de precio? Por lo tanto, todavía hay una serie de condiciones de juicio para desencadenar el cruce de precios por encima y por debajo, lo que requiere el uso de los marcadores de compra / venta en la estructura de datos de línea de cuadrícula que acabamos de construir (por ejemplo: {buy:false,"sell ":false,price:5}).

Gracias por leer, seguiremos explicándolo y aprendiendo en el próximo número.


Relacionados

Más.