StringBuilder AveragingHTMLReport()
{
StringBuilder sb = new StringBuilder();
// Same direction
sb.AppendLine("<p>" + Language.T("Entry signal in the direction of the present position:") + "</p>");
sb.AppendLine("<ul><li>");
if (Data.Strategy.sameDirSignal == SameDirSignalAction.Nothing)
sb.AppendLine(Language.T("No averaging is allowed. Cancel any additional orders which are in the same direction."));
else if (Data.Strategy.sameDirSignal == SameDirSignalAction.Winner)
sb.AppendLine(Language.T("Add to a wining position but not to a losing one. If the position is at a loss, cancel the additional entry order. Do not exceed the maximum allowed number of lots to open."));
else if (Data.Strategy.sameDirSignal == SameDirSignalAction.Add)
sb.AppendLine(Language.T("Add to the position no matter if it is at a profit or loss. Do not exceed the maximum allowed number of lots to open."));
sb.AppendLine("</li></ul>");
// Opposite direction
sb.AppendLine("<p>" + Language.T("Entry signal in the opposite direction:") + "</p>");
sb.AppendLine("<ul><li>");
if (Data.Strategy.oppDirSignal == OppositeDirSignalAction.Nothing)
sb.AppendLine(Language.T("No modification of the present position is allowed. Cancel any additional orders which are in the opposite direction."));
else if (Data.Strategy.oppDirSignal == OppositeDirSignalAction.Reduce)
sb.AppendLine(Language.T("Reduce the present position. If its amount is lower than or equal to the specified reducing lots, close it."));
else if (Data.Strategy.oppDirSignal == OppositeDirSignalAction.Close)
sb.AppendLine(Language.T("Close the present position regardless of its amount or result. Do not open a new position until the next entry signal has been raised."));
else if (Data.Strategy.oppDirSignal == OppositeDirSignalAction.Reverse)
sb.AppendLine(Language.T("Close the existing position and open a new one in the opposite direction using the entry rules."));
sb.AppendLine("</li></ul>");
return sb;
}