[Quantproject-developers] QuantProject/b4_Business/a1_Financial/a2_Accounting/h5_Reporting/SummaryRo
Brought to you by:
glauco_1
Update of /cvsroot/quantproject/QuantProject/b4_Business/a1_Financial/a2_Accounting/h5_Reporting/SummaryRows
In directory sc8-pr-cvs1:/tmp/cvs-serv25981/b4_Business/a1_Financial/a2_Accounting/h5_Reporting/SummaryRows
Added Files:
AnnualSystemPercentageReturn.cs
AverageLongTradePercentageReturn.cs
AverageShortTradePercentageReturn.cs
AverageTradePercentageReturn.cs
LargestLosingTradePercentage.cs
LargestWinningTradePercentage.cs NumberWinningLongTrades.cs
NumberWinningShortTrades.cs NumberWinningTrades.cs
TotalNumberOfLongTrades.cs TotalNumberOfShortTrades.cs
Log Message:
The Account Report Summary object has been updated.
The following have become summary row devoted object (they were
delegate in the previous revision):
- AnnualSystemPercentageReturn
- AverageLongTradePercentageReturn
- AverageShortTradePercentageReturn
- AverageTradePercentageReturn
- LargestLosingTradePercentage
- LargestWinningTradePercentage
- NumberWinningLongTrades
- NumberWinningShortTrades
- NumberWinningTrades
- TotalNumberOfLongTrades
- TotalNumberOfShortTrades
--- NEW FILE: AnnualSystemPercentageReturn.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class AnnualSystemPercentageReturn : SummaryRow
{
public AnnualSystemPercentageReturn( Summary summary )
{
double totalROA = summary.TotalPnl / ( summary.FinalAccountValue - summary.TotalPnl );
this.rowDescription = "Annual system % return";
this.rowValue = ( ( Math.Pow( 1 + totalROA ,
1.0 / ( (double)summary.IntervalDays/365.0 ) ) ) - 1 ) * 100;
}
}
}
--- NEW FILE: AverageLongTradePercentageReturn.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class AverageLongTradePercentageReturn : SummaryRow
{
public AverageLongTradePercentageReturn( Summary summary )
{
this.rowDescription = "Average long trade % Return";
double avgReturn =
(double) summary.AccountReport.RoundTrades.DataTable.Compute( "avg([%Profit])" , "(Trade='Long')" );
this.rowValue = avgReturn;
}
}
}
--- NEW FILE: AverageShortTradePercentageReturn.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class AverageShortTradePercentageReturn : SummaryRow
{
public AverageShortTradePercentageReturn( Summary summary )
{
this.rowDescription = "Average short trade % Return";
double avgReturn =
(double) summary.AccountReport.RoundTrades.DataTable.Compute(
"avg([%Profit])" , "(Trade='Short')" );
this.rowValue = avgReturn;
}
}
}
--- NEW FILE: AverageTradePercentageReturn.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class AverageTradePercentageReturn : SummaryRow
{
public AverageTradePercentageReturn( Summary summary )
{
this.rowDescription = "Average trade % Return";
double avgReturn = (double) summary.AccountReport.RoundTrades.DataTable.Compute( "avg([%Profit])" , "true" );
this.rowValue = avgReturn;
}
}
}
--- NEW FILE: LargestLosingTradePercentage.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class LargestLosingTradePercentage : SummaryRow
{
public LargestLosingTradePercentage( Summary summary )
{
this.rowDescription = "Largest losing trade";
this.rowValue =
(double) summary.AccountReport.RoundTrades.DataTable.Compute( "min([%Profit])" , "([%Profit]<0)" );
}
}
}
--- NEW FILE: LargestWinningTradePercentage.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class LargestWinningTradePercentage : SummaryRow
{
public LargestWinningTradePercentage( Summary summary )
{
this.rowDescription = "Largest winning trade";
this.rowValue =
(double) summary.AccountReport.RoundTrades.DataTable.Compute( "max([%Profit])" , "([%Profit]>0)" );
}
}
}
--- NEW FILE: NumberWinningLongTrades.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class NumberWinningLongTrades : SummaryRow
{
public NumberWinningLongTrades( Summary summary )
{
this.rowDescription = "Number winning long trades";
DataRow[] DataRows = summary.AccountReport.RoundTrades.DataTable.Select( "((Trade='Long')and([%Profit] > 0))" );
this.rowValue = DataRows.Length;
}
}
}
--- NEW FILE: NumberWinningShortTrades.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class NumberWinningShortTrades : SummaryRow
{
public NumberWinningShortTrades( Summary summary )
{
this.rowDescription = "Number winning short trades";
DataRow[] DataRows = summary.AccountReport.RoundTrades.DataTable.Select(
"((Trade='Short')and([%Profit] > 0))" );
this.rowValue = DataRows.Length;
}
}
}
--- NEW FILE: NumberWinningTrades.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class NumberWinningTrades : SummaryRow
{
public NumberWinningTrades( Summary summary )
{
this.rowDescription = "Number winning trades";
DataRow[] DataRows = summary.AccountReport.RoundTrades.DataTable.Select( "([%Profit] > 0)" );
this.rowValue = DataRows.Length;
}
}
}
--- NEW FILE: TotalNumberOfLongTrades.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class TotalNumberOfLongTrades : SummaryRow
{
public TotalNumberOfLongTrades( Summary summary )
{
double totalROA = summary.TotalPnl / ( summary.FinalAccountValue - summary.TotalPnl );
this.rowDescription = "Total # of long trades";
DataRow[] DataRows =
summary.AccountReport.RoundTrades.DataTable.Select( "((Trade='Long')and(ExitPrice is not null))" );
this.rowValue = DataRows.Length;
}
}
}
--- NEW FILE: TotalNumberOfShortTrades.cs ---
using System;
using System.Data;
using QuantProject.ADT;
using QuantProject.Business.Financial.Accounting.Reporting.Tables;
using QuantProject.Business.Financial.Instruments;
namespace QuantProject.Business.Financial.Accounting.Reporting.SummaryRows
{
/// <summary>
/// Summary description for TotalNumberOfTrades.
/// </summary>
public class TotalNumberOfShortTrades : SummaryRow
{
public TotalNumberOfShortTrades( Summary summary )
{
double totalROA = summary.TotalPnl / ( summary.FinalAccountValue - summary.TotalPnl );
this.rowDescription = "Total # of short trades";
DataRow[] DataRows =
summary.AccountReport.RoundTrades.DataTable.Select( "((Trade='Short')and(ExitPrice is not null))" );
this.rowValue = DataRows.Length;
}
}
}
|