Haven't playd much, but it seems working.
Maybe someone will want to play as well.
1 #region Using declarations
2 using System;
3 using System.Diagnostics;
4 using System.Drawing;
5 using System.Drawing.Drawing2D;
6 using System.ComponentModel;
7 using System.Xml.Serialization;
8 using NinjaTrader.Cbi;
9 using NinjaTrader.Data;
10 using NinjaTrader.Gui.Chart;
11 using CarlosAg.ExcelXmlWriter;
12 #endregion
13
14 namespace NinjaTrader.Indicator
15 {
16 [Description("")]
17 [Gui.Design.DisplayName("SimpleExcelWriter")]
18 public class SimpleExcelWriter : Indicator
19 {
20 #region Variables
21 private int date = 0;
22 private double currentOpen = 0;
23 private double currentHigh = 0;
24 private double currentLow = 0;
25 private double currentClose = 0;
26 private bool currentOpenSaved = false;
27 private bool currentLowSaved = false;
28 private Workbook book = new Workbook();
29 private Worksheet sheet;
30 private WorksheetRow row;
31 private string path = Cbi.Core.UserDataDir.ToString() + "test.xls";
32
33 #endregion
34
35 protected override void Initialize()
36 {
37 CalculateOnBarClose = true;
38 }
39
40 protected override void OnBarUpdate()
41 {
42 if(book != null)
43 {
44 if (CurrentBar == 0)
45 {
46 sheet = book.Worksheets.Add("Simple quote");
47 row = sheet.Table.Rows.Add();
48 row.Cells.Add("Time");
49 row.Cells.Add("Open");
50 row.Cells.Add("High");
51 row.Cells.Add("Low");
52 row.Cells.Add("Close");
53 row.Cells.Add("Volume");
54 }
55 row = sheet.Table.Rows.Add();
56 row.Cells.Add(new WorksheetCell(Time[0].ToString()));
57 row.Cells.Add(new WorksheetCell(Open[0].ToString(), DataType.Number));
58 row.Cells.Add(new WorksheetCell(High[0].ToString(), DataType.Number));
59 row.Cells.Add(new WorksheetCell(Low[0].ToString(), DataType.Number));
60 row.Cells.Add(new WorksheetCell(Close[0].ToString(), DataType.Number));
61 row.Cells.Add(new WorksheetCell(Volume[0].ToString(), DataType.Number));
62 book.Save(path);
63 }
64 }
65
66
67
68 #region Properties
69
70 #endregion
71 }
72 }
Comment