En los primeros artículos, aprendí muchos conceptos básicos del círculo de criptomonedas, así como el comercio programático y cuantitativo. Finalmente, podemos cortar al tema principal y hablar sobre la estrategia en sí. En el artículo, aprenderemos a implementar una estrategia simple. Para [Estrategia de red], los estudiantes que hacen el comercio deben haber oído hablar de él, pero no importa si usted no lo ha hecho.las plataformasEn el caso de las operaciones de negociación de valores, la estrategia más común y más fácil de utilizar es la estrategia de negociación de valores.Estrategia de la redSin embargo, las funciones de la estrategia de red y los detalles proporcionados por cada plataforma son diferentes.
Entonces, algunos estudiantes podrían decir: ¡No puedo escribir códigos! ¡Los códigos me hacen ansioso!
Eso es cierto. es de hecho bastante difícil para los estudiantes que no se especializan en software de computadora y no han estado involucrados 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 de acoplamiento de la interfaz de la plataforma (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 usted tiene una herramienta muy práctica, será bastante simple, al menos la dificultad se reduce en un 70%.
¿No lo cree? ¡Vamos a intentarlo!
La herramienta que utilizamos es: FMZ Quant Trading Platform (FMZ.COMEl núcleo del diseño de la estrategia de red es en realidad la lógica de la compra y venta de la red, por lo que esto es algo que debe ser aclarado antes de diseñar una estrategia.
Los procedimientos básicos para diseñar una estrategia son los siguientes:
1.Resumen de los requisitos de la estrategia
En pocas palabras, son lo que hará su estrategia, cómo hacerlo y qué funciones tiene. Esa información se puede escribir en un documento (algo así como un cuaderno) antes de escribir realmente el código de la estrategia. Es muy simple desarrollar estrategias en FMZ. La plataforma le proporciona soluciones a estos requisitos, y no necesita escribir estos requisitos en algún cuaderno (que no es muy conveniente de administrar). Puede escribir los requisitos de la estrategia directamente en la nota de la estrategia.
Recuerde guardar la estrategia cuando termine de escribir, y luego continuamos escribiendo los requisitos de la estrategia (estos requisitos no son inalterados; puede registrar y desarrollar al mismo tiempo).
XXX_USDT
, como por ejemploBTC_USDT
.2.Construir la estructura de datos de la red:
Para las ideas poco claras, podemos trazar para analizar al principio.
Las cuadrículas pueden construirse en direcciones ascendentes y descendentes desde el punto base, el precio inicial al principio. La llamada cuadrícula se compone de capas de líneas de oferta y líneas de demanda.
Codificación de una función de construcción de la estructura de datos de la red:
function createNet(begin, diff) { // begin and diff are parameters; begin is the initial price, and diff is the grid interval (the interval of the equal difference grid is a price)
var oneSideNums = 10 // The grid generates 10 lines on both upward and downward sides. The above image only shows the situation of generating 2 lines on both sides (A and B on on side; C and D on the other side), and you can imagine the situation of generating 10 lines.
var up = [] // used to store the data structure of the upward "grid lines"
var down = [] // used to store the data structure of the downward "grid lines"
for (var i = 0 ; i < oneSideNums ; i++) { // determine the number of times according to the number of oneSideNums; construct the "grid line" data structure by loop
var upObj = { // construct the data structure of a upward "grid line"
buy : false, // buy mark; the initial mark is false, which means no buying
sell : false, // sell mark ...
price : begin + diff / 2 + i * diff, // the price position represented by the "grid line", which can be observed and processed according to the loop; the price position is getting higher successively
}
up.push(upObj) // put the constructed "grid line" data structure into the up array
var j = (oneSideNums - 1) - i // when in the loop, j changes from 9 to 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) // put the constructed "grid line" data structure into the down array
}
return down.concat(up) // add "up" after "down", forming a grid array structure with grid line prices from low to high
}
La herramienta de depuración en FMZ o el sistema de prueba posterior son muy convenientes para depurar este tipo de códigos cortos.
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 initial price, the first line goes up is from 105, and the interval is 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}
]
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 también es muy simple. Ya lo hemos dibujado en la imagen anterior. Comprar significa cruzar una cierta línea hacia abajo, y vender significa cruzar una cierta línea hacia arriba. Entonces, ¿cómo expresar el cruce ascendente y descendente? También es muy simple, solo necesitamos comparar las posiciones de precios de dos momentos para juzgar.
Voy a mostrarles por la imagen anterior.
1 es un tiempo, t2 es un tiempo después de t1; para juzgar si la recta C está cruzada o no, sólo tenemos que juzgarP1 < C
yP2 > C
¿ Qué pasa?
De la misma manera, para juzgar si la línea B está cruzada hacia abajo, sólo tenemos que juzgarP1 > B
yP3 < B
¿ Qué pasa?
En ese momento, sólo tenemos que cruzar cada línea en la matriz de la cuadrícula (la travesía se dice comúnmenteRevisando uno por uno¿Es muy simple?
He captado la acción del precio ascendente y descendente. ¿Puedo realizar una orden cuando estas acciones se activen?
Obviamente no es posible. Si el precio sube y baja repetidamente en una línea, ¿no desperdiciaría la tarifa de manejo para operaciones repetidas al mismo precio? Por lo tanto, todavía hay una serie de condiciones de juicio después de desencadenar el upcross y downcross, lo que requiere el uso de la marca de compra / venta en la estructura de datos de línea de cuadrícula que acabamos de construir (por ejemplo: {
Gracias por leer, y continuemos la explicación y el estudio en el siguiente artículo.