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:
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.