public void ExportIndicators()
{
string stage = String.Empty;
if (Data.IsProgramBeta)
stage = " " + Language.T("Beta");
else if (Data.IsProgramRC)
stage = " " + "RC";
sb.Append("Forex Strategy Builder v" + Data.ProgramVersion + stage + Environment.NewLine);
sb.Append("Strategy name: " + Data.Strategy.StrategyName + Environment.NewLine);
sb.Append("Exported on " + DateTime.Now.ToString() + Environment.NewLine);
sb.Append(Data.Symbol + " " +Data.PeriodString + Environment.NewLine);
sb.Append("Number of bars: " + Data.Bars);
sb.Append("\t\t\t\t\t\t\t\t");
for (int iSlot = 0; iSlot < Data.Strategy.Slots; iSlot++)
{
string strSlotType = "";
switch (Data.Strategy.Slot[iSlot].SlotType)
{
case SlotTypes.Open:
strSlotType = "Opening point of the position";
break;
case SlotTypes.OpenFilter:
strSlotType = "Opening logic condition";
break;
case SlotTypes.Close:
strSlotType = "Closing point of the position";
break;
case SlotTypes.CloseFilter:
strSlotType = "Closing logic condition";
break;
default:
break;
}
sb.Append(strSlotType + "\t");
foreach (IndicatorComp indComp in Data.Strategy.Slot[iSlot].Component)
sb.Append("\t");
}
sb.Append(Environment.NewLine);
// Names of the indicator components
sb.Append("\t\t\t\t\t\t\t\t");
for (int iSlot = 0; iSlot < Data.Strategy.Slots; iSlot++)
{
Indicator indicator = Indicator_Store.ConstructIndicator(Data.Strategy.Slot[iSlot].IndicatorName,
Data.Strategy.Slot[iSlot].SlotType);
sb.Append(indicator.ToString() + "\t");
foreach (IndicatorComp indComp in Data.Strategy.Slot[iSlot].Component)
sb.Append("\t");
}
sb.Append(Environment.NewLine);
// Data
sb.Append("Date" + "\t");
sb.Append("Hour" + "\t");
sb.Append("Open" + "\t");
sb.Append("High" + "\t");
sb.Append("Low" + "\t");
sb.Append("Close" + "\t");
sb.Append("Volume" + "\t");
for (int iSlot = 0; iSlot < Data.Strategy.Slots; iSlot++)
{
sb.Append("\t");
foreach (IndicatorComp indComp in Data.Strategy.Slot[iSlot].Component)
sb.Append(indComp.CompName + "\t");
}
sb.Append(Environment.NewLine);
for (int bar = 0; bar < Data.Bars; bar++)
{
sb.Append(Data.Time[bar].ToString(sDF) + "\t");
sb.Append(Data.Time[bar].ToString("HH:mm") + "\t");
sb.Append(Data.Open[bar].ToString(FF) + "\t");
sb.Append(Data.High[bar].ToString(FF) + "\t");
sb.Append(Data.Low[bar].ToString(FF) + "\t");
sb.Append(Data.Close[bar].ToString(FF) + "\t");
sb.Append(Data.Volume[bar].ToString() + "\t");
for (int iSlot = 0; iSlot < Data.Strategy.Slots; iSlot++)
{
sb.Append("\t");
foreach (IndicatorComp indComp in Data.Strategy.Slot[iSlot].Component)
sb.Append(indComp.Value[bar].ToString() + "\t");
}
sb.Append(Environment.NewLine);
}
string fileName = Data.Strategy.StrategyName + "-" + Data.Symbol.ToString() + "-" + Data.Period.ToString();
SaveData(fileName);
return;
}