¡Sí! ¡Es cierto que son 30 líneas de código! ¡Sólo 30 líneas de texto pequeño que estoy acostumbrado a leer antes de leer el código, para tener una idea macro!
Los parámetros de la estrategia son los siguientes:
Parámetros | Descripción | Tipo de trabajo | Valores por defecto |
---|---|---|---|
Período rápido | Ciclo de lanzamiento de línea rápida | Tipo de número | 3 |
Pérodo lento | Ciclo de lanzamiento lento | Tipo de número | 7 |
EntraPeriodo | Período de observación en el mercado | Tipo de número | 3 |
ExitPeriodo rápido | Ciclo de venta de línea rápida | Tipo de número | 3 |
ExitPeriodo lento | Ciclo de baja en línea | Tipo de número | 7 |
Período de salida | Período de observación | Tipo de número | 1 |
Posición | Porcentaje de posiciones | Tipo de número | 0.8 |
Intervalo de tiempo | Período de consulta ((segundos) | Tipo de número | 10 |
交易类库
Es fácil escribir una estrategia, no hay que preocuparse por si comprar o vender, etc.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);
}
}
Declaración de variables
Con las palabras clavevar
+ nombres de variables, por ejemplovar name = “小明”
El ciclo
while(循环条件){
// 将会重复执行的代码
}
Si la condición de ciclo es verdadera, el código dentro de {} se ejecuta repetidamente. Si la condición de ciclo es falsa, salta del ciclo.
Condiciones de la rama
if (判断条件){
// 执行代码
} else {
// 执行代码
}
Es muy sencillo, y la traducción es que si (true) { ejecuta este código} su caso { ejecuta este código}
La asignación
Uno.=
El número es un valor, por ejemplo.
name = “张三”;
Es fácil confundir la asignación con la comparación.
Por ejemplo:==
Los dos números iguales.
Ejemplos“张三”==“李四”
Es muy claro que Zhang y Li no son iguales.“张三”==“李四”
¿Qué es lo que está pasando?
Aplicación de las API
Antes de mostrar la política, hemos analizado las API y las funciones de exportación de la plantilla utilizadas en la política, y en la cuantificación de los inventores hay una descripción detallada de la documentación de la API y el código fuente de la plantilla.
El código estratégico también utiliza funciones de librería de JavaScript, métodos de objetos.
Para obtener más información sobre JavaScript, vea: Objetos de número de JavaScripthttp://www.w3school.com.cn/jsref/jsref_obj_number.aspAprender más
El proceso de programación es dibujado a mano, sin herramientas, es un aficionado.
El paso a paso para construir nuestra estrategia
Todos los procedimientos estratégicos están en la entrada.main()
Función, es decir, la política comienza a ejecutarse desde la función principal.
Disco en vivo
¡La estrategia de 30 líneas sencillas está hecha! La estrategia Running! se ha puesto en marcha, comprando la operación.
Gracias a Inventor Quantify, que proporciona un código tan simple, hay una gran cantidad de estrategias de código abierto en Inventor Quantify para aprender y mejorar junto con muchos expertos en la cuantificación.
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
Apoyo para la enseñanza en video
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
Fuentes de información
Se trata de una serie de medidas de seguridad.¿La función $.GetAccount en la API se ha actualizado a exchange.GetAccount?
¿Por qué no lo haces?El código lo entiendo, pero no sé qué funciona exactamente esta estrategia.
:)Muchas gracias a Little Dream, tu artículo está muy bien escrito.
¿Qué quieres decir?El tutorial del dueño está muy bien escrito, gracias.
el bincoinGracias al dueño, voy a estudiar bien.
Las estrategias de venta a alto precio de las líneas cortasEn cuanto a los detalles.
Los inventores cuantifican - sueños pequeños$.GetAccount es la función de exportación de la plantilla FMZ (la plantilla es código reutilizable, vea la descripción de la plantilla en la documentación de la API). $.GetAccount es la función de exportación de esta plantilla: https://www.fmz.com/strategy/10989. La política anterior es sólo una parte del código, no hay configuración de parámetros de la política, la política completa se puede buscar en la Plaza de la Política 30 líneas de estrategia recta.
¿Por qué no lo haces?Eso es. Muchas gracias.
Los inventores cuantifican - sueños pequeñosEs decir, dos líneas horizontales, la línea rápida que atraviesa la línea lenta generalmente es una señal de compra, con una mayor probabilidad de subida (operación de compra automática del programa). La línea rápida que atraviesa la línea lenta generalmente es una señal de venta, con una mayor probabilidad de caída (operación de venta automática del programa). Con esta operación repetida, se puede obtener un beneficio en la tendencia al alza del mercado.
Los inventores cuantifican - sueños pequeños¡Gracias por el apoyo!
Los inventores cuantifican - sueños pequeños¡Gracias por su apoyo!