MachineLearning & NinjaTrader

El espacio de los traders quant: sistemas de trading, gestión monetaria, automatización de sistemas.
Responder
Avatar de Usuario
cls
Mensajes: 1343
Registrado: 24 May 2007 18:46
Contactar:

MachineLearning & NinjaTrader

Mensaje por cls »

He encontrado este artículo en el blog de NinjaTrader para integrar MachineLearning en estrategias automáticas.

ML.NET + NinjaTrader

Después de montar todo el lío, las predicciones - en intradía - del modelo de FastTree que se explica en el artículo son muy erráticas. En la imagen, algunas predicciones del indicador.

Supongo que el tema de seleccionar unas features adecuadas es fundamental (en vez de los típicos OHLC, medias y osciladores).

A lo mejor alguien quiere compartir alguna experiencia real sobre este tema del MachineLearning aplicado al trading automático. Y básicamente sobre todo ... sirve para ganar $$$ o sólo entretiene ???
Adjuntos
fasttree.jpg
Avatar de Usuario
Optiondreamer
Mensajes: 345
Registrado: 28 Mar 2006 08:07
Ubicación: 40.705571, -74.013432

Re: MachineLearning & NinjaTrader

Mensaje por Optiondreamer »

Hola cls,
Interesante artículo, la verdad que Ninja al cambiar el framework tiene más posibilidades, la pena es que hayan tardado tantos años en hacer el cambio. En su día intentaba usar esa y otras librerías, pero era difícil integrar todo, por lo que lo acabé dejando aparcado. La idea es retomar esa vía ahora que tenemos las IAs. En su día toqué el Adaptrade Builder, y seguía de lejos el Trading System Lab (60K $), de Mike Barna, que usa Linnear Genetic Programming y tenía un par de sistemas en el top de los CTA. Para mi de momento es entretenimiento a largo plazo, llevo bastante desconectado y me está costando volver.
Saludos.
Avatar de Usuario
cls
Mensajes: 1343
Registrado: 24 May 2007 18:46
Contactar:

Re: MachineLearning & NinjaTrader

Mensaje por cls »

Hola Optiondreamer,

pues sí, a Ninja le cuesta actualizarse. Es una pena porque creo que es de lo mejor para programar en windows.

El artículo está muy bien para hacerse una idea de cómo montar un modelo de ML completo. El código no está en github a pesar de lo que ponen al final del artículo. También faltan algunas librerías y pasos que no mencionan. A lo mejor en windows11 no son necesarios, pero en windows10 tuve que añadir algunas librerías más a medida que saltaban errores en la compilación y en la ejecución. Pero al final funcionó.

En otro post compartiré los pasos que seguí para integrar ML.NET en NinjaTrader.

Saludos
Avatar de Usuario
cls
Mensajes: 1343
Registrado: 24 May 2007 18:46
Contactar:

Re: MachineLearning & NinjaTrader

Mensaje por cls »

Dejo aquí todos los pasos que seguí para integrar ML.NET en NinjaTrader en un Windows10 64bits (con otra versión de Windows podría cambiar).

Desde VisualStudio instalar los siguientes paquetes NuGet (todos de la versión 3.0.0):
Microsoft.ML
Microsoft.ML.CpuMath
Microsoft.ML.DataView
Microsoft.ML.FastTree

Que se instalarán de manera automática en las siguientes carpetas:
C:\Users\<usuario>\.nuget\packages\microsoft.ml
C:\Users\<suario>\.nuget\packages\microsoft.ml.dataview
C:\Users\<usuario>\.nuget\packages\microsoft.ml.fasttree

Dentro de cada una de esas carpetas se encuentran los directorios \3.0.0\lib\netstandard2.0\ donde se hallarán los siguientes ficheros:

Microsoft.ML.dll
Microsoft.ML.Core.dll
Microsoft.ML.CpuMath.dll
Microsoft.ML.Data.dll
Microsoft.ML.DataView.dll
Microsoft.ML.FastTree.dll

Esos seis ficheros dll hay que copiarlos y pegarlos en la carpeta bin\Custom\ de NinjaTrader.

También hay que copiar y pegar en esa misma carpeta el fichero netstandard.dll que se encuentra en la carpeta C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\Facades.

