[Quantproject-developers] QuantProject/b4_Business/a3_Testing Tester.cs, 1.8, 1.9
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2008-09-29 21:14:59
|
Update of /cvsroot/quantproject/QuantProject/b4_Business/a3_Testing In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv14019 Modified Files: Tester.cs Log Message: The new revision moves toward an intraday enabled framework. EndOfDayDate time has been removed, DateTime is used now. The code has been changed accordingly. Index: Tester.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b4_Business/a3_Testing/Tester.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Tester.cs 6 Feb 2005 18:23:30 -0000 1.8 --- Tester.cs 29 Sep 2008 21:14:36 -0000 1.9 *************** *** 3,7 **** Tester.cs ! Copyright (C) 2003 Glauco Siliprandi --- 3,7 ---- Tester.cs ! Copyright (C) 2003 Glauco Siliprandi *************** *** 19,23 **** along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ using System; --- 19,23 ---- along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! */ using System; *************** *** 42,125 **** public class Tester : BackTester { ! private TestWindow testWindow; ! private OrderManager orderManager = new OrderManager(); ! private double initialCash = 0.0; private IDataStreamer dataStreamer; ! //private TestResults testResults; ! public OrderManager OrderManager ! { ! get { return orderManager; } ! set { orderManager = value; } ! } ! public Tester(TestWindow testWindow , TradingSystems tradingSystems , double initialCash , ! IDataStreamer dataStreamer ) { this.testWindow = testWindow; this.dataStreamer = dataStreamer; this.TradingSystems = tradingSystems; ! this.initialCash = initialCash; ! this.Account.AddCash( new EndOfDayDateTime( testWindow.StartDateTime , EndOfDaySpecificTime.MarketOpen ) , ! initialCash ); } ! public override double Objective() ! { ! this.Account.Clear(); ! this.Account.AddCash( new EndOfDayDateTime( testWindow.StartDateTime , EndOfDaySpecificTime.MarketOpen ) , ! initialCash ); ! this.Test(); ! return - this.Account.GetFitnessValue(); ! } ! #region "Test" ! private void initializeTradingSystems() ! { ! foreach (TradingSystem tradingSystem in this.TradingSystems) ! { ! tradingSystem.Parameters = this.Parameters; ! tradingSystem.TestStartDateTime = this.testWindow.StartDateTime; ! tradingSystem.InitializeData(); ! } ! } ! private void handleCurrentSignal( Signal signal , IDataStreamer dataStreamer ) ! { ! Orders orders = this.Account.AccountStrategy.GetOrders( signal , dataStreamer ); ! foreach (Order order in orders ) ! { ! EndOfDayTransaction transaction = this.OrderManager.GetTransaction( order , ! dataStreamer ); ! this.Account.Add( transaction ); ! //Debug.WriteLine( account.ToString( dateTime ) ); ! } ! } ! private void testCurrentDateForTradingSystem( TradingSystem tradingSystem , ! ExtendedDateTime extendedDateTime , IDataStreamer dataStreamer ) ! { ! Signals signals = tradingSystem.GetSignals( extendedDateTime ); ! foreach (Signal signal in signals) ! handleCurrentSignal( signal , dataStreamer ); ! } ! private void testCurrentExtendedDateTime( ExtendedDateTime extendedDateTime , ! IDataStreamer dataStreamer ) ! { ! foreach (TradingSystem tradingSystem in this.TradingSystems) ! testCurrentDateForTradingSystem( tradingSystem , extendedDateTime ,dataStreamer ); ! } ! public override void Test() ! { ! DateTime dateTime = this.testWindow.StartDateTime; ! initializeTradingSystems(); ! while (dateTime <= this.testWindow.EndDateTime) ! { ! testCurrentExtendedDateTime( new ExtendedDateTime( dateTime , BarComponent.Open ) , ! dataStreamer ); ! testCurrentExtendedDateTime( new ExtendedDateTime( dateTime , BarComponent.Close ) , ! dataStreamer ); ! dateTime = dateTime.AddDays( 1 ); ! } ! } ! #endregion } } --- 42,138 ---- public class Tester : BackTester { ! private TestWindow testWindow; ! private OrderManager orderManager = new OrderManager(); ! private double initialCash = 0.0; private IDataStreamer dataStreamer; ! //private TestResults testResults; ! public OrderManager OrderManager ! { ! get { return orderManager; } ! set { orderManager = value; } ! } ! public Tester(TestWindow testWindow , TradingSystems tradingSystems , double initialCash , ! IDataStreamer dataStreamer ) { this.testWindow = testWindow; this.dataStreamer = dataStreamer; this.TradingSystems = tradingSystems; ! this.initialCash = initialCash; ! this.Account.AddCash( ! HistoricalEndOfDayTimer.GetMarketOpen( this.testWindow.StartDateTime ) , ! this.initialCash ); ! // this.Account.AddCash( new EndOfDayDateTime( testWindow.StartDateTime , EndOfDaySpecificTime.MarketOpen ) , ! // initialCash ); } ! public override double Objective() ! { ! this.Account.Clear(); ! this.Account.AddCash( ! HistoricalEndOfDayTimer.GetMarketOpen( this.testWindow.StartDateTime ) , ! this.initialCash ); ! // new EndOfDayDateTime( testWindow.StartDateTime , EndOfDaySpecificTime.MarketOpen ) , ! // initialCash ); ! // this.Account.AddCash( new EndOfDayDateTime( testWindow.StartDateTime , EndOfDaySpecificTime.MarketOpen ) , ! // initialCash ); ! this.Test(); ! return - this.Account.GetFitnessValue(); ! } ! #region "Test" ! private void initializeTradingSystems() ! { ! foreach (TradingSystem tradingSystem in this.TradingSystems) ! { ! tradingSystem.Parameters = this.Parameters; ! tradingSystem.TestStartDateTime = this.testWindow.StartDateTime; ! tradingSystem.InitializeData(); ! } ! } ! private void handleCurrentSignal( Signal signal , IDataStreamer dataStreamer ) ! { ! Orders orders = this.Account.AccountStrategy.GetOrders( signal , dataStreamer ); ! foreach (Order order in orders ) ! { ! TimedTransaction timedTransaction = ! this.OrderManager.GetTimedTransaction( ! order , dataStreamer ); ! this.Account.Add( timedTransaction ); ! //Debug.WriteLine( account.ToString( dateTime ) ); ! } ! } ! private void testCurrentDateForTradingSystem( TradingSystem tradingSystem , ! DateTime dateTime , IDataStreamer dataStreamer ) ! { ! Signals signals = tradingSystem.GetSignals( dateTime ); ! foreach (Signal signal in signals) ! handleCurrentSignal( signal , dataStreamer ); ! } ! private void testCurrentDateTime( DateTime dateTime , ! IDataStreamer dataStreamer ) ! { ! foreach (TradingSystem tradingSystem in this.TradingSystems) ! testCurrentDateForTradingSystem( tradingSystem , dateTime ,dataStreamer ); ! } ! public override void Test() ! { ! DateTime dateTime = this.testWindow.StartDateTime; ! initializeTradingSystems(); ! while ( dateTime <= this.testWindow.EndDateTime ) ! { ! this.testCurrentDateTime( ! HistoricalEndOfDayTimer.GetMarketOpen( dateTime ) , this.dataStreamer ); ! this.testCurrentDateTime( ! HistoricalEndOfDayTimer.GetMarketClose( dateTime ) , this.dataStreamer ); ! // testCurrentDateTime( new ExtendedDateTime( dateTime , BarComponent.Open ) , ! // dataStreamer ); ! // testCurrentDateTime( new ExtendedDateTime( dateTime , BarComponent.Close ) , ! // dataStreamer ); ! dateTime = dateTime.AddDays( 1 ); ! } ! } ! #endregion } } |