Discusión sobre el artículo "Enfoque científico sobre el desarrollo de algoritmos comerciales"

 

Artículo publicado Enfoque científico sobre el desarrollo de algoritmos comerciales:

En el presente artículo, estudiaremos con ejemplos la metodología de desarrollo de algoritmos comerciales usando un enfoque científico secuencial sobre el análisis de las posibiles patrones de formación de precio y la construcción de algoritmos comerciales basados en dichas leyes.

La simulación se realiza del 01.01.2018 al 28.07.2020, con el marco temporal m1 en el modo de ticks reales. Los ajustes han sido establecidos sin optimización, porque con este enfoque queremos mostrar que, perfeccionando el algoritmo al detalle, podemos renunciar a la optimización para cada instrumento comercial. Solo cambiarán el tamaño del bloque, el tamaño mínimo del bloque y el lote, para seleccionar un tamaño del beneficio sustancialmente superior a las comisiones.

EURUSD tester Chart

EURUSD tester report

Figura 7.

Para el EURUSD, como se esperaba, el spread y el delta al construir los bloques han compensado todo el beneficio que deberíamos haber obtenido gracias a la tendencia del instrumento. Como resultado, tenemos un beneficio esperado de -1.67$ por transacción. El lote ha cambiado dinámicamente a partir del tamaño del bloque, con un lote promedio de 0.078. Vamos a averiguar de dónde ha salido la pérdida. El robot escribe el spread en los logs. Al abrir y cerrar las posiciones, el spread promedio ha sido de 0.00008. Los swaps se han pagado a 159.76$, abriéndose un total de 614 posiciones. Por consiguiente, el swap promedio por posición ha sido de 159.76/614=0.2602$.

Si el spread promedio es 0.00008 y el lote promedio es 0.078, 1 pip en EURUSD con un lote de 0.078 valdrá $ 0.078, por consiguiente, el spread valdrá 0.078*8=0.624$. En total, las comisiones totales suman 0,624$+0,2602$=1,104$. Resulta que si perdiéramos una comisión en cada transacción, la expectativa sería -1.104$ y 1.67$, que suponen 0.566$ más. El tamaño mínimo de bloque se encuentra limitado a 0.002 en los ajustes, para un lote promedio de 0.078 es 15.6$. Vamos a valorar de forma aproximada cómo podría disminuir de promedio el balance si el gráfico de equilibrio fuera un paseo aleatorio y el tamaño del bloque fuera siempre el mínimo. Para esto, 15.6*(614 ^ 0.5)=386.55$. Ahora, vamos a añadir la comisión promedio por transacción multiplicada por el número de las mismas. 1.104*614+386.55=1064.406$.

Así hemos obtenido la magnitud 1064.406$ en dólares, según la cual, de promedio, el gráfico de saldo debería volverse negativo, si la probabilidad de abrir una posición en la dirección "correcta" es del 50% y pagamos una comisión por cada posición abierta. En realidad, hemos obtenido unas pérdidas de 1027.45$, lo cual coincide más o menos. Podemos sacar la conclusión de que hemos obtenido pérdidas porque la esperanza matemática de nuestro algoritmo en EURUSD es igual a cero. 

Vamos a echar un vistazo a los resultados obtenidos con acciones más populares, como "Appl" (AAPL): los resultados se encuentra en la figura 8, un poco más abajo.

AAPL tester chart

AAPL tester report

Figura 8.

Autor: Maxim Romanov

 
Aprecio sus artículos por sus introducciones cristalinas - obras maestras de la comprensión de la esencia de la cuestión son raros, pero se observa constantemente.

Recuerdo que encontré un patrón simple en el mercado de futuros, que proporcionaba ~50% de probabilidad de ganancia. Casi todas las sesiones, en la apertura, el precio se movía bruscamente para comprar o vender y sólo era necesario elegir la dirección. Era imposible predecirlo, pero era posible adivinarlo, y el hecho mismo de que se produjera un salto en la apertura de la sesión se predecía con seguridad por el nivel de los volúmenes previos a la comercialización. Estas conclusiones se confirmaron estadísticamente. En caso de error en la elección de la dirección, era necesario simplemente salir hasta el día siguiente y no volver a operar. El uso de esta estrategia tuvo éxito, pero al cabo de un tiempo dejaron de producirse movimientos bruscos en la apertura de la sesión.

De hecho, los patrones existen en las condiciones de una sesión y un activo en particular, aunque la probabilidad de entrar en ellos nunca es una constante, y el período de uso es temporal. Es decir, los patrones tienen una "vida útil" en el mercado.


 
Реter Konow:
Aprecio sus artículos por las introducciones de cristal - las obras maestras de perspicacia son raras, pero las suyas se observan constantemente.