Una vez que los siete ficheros están en la carpeta NinjaTrader 8\bin\Custom hay que referenciarlos desde el NinjaScript Editor. Y compilar.

Para que no fallara la ejecución, también tuve que pegar el fichero FastTreeNative.dll que está en C:\Users\<nombreusuario>\.nuget\packages\microsoft.ml.fasttree\3.0.0\runtimes\win-x64\native. Este fichero no hay que referenciarlo.

Supongo que si se utiliza otro algoritmo diferente del FastTree habría que replicar los pasos para integrar ese algoritmo en concreto.
Avatar de Usuario
Gibranes
Mensajes: 335
Registrado: 22 Jun 2010 07:57

Re: MachineLearning & NinjaTrader

Mensaje por Gibranes »

Hola cls:
Recuerdo que por el año 2000 cuando la informática penetraba en los hogares, tener los mejores programas para analizar los mercados, era encontrar el santo grial.

Entre ellos el Advance get (elliot) y sobre todo las redes neuronales, hoy creo que ambos son residuales.
Me cuesta creer que solo con los datos del histórico se pueda predecir el mercado de forma automática.  

Por aquí te dejo esto: en los foros de ninja alguno se mueve.

Adición del proyecto ML.NET
Tengo un ejemplo funcional completo de cómo cargar correctamente todos los dll en NinjaTrader y crear una estrategia basada en ML sin tener que llamar fuera de NinjaTrader. Es un poco difícil escribir todos los pasos y puede resultar un poco confuso asegurarse de que todas las cosas adecuadas estén alineadas, pero no dudes en enviarme un correo electrónico y puedo ayudar a guiar a cualquiera a través de ellas [email protected]
Avatar de Usuario
cls
Mensajes: 1343
Registrado: 24 May 2007 18:46
Contactar:

Re: MachineLearning & NinjaTrader

Mensaje por cls »

Hola Gibranes,

sí, recuerdo el AdvancedGet de elliot. Lo que ha llovido.

Comparto tu opinión de que no se puede predecir el mercado con histórico OHLC. Pero tenía curiosidad por implementar algo de ML en ninja.

Conocía ese hilo en el foro de ninja, pero gracias. Antes era bastante complejo. Ahora con el .net framework 4.8, y sabiendo los pasos, es más sencillo integrar ML.NET en ninja.

Mayormente, por lo que he visto que no es mucho, la gente trabaja en Python y se bajan datos de yahoo finance o similar con timeframes diarios o como mucho de 1-hora. Se construyen sus dataframes (basados en OHLC y algún indicador básico tipo media, oscilador o atr) y lo montan en plan laboratorio para sacar su report. Y si el análisis les convence montarán su sistema en la plataforma que toque. Grosso modo.

La ventaja que veo con Ninja es que el ML.NET está integrado y puedes entrenar y predecir en tiempo real en la misma estrategia, incluso al cierre de cada barra. No en plan laboratorio como con Python. Además los datos de futuros son de una calidad máxima y con la librería de indicadores disponible te puedes construir cualquier ocurrencia de dataframe en pocos minutos, incluso con datos de orderflow.
Avatar de Usuario
Optiondreamer
Mensajes: 345
Registrado: 28 Mar 2006 08:07
Ubicación: 40.705571, -74.013432

Re: MachineLearning & NinjaTrader

Mensaje por Optiondreamer »

Hola de nuevo,
Yo estoy pensando en meterme en Python, era bastante reacio, supongo que por la curva de aprendizaje y porque me cuesta horrores salir de los corchetes. Pero veo que con Ninjatrader como pre-procesador de datos para pasarlos a Python puede dar bastante juego...
Llevo un tiempo preparando el entorno, he cambiado de Windows a Proxmox para poder lidiar con todo, maquinas virtuales..., entre otras, una con Ubuntu y correr modelos LLM en local y otra con Windows para el Ninja..., predecir, no, pero para crear, analizar, optimizar, creo que algo haremos...
Avatar de Usuario
agmageton
Mensajes: 3670
Registrado: 30 Ene 2008 11:32

Re: MachineLearning & NinjaTrader

Mensaje por agmageton »

