Generar un txt o un .xls con Ninja trader

Foro dedicado a esta excelente herramienta de desarrollo e implementación de sistemas de trading
Responder
Nightware
Mensajes: 20
Registrado: 15 Abr 2011 12:27

Generar un txt o un .xls con Ninja trader

Mensaje por Nightware »

Buenas, me gustaria saber si es posible generar un archivo .txt con Ninja o un .xls.

En vez de usar el Print para mostar algo en la ventana de Ninja, me gustaria que mi sistema generara un archivo txt, o un archivo de excel. Me gustaria saber si alguien lo a probado y le funciona, dado que estoy probando a generar un txt, y me esta dando problemas.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Generar un txt o un .xls con Ninja trader

Mensaje por cls »

Nightware escribió:Buenas, me gustaria saber si es posible generar un archivo .txt con Ninja o un .xls.

En vez de usar el Print para mostar algo en la ventana de Ninja, me gustaria que mi sistema generara un archivo txt, o un archivo de excel. Me gustaria saber si alguien lo a probado y le funciona, dado que estoy probando a generar un txt, y me esta dando problemas.
Perfectamente posible.
Tienes que usar las clases de System.IO (propias de .NET). Ejemplo de un método que escribe a fichero ascii los precios de todas las barras del chart:

Código: Seleccionar todo

private void writeFile()
		{
			SaveFileDialog saveDialog = new SaveFileDialog();
			if (saveDialog.ShowDialog() == DialogResult.OK)
            {
                string saveFile = saveDialog.FileName;
				try
				{
					using (System.IO.StreamWriter sw = new System.IO.StreamWriter(saveFile))
					{
						NinjaTrader.Data.IBar barra = null;
						string linea = string.Empty;
						for( int i = 0, contaBar = 0; i < BarsArray[0].Count ; i++, contaBar++ )
						{
							barra = BarsArray[0].Get(i);
							linea = string.Empty;
							linea = contaBar + ";" + barra.Open + ";" + barra.High + ";" + barra.Low + ";"+ barra.Close + ";" + barra.Volume + ";" +
									barra.Time.ToShortDateString() + ";" + barra.Time.ToLongTimeString() + ";" + barra.FirstBarOfSession;
							sw.WriteLine( linea );
						}
					}
				}
				catch( Exception ex )
				{
					MessageBox.Show("Ocurrió un error ... " + ex, "Error",MessageBoxButtons.OK, MessageBoxIcon.Error);
					Print("Error");
				}
            }
			
		}
Antes que nada, en la región Using declarations (arriba del todo) hay que añadir:

Código: Seleccionar todo

using System.Windows.Forms;
using System.IO;
S2
Nightware
Mensajes: 20
Registrado: 15 Abr 2011 12:27

Re: Generar un txt o un .xls con Ninja trader

Mensaje por Nightware »

Gracias por contestar. Mira queria saber que le falla a este codigo.

using System.IO;

protected override void OnBarUpdate()
{
try
{
System.IO.StreamWriter sr = new StreamWriter("C:\\prueba.txt", true);
sr.WriteLine("Hola");
}catch(Exception e)
{
Print("Error");
}
}


porque no me escribe nada en el txt. Gracias de antemano por tu ayuda.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Generar un txt o un .xls con Ninja trader

Mensaje por cls »

El código que te puse antes es un método que sólo necesitas llamarlo una vez. Prueba a hacerlo desde el OnStartUp:

Código: Seleccionar todo

protected override void OnStartUp()
		{
			this.writeFile();
		}
El nombre del fichero mejor lo consigues desde el cuadro de diálogo, no poniéndolo literal. Si te da error prueba a quitar el true (eso es para appends a ficheros existentes).

Para saber con certeza lo que pasa habría que debugarlo.

S2
Nightware
Mensajes: 20
Registrado: 15 Abr 2011 12:27

Re: Generar un txt o un .xls con Ninja trader

Mensaje por Nightware »

Bueno, me funcionaba mal, porque me faltaba ponerle.
Nightware escribió:Gracias por contestar. Mira queria saber que le falla a este codigo.

using System.IO;

protected override void OnBarUpdate()
{
try
{
using (System.IO.StreamWriter sr = new StreamWriter("C:\\prueba.txt", true))
{
sr.WriteLine("Hola");
}
}catch(Exception e)
{
Print("Error");
}
}
Lo e puesto como metodo para llamarlo cuando lo necesite y e modificado ya el sistema para guardar con el cuadro de Guardar, para que sea mas comodo, gracias por tu ayuda cls.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Ninja Trader”