Página 1 de 1

Generar un txt o un .xls con Ninja trader

Publicado: 10 Jun 2011 12:15
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.

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

Publicado: 11 Jun 2011 19:00
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

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

Publicado: 13 Jun 2011 09:43
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.

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

Publicado: 13 Jun 2011 10:12
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

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

Publicado: 13 Jun 2011 10:59
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.