Modulo de visualización para construir estrategias de transacción - progreso

El autor:Un sueño pequeño., Creado: 2019-07-17 10:22:20, Actualizado: 2023-10-24 21:40:50

img

Modulo de visualización para desarrollar estrategias de transacción

Aprender a construir un módulo de visualización es una estrategia de transacción, una comprensión conceptual de cómo construir un módulo de visualización, y una comprensión conceptual de cómo construir un módulo de visualización. Después, es fácil aprender a usar otros módulos. Las funciones más complejas pueden combinarse.

  • Modulo de categorías de transacciones

    En estudios y pruebas anteriores, ya hemos abordado varios módulos de "categorias de transacciones". Por ejemplo: El módulo "Exchanges Acquire Markets" Modulo "Exchanges obtienen K-Line" ¿Qué es esto?

    Los que ya han sido usados no se describen.

    • 1, obtener el número de bolsas

      img

      Cuando se escribe una estrategia para realizar operaciones con robots, se puede agregar más de un objeto de intercambio, como una estrategia de cobertura. O puede ser necesario recorrer (que significa recorrer una vez por cada uno) el objeto de la bolsa, cuando se visita el mercado. En este momento, se necesita un módulo para obtener el número de intercambios.

      Para empezar, podemos imprimir el número de bolsas que están configuradas en la actualidad con una estructura simple:img

      En realidad, es como llamar a este código de la política de JavaScript:

      function main () {
          Log(exchanges.length)
      }
      

      Veamos el resultado de este módulo combinado:img

      Se puede ver que hemos añadido 3 objetos de intercambio que representan tres cuentas de intercambio diferentes, y el resultado de retrospección de los logs es 3.

    • 2. Obtener el nombre de la bolsa

      img

      Cuando se agregan tres objetos de intercambio, el menú desplegable muestra tres opciones. Aprender un módulo de ciclo con anticipación, en el tipo de ciclo.img

      En este artículo, vamos a aprender un módulo de determinación condicional:imgLos criterios de juicio pueden ser:img

      Usamos el módulo circular para recorrer los nombres de las bolsas agregadas. Utiliza el módulo de juicio condicional para determinar si el conteo de ciclos actual corresponde al nombre de la bolsa a imprimir.

      img

      Los resultados de la prueba:img

      Por ejemplo, el código de la política de JavaScript:

      function main () {
          for (var i = 1 ; i <= exchanges.length ; i++) {
              if (i == 1) {
                  Log(exchanges[0].GetName())
              } else if (i == 2) {
                  Log(exchanges[1].GetName())
              } else {
                  Log(exchanges[2].GetName())
              }
          }
      }
      
    • 3. Obtener el par de transacciones actual de la bolsa

      img

      Un ejemplo sencillo es obtener el primer par de transacciones de un objeto de intercambio en la configuración actual y asignar un valor a la variable text (creado de antemano en la categoría de variables).

      imgLos resultados de las pruebas:img

      Si se llama el código de la política de JavaScript:

      function main () {
          var text = exchange.GetCurrency()
          Log(text)
      }
      
    • 4 módulos de subordinación

      imgEste módulo es muy importante para la operación de pedido, donde la primera posición de la barra de precios está incrustada en la variable de precio, para especificar el precio del pedido, o también puede ingresar directamente un número fijo. La segunda posición de la barra (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

      Por ejemplo, podemos juntar un ejemplo de pago de un último precio basado en datos de transacción de ticks actuales, más un precio de deslizamiento de 10 dólares, un mínimo de unidad de 0.1 centavos, y imprimir el ID del pedido.img

      Los resultados de la prueba:img

      Por ejemplo, el siguiente código de la política de JavaScript:

      function main () {
          var id = exchange.Buy(_C(exchange.GetTicker).Last + 10, 0.1)
          Log(id)
      }
      
    • 5. Obtener el módulo de la transacción actual de la orden de encargo

      img

      El módulo devuelve todos los pedidos de comisión que están en estado de no finalización en el par de transacciones actuales, y devuelve una estructura de lista (arreglo) que se puede procesar con módulos de tipo lista (operación de recorrido, etc.). Por ejemplo: modificamos un poco el ejemplo de módulo de compra de 4 puntos de venta anterior, cambiando el precio de 10 dólares añadidos al momento de la compra a menos de 10 dólares. La orden no se pagará inmediatamente, sino que estará suspendida en la profundidad de compra y venta (es decir, en un rango de compra 1, compra 2 y compra N), de modo que la orden esté en el estado de espera de la lista de espera de la transacción. A continuación, usamos el módulo "Obtener la transacción actual de la orden de encargo" para obtener la lista de pedidos que están en estado PENDING ("en espera de transacción"). Para evitar que la transacción de pedidos en el mercado posterior afecte a la revisión de la última observación, después de ejecutar el módulo "Obtener transacciones actuales para pedidos de encargo", imprimimos la lista de pedidos e inmediatamente utilizamos el módulo "Echar excepciones" para detener el proceso.

      img

      El análisis muestra:img

      El precio de la próxima compra es 10 dólares menos que el precio más reciente, por lo que no se realizará de inmediato. Luego, se obtienen los pedidos que están en espera de transacción y se imprimen. Por último, lanza una excepción y detiene el programa.

      El módulo entero se agrupa como si llamara a una política de JavaScript:

      function main () {
          var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
          Log(id)
          Log(exchange.GetOrders())
          throw "stop"
      }
      
    • 6o, cancelar el módulo de pedido

      img

      Este módulo se utiliza para cancelar pedidos.

      Hay muchos escenarios que requieren esto cuando se escribe una estrategia:

      En la actualidad, el sitio web de Facebook de la empresa, Twitter, ha anunciado la cancelación de todos los pedidos que están pendientes.

      Sin duda, esto se debe a que se utiliza el "módulo de retiro", mientras que al mismo tiempo que se aprende el módulo de retiro, se puede utilizar el módulo de retiro 5 para obtener la transacción actual de la orden de encargo, la combinación para implementar esta función.

      En primer lugar, para probar la revocación de todos los pedidos, colgar un pedido no es muy obvio, comenzamos a hacer dos pedidos, con diferentes cantidades de precios para distinguir los dos pedidos.

      img

      Utiliza el módulo "Corre cada elemento de la lista" en el módulo de tipo de ciclo para recorrer los pedidos en la lista de menús en curso.imgCuando se recorre, cada orden extraída se asigna al módulo de variables order ((creado en el tipo de módulo de variables, como se muestra a continuación:)imgEn el módulo de tipos de herramientas:imgExtraer el ID de la orden, enviarlo a la posición de la barra de la unidad de cancelación de la orden, y ejecutar la orden de cancelación en el módulo de cancelación de la orden.

      La prueba está en marcha:img

      Describir con las políticas de JavaScript:

      function main () {
          var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
          Log(id)
          var id2 = exchange.Buy(_C(exchange.GetTicker).Last - 12, 0.2)
          Log(id2)
          var orders = exchange.GetOrders()
          Log(orders)
          for (var i in orders) {
              var order = orders[i]
              Log(exchange.CancelOrder(order.Id))
          }
      }
      
    • 7 Modulo para obtener detalles de un pedido basado en el ID del pedido

      img

      El módulo tiene acceso a un módulo de variables de ID de pedido, que puede devolver información detallada sobre el pedido.

      img

      Observe los pedidos que regresan después de la operación:img

      La comparación de los resultados de la ejecución en el ejemplo de la 5a tonelada y la 5a tonelada muestra que la orden impreso es una información de orden separada, sin[]Los paréntesis en el centro del paquete. Dado que en el ejemplo de la columna 5 se devuelve una lista, este ejemplo devuelve una información de orden separada (obtención de un módulo de variables ID basadas en la posición de la columna en la que se transmite el módulo).

      Los ejemplos anteriores son similares a las políticas de JavaScript:

      function main () {
          var id = exchange.Buy(_C(exchange.GetTicker).Last - 10, 0.1)
          Log(exchange.GetOrder(id))
      }
      
    • 8 Modulo de negociación de futuros

      En el módulo anterior, aprendemos uno por uno, probando los intercambios que establecemos como futuros de productos.

      El cambio de configuración:imgLos siguientes ejemplos se utilizan para realizar pruebas de retrospección en función de esta configuración.

      • Modulo de estado de conexión de servidores de futuros de commodities y de futuros de CTP

        img

        Los futuros de mercancías tienen horario de apertura y horario de cierre, y no se pueden conectar durante el cierre.

      • Configurar el módulo de contrato

        img

        Cuando el objeto de la bolsa se configura como una bolsa de futuros, no se establece un contrato y se obtiene directamente el mercado, se produce un error:img

        Hemos establecido el contrato como MA909, y el metanol es el contrato principal ahora.imgAsí se obtiene el valor del precio más reciente en el tick actual del contrato MA909.

      • Configurar un módulo unidireccional para el comercio de futuros

        Se ejecuta en el módulo de subordinaciónimg
        Los futuros tienen: Buy: más posiciones Vender: el almacén vacío closebuy: el precio de compra más alto Closesell: almacenamiento en plano Cuatro direcciones (los futuros de productos son dos direcciones adicionales: closebuy_today, y closesell_today, que es una posición plana en la que hay más de una posición).

        Por ejemplo, si el módulo de la orden se configura para comprar, entonces hay dos significados de almacén abierto y almacén vacío, lo que produce una binomial. Por lo tanto, se necesita el módulo "Configurar la dirección de la operación de futuros" para establecer una dirección de la orden clara.

        img

        Los resultados muestran:img

        Por ejemplo, el código de la política de JavaScript:

        function main () {
            while (true) {
                if (exchange.IO("status")) {
                    exchange.SetContractType("MA909")
                    Log(exchange.GetTicker().Last)
                    exchange.SetDirection("buy")
                    Log(exchange.Buy(1000, 1))
                    throw "stop"
                } else {
                    Log("未连接商品期货前置机")
                }
                Sleep(1000)
            }
        }
        
    • Modulo de negociación de futuros de moneda digital 9.

      El uso de los futuros de la moneda digital es básicamente el mismo que el uso de los futuros de mercancías en los 8 de arriba.

      • El código de contrato, en el caso de OKEX, puede ser:

        • this_week: La semana en cuestión
        • Next_week: La semana que viene
        • Cuarto: Cuarto
        • swap: permanente
      • BitMEX:

        • XBTUSD
        • ETHUSD
      • Configurar el módulo de palanca

        img

        Para establecer el apalancamiento de los futuros de las monedas digitales.

        # 注意 : 回测不支持。
        

        Por ejemplo, la política de JavaScript:

        function main () {
            exchange.SetMarginLevel(10)
        }
        

Las estrategias para visualizar el paradigma:

Para más estrategias:https://www.fmz.com/square

Otros artículos de esta serie

La programación aburrida se puede hacer fácilmente con el método de los bloques, ¡prueba, es muy divertido!


Relacionados

Más.

- ¿ Qué pasa?¡Después de haber aprendido más de un mes de programación, no puedo escribir estrategias, y ahora todo depende de los bloques!

Un sueño pequeño.Gracias por su apoyo, esta serie de artículos continuará. De hecho, según el código de la política de JavaScript correspondiente detrás de cada patrón, es fácil dominar la política de escritura en JS.