Recuerdo que encontré un patrón simple en el mercado de futuros, que proporcionaba ~50% de probabilidad de ganar. Casi cada sesión, en la apertura, el precio se movía bruscamente para comprar o vender y sólo era necesario elegir la dirección. Era imposible predecirlo, pero era posible adivinarlo, y el hecho mismo de que se produjera un salto en la apertura de la sesión se predecía con seguridad por el nivel de los volúmenes previos a la comercialización. Estas conclusiones se confirmaron estadísticamente. En caso de error en la elección de la dirección, era necesario simplemente salir hasta el día siguiente y no volver a operar. El uso de esta estrategia tuvo éxito, pero al cabo de un tiempo dejaron de producirse movimientos bruscos en la apertura de la sesión.

Efectivamente, las regularidades existen en las condiciones de una sesión y de un activo concreto, aunque la probabilidad de entrar en ellas nunca es una constante, y el periodo de uso es temporal. Es decir, las regularidades tienen una "vida útil" en el mercado.


Así que no escribí para nada, si te gusta.

Sí, las regularidades tienen vida útil, una de las opciones es crear un algoritmo que las busque en tiempo real.... Tenía un gran proyecto, pero era demasiado complicado, así que lo archivé.

 
Es el segundo artículo que leo que no se lee "en diagonal". Muy interesante. He visto algunas ideas valiosas para mí, que sin duda utilizaré en mis propios desarrollos.
 
Maxim Romanov:

Así que por algo escribes si te gusta.

Sí, los patrones tienen una vida útil, una de las opciones es crear un algoritmo que los busque en tiempo real.... Tenía un gran proyecto, pero era demasiado complicado, así que lo archivé.

Me pregunto cuál era ese proyecto.

 

en el texto

Торговый алгоритм будет следовать напрямую из формулы для определения матожидания прибыли:

m=(P(tp)*tp)-(P(sl)*sl)

tengo la vaga duda de que no sea una matriz de expectativas.

 
Maxim Kuznetsov:

en el texto

tengo la vaga duda de que no sea una matriz de expectativas.

¿Por qué? por favor comenten, tal vez me he equivocado en alguna parte

 
Aliaksandr Hryshyn:

Me pregunto, ¿y cuál es el proyecto?

Quería crear un algoritmo que aprendiera en tiempo real. En esencia, una vida artificial, sólo para los mercados financieros, donde el alimento de los individuos será el beneficio, que podrán extraer analizando las regularidades intramercado e intermercado. Todo debe funcionar en tiempo real, sin aprender de la historia. Es decir, se puede aprender de la historia, pero en realidad todo el trabajo es en tiempo real sobre la base de las operaciones realizadas. no poner en el algoritmo ningún conocimiento sobre el mercado, sino darle la máxima oportunidad y libertad en su desarrollo. Esto es muy breve.

 
Maxim Romanov:

¿Por qué? Por favor, comente esto, tal vez estoy equivocado en alguna parte

Estoy un poco achispado ahora mismo y no puedo hacer una búsqueda completa.

pero es algo así como "rentabilidad media".

Sólo de pasada, comprobando las fórmulas - la expectativa de probabilidad incluye probabilidad con grado -1 y se mide en T (los mismos valores que están en el eje X). La dimensionalidad no coincide y las probabilidades son erróneas.

 
Maxim Romanov:

Quería crear un algoritmo que aprendiera en tiempo real. En esencia, una vida artificial, sólo para los mercados financieros, donde el alimento de los individuos será el beneficio, que podrán extraer analizando las regularidades intramercado e intermercado. Todo debe funcionar en tiempo real, sin aprender de la historia. Es decir, se puede aprender de la historia, pero en realidad todo el trabajo es en tiempo real sobre la base de las operaciones realizadas. no poner en el algoritmo ningún conocimiento sobre el mercado, sino darle la máxima oportunidad y libertad en su desarrollo. Esto es muy breve.

Es ingenioso, pero MUY caro, porque mientras el algoritmo está aprendiendo, perderá mucho dinero ...

Por supuesto, se puede entrenar en demo, pero ¿quién dijo que cuando entramos en el mercado de verdad, no cambia? ;)
 

Maksim, ¡tengo mucho respeto por tu valentía al explorar la compleja naturaleza de los mercados!

Me he dado cuenta de que el autor es matemático y colabora con un programador para aplicar los algoritmos propuestos. Supongo que así es más fácil resolver problemas complejos...

Los temas tratados son muy interesantes, así que ¡seguid así!