Al principio, pensaba naturalmente en términos de un trader, una cuenta. Luego la realidad del trading me alcanzó rápidamente.
Muchos traders no tienen una sola cuenta. Pueden tener una cuenta personal. Una cuenta de simulación. Varias cuentas de prop firm. A veces varias plataformas. Y a veces las mismas estrategias se usan en cuentas diferentes.
A partir de ahí, LowFlow debía ser capaz de seguir todo esto sin mezclar los datos.
La cuenta se vuelve una dimensión importante del diario
Dos operaciones idénticas sobre el mismo instrumento no son necesariamente la misma operación. Pueden pertenecer a dos cuentas diferentes. Pueden tener tamaños diferentes. Comisiones diferentes. Objetivos diferentes.
Así que la cuenta debe permanecer unida a cada transacción. Y el trader debe poder elegir lo que quiere mirar. Una sola cuenta. Varias cuentas. O el conjunto.
El peligro es fusionarlo todo demasiado pronto
Es un problema con el que me encontré varias veces durante el desarrollo. Cuando un dato sirve para muchas cosas, se vuelve fácil darle demasiadas responsabilidades. Luego un día, una regla cambia y todo se vuelve difícil de desenredar.
Así que aprendí a mantener los roles separados. La cuenta dice a quién pertenece la operación. La operación conserva su identidad. Las estadísticas usan luego el filtro elegido. Pero ninguna de estas capas debe reinventar las otras.
Comparar sin modificar los datos originales
El trader puede querer saber: ¿qué cuenta fue la más activa? ¿Cómo se comporta un setup en dos cuentas? ¿Cuántas operaciones se tomaron en total? O simplemente ocultar una cuenta que ya no le interesa.
El diario puede mostrar varias vistas diferentes sin cambiar lo que realmente se registró. Y esto vuelve al mismo principio: los datos siguen siendo los datos. La vista es una elección.
Varias cuentas, varias plataformas, pero una sola memoria
Ahí es donde la estructura empieza realmente a volverse interesante. Un trader puede usar NinjaTrader para una cuenta. Sierra Chart para otra. Importar un historial antiguo por CSV. Añadir capturas.
Y a pesar de todas estas fuentes diferentes, LowFlow debe poder reconstruir un historial coherente. No porque todas las plataformas funcionen igual. Sino porque al final, el trader debe poder encontrar sus propias operaciones, vengan de donde vengan.
Es una de las diferencias entre un prototipo y un producto
Un prototipo funciona perfectamente en el escenario para el que se construyó. Un producto debe seguir funcionando cuando los usuarios empiezan a usarlo de una forma que el desarrollador no había imaginado el primer día.
Por eso LowFlow se volvió progresivamente más modular. No para añadir complejidad. Para poder aceptar la realidad del trader sin pedirle que se adapte al software.