avatar of 发明者量化-小小梦 发明者量化-小小梦
Seguir Mensajes Privados
4
Seguir
1271
Seguidores

30 líneas de código te llevan al mundo de la inversión cuantitativa

Creado el: 2016-04-06 10:17:26, Actualizado el: 2020-01-13 15:17:11
comments   13
hits   7394

Estrategia de línea media de 30 líneas para crear un sistema de ganancias positivas

Es cierto, es cierto lo que escuchas, son 30 líneas de código.

Los parámetros de la política son los siguientes:

parámetro describir tipo Valores por defecto
FastPeriod Ciclo de línea rápida de entrada al mercado Tipo de número 3
SlowPeriod Ciclo de línea lenta de entrada al mercado Tipo de número 7
EnterPeriod Periodo de observación de la entrada en el mercado Tipo de número 3
ExitFastPeriod Ciclo de línea rápida fuera de la ciudad Tipo de número 3
ExitSlowPeriod Ciclo de salida de la ciudad Tipo de número 7
ExitPeriod Período de observación fuera de la ciudad Tipo de número 1
PositionRatio Porcentaje de posiciones Tipo de número 0.8
Interval Periodo de encuesta (segundos) Tipo de número 10

30 líneas de código te llevan al mundo de la inversión cuantitativa

  • Se ha importado.交易类库Es una estrategia sencilla, no hay que estar pendiente de comprar o vender.
  • Cuando se encuentran con una variable no declarada que los confunde al leer el código, diríjase al grupo para responder.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • Esta estrategia solo tiene una función principal principal (), sin otros módulos de la función. La función principal tiene solo un ciclo.
  • He publicado una versión de la estrategia con comentarios en el código y la he compartido en el grupo de QQ, para que los estudiantes que están aprendiendo por primera vez puedan ver los comentarios para que les sea más fácil aprender.
  • Si no estás en el grupo oficial de QQ, puedes unirte a: 309368835 Inventor Quantitative EA Communication (BotVS) ¦ ¡La estrategia es tan sencilla que sólo tiene que ser decenas de líneas de código!
  • Para los estudiantes que no tienen conocimientos básicos de Javascript, vamos a hablar de la gramática para evitar que los estudiantes no entiendan el código.

Declaración de las variables

Las palabras clave.var+ Nombre de la variable, por ejemplovar name = “小明”

El ciclo

while(循环条件){
    // 将会重复执行的代码
}

El código dentro de {} se ejecuta repetidamente si la condición de ciclo es verdadera. Si la condición de ciclo es falsa, salta del ciclo.

Subdivisión condicional

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

Es muy sencillo, la traducción es que si es verdad (ejecutar este código) entonces su estado (ejecutar este código) es que si es verdad (ejecutar este código) entonces su estado (ejecutar este código) es que si es verdad (ejecutar este código) entonces su estado (ejecutar este código) es que si es verdad (ejecutar este código) entonces su estado (ejecutar este código) es que si es verdad (ejecutar este código) entonces su estado (ejecutar este código) es que si es verdad (ejecutar este código)

Valoración

Uno de ellos.=El número es atribuido, por ejemplo.

name = “张三”;

Es fácil confundir la atribución con la comparación. Por ejemplo, comparando==El número es igual a 2. Ejemplos“张三”==“李四”Es evidente que Zhang Shui no es Li Jie, así que…“张三”==“李四”¿Por qué es falso?

Aplicaciones relacionadas

Antes de escribir la demostración de la estrategia, analizamos las API y las funciones de exportación de plantillas utilizadas en la estrategia. Hay una documentación detallada de la API y el código fuente de la plantilla en el inventor de cuantificación.

  • $.GetAccount: función de exportación de la plantilla para obtener información sobre las cuentas de las casas de cambio
  • Función de registro: API para la salida de información a los registros, mostrar valores, etc.
  • $.Cross Función: Función de exportación de la plantilla para detectar el cruce de los indicadores de línea media
  • $.Buy: función de exportación de la plantilla para comprar
  • $.Sell: función de exportación de la plantilla para operaciones de venta
  • Función LogProfit: API, para la salida de ganancias, la función puede agregar otra información a partir del segundo parámetro
  • La función Sleep:API, que hace que el programa se detenga por un momento, tiene la unidad de parámetros en milisegundos.

El código de la estrategia también usa las funciones de la biblioteca de Javascript, los métodos de objetos.

  • Math.abs() Función: devuelve el valor absoluto de los argumentos
  • La función toFixed (() de un objeto Number: guarda los dígitos pequeños en cuadros y quintos según los parámetros. Tenga en cuenta que la función devuelve una cadena
  • parseFloat global: devuelve el número de flotación de los argumentos de la cadena.

Para obtener más información acerca de Javascript, visite: Objetos de números JavaScript http://www.w3school.com.cn/jsref/jsref_obj_number.asp

El diagrama del programa, dibujado a mano, no con herramientas, muy amateur.

30 líneas de código te llevan al mundo de la inversión cuantitativa

Construyendo nuestra estrategia paso a paso

Todas las entradas de los programas de estrategia son:main()Función, es decir, la estrategia se ejecuta desde la función principal.

30 líneas de código te llevan al mundo de la inversión cuantitativa

30 líneas de código te llevan al mundo de la inversión cuantitativa

30 líneas de código te llevan al mundo de la inversión cuantitativa

30 líneas de código te llevan al mundo de la inversión cuantitativa

30 líneas de código te llevan al mundo de la inversión cuantitativa

Oferta firme

¡Esto es lo que hace que una estrategia de 30 simples líneas sea posible! La estrategia de Running! ya está en marcha, compra el operativo.

30 líneas de código te llevan al mundo de la inversión cuantitativa

Gracias a Inventor Quantify, que ofrece un código tan sencillo, hay una gran cantidad de estrategias de código abierto disponibles para aprender y mejorar en Inventor Quantify, junto con muchos otros expertos en cuantificación.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

Enseñanzas en video

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

Información de referencia