Yo lo veo como una herramienta de rapidez en el entorno de trabajo, que seas tú que pongas tus conocimientos de mercado y la herramienta te agilice al máximo el tiempo de valoración y optimización. Sabéis el tiempo que te puedes ahorrar dándole a la máquina unos objetivos precisos y que te haga el trabajo..
En cambio no lo veo para que te cree sistemas, simplemente porque dejas de tener tú el conocimiento para tenerlo ella (la máquina) y eso nunca acaba bien. :lol:
La entrada te da la probabilidad y la salida la rentabilidad...
Avatar de Usuario
Gibranes
Mensajes: 335
Registrado: 22 Jun 2010 07:57

Re: MachineLearning & NinjaTrader

Mensaje por Gibranes »

cls escribió: 18 Mar 2025 11:53 Hola Gibranes,

sí, recuerdo el AdvancedGet de elliot. Lo que ha llovido.

Comparto tu opinión de que no se puede predecir el mercado con histórico OHLC. Pero tenía curiosidad por implementar algo de ML en ninja.

Conocía ese hilo en el foro de ninja, pero gracias. Antes era bastante complejo. Ahora con el .net framework 4.8, y sabiendo los pasos, es más sencillo integrar ML.NET en ninja.

Mayormente, por lo que he visto que no es mucho, la gente trabaja en Python y se bajan datos de yahoo finance o similar con timeframes diarios o como mucho de 1-hora. Se construyen sus dataframes (basados en OHLC y algún indicador básico tipo media, oscilador o atr) y lo montan en plan laboratorio para sacar su report. Y si el análisis les convence montarán su sistema en la plataforma que toque. Grosso modo.

La ventaja que veo con Ninja es que el ML.NET está integrado y puedes entrenar y predecir en tiempo real en la misma estrategia, incluso al cierre de cada barra. No en plan laboratorio como con Python. Además los datos de futuros son de una calidad máxima y con la librería de indicadores disponible te puedes construir cualquier ocurrencia de dataframe en pocos minutos, incluso con datos de orderflow.
De todas formas, como uso ninjatrader y sé algo de programar en C# creo que usaré la documentación que aportas para instalarlo e intentar mejorar mi pronóstico sobre el SPY. 
Avatar de Usuario
cls
Mensajes: 1343
Registrado: 24 May 2007 18:46
Contactar:

Re: MachineLearning & NinjaTrader

Mensaje por cls »

Comparto el código del indicador que programé a partir del artículo. Usa el OHLC, ATR y EMA de las últimas cuatro barras. Conociendo un poco de C# y ninjascript es muy fácil cambiar estas features por otros indicadores, o series personalizadas.
Adjuntos
Zi8ML01Prediction01.txt
(15.53 KiB) Descargado 38 veces
Avatar de Usuario
X-Trader
Administrador
Mensajes: 13160
Registrado: 06 Sep 2004 10:18
Contactar:

Re: MachineLearning & NinjaTrader

Mensaje por X-Trader »

Gracias por vuestros aportes chicos, hilos como este engrandecen el Foro.

Por cierto, nunca pensé que en 2025 volvería a oír a hablar de Advanced GET!!! El caso es que hace muchos años lo compró eSignal... y ahí que sigue (aparentemente viene de serie con el plan Elite de eSignal).

Por cierto, supongo que os habéis enterado pero... Kraken ha comprado NinjaTrader! Ahora abro hilo sobre el tema, pero la de vueltas que da la vida!!!

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
Gibranes
Mensajes: 335
Registrado: 22 Jun 2010 07:57

Re: MachineLearning & NinjaTrader

Mensaje por Gibranes »

X-Trader escribió: 25 Mar 2025 10:22 Gracias por vuestros aportes chicos, hilos como este engrandecen el Foro.

Por cierto, nunca pensé que en 2025 volvería a oír a hablar de Advanced GET!!! El caso es que hace muchos años lo compró eSignal... y ahí que sigue (aparentemente viene de serie con el plan Elite de eSignal).

Por cierto, supongo que os habéis enterado pero... Kraken ha comprado NinjaTrader! Ahora abro hilo sobre el tema, pero la de vueltas que da la vida!!!

Saludos,
X-Trader
De aquellos tiempos el software más usado era el metastock.
Incluso había webs que pagando te dejaban el archivo fin del día listo para su descarga.
Hoy su uso es muy anecdótico, no supieron ver que  la competencia les comía el pastel.

Caso parecido a Irobot de crear los roomba a un paso de la quiebra.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Sistemas de Trading”