[Quantproject-developers] QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag WFLagGenomeManag
Brought to you by:
glauco_1
|
From: Glauco S. <gla...@us...> - 2006-05-14 21:16:54
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv23906/b7_Scripts/WalkForwardTesting/WalkForwardLag Modified Files: WFLagGenomeManager.cs Log Message: Changed code to change fitness function easily. Index: WFLagGenomeManager.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/WalkForwardTesting/WalkForwardLag/WFLagGenomeManager.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WFLagGenomeManager.cs 14 Mar 2006 15:04:51 -0000 1.1 --- WFLagGenomeManager.cs 14 May 2006 21:16:51 -0000 1.2 *************** *** 91,130 **** this.wFLagCandidates = new WFLagCandidates( this.eligibleTickers , this.firstQuoteDate , this.lastQuoteDate ); - - // this.retrieveData(); } - // #region retrieveData - // private float[] getArrayOfRatesOfReturn( string ticker ) - // { - // float[] returnValue = null; - // Quotes tickerQuotes = - // new Quotes( ticker , this.firstQuoteDate , this.lastQuoteDate ); - // float[] allAdjValues = - // QuantProject.Data.ExtendedDataTable.GetArrayOfFloatFromColumn( - // tickerQuotes , "quAdjustedClose"); - // returnValue = new float[ allAdjValues.Length ]; - // int i = 0; //index for ratesOfReturns array - // for( int idx = 0 ; idx < allAdjValues.Length - 1 ; idx++ ) - // { - // returnValue[ i ] = allAdjValues[ idx + 1 ] / allAdjValues[ idx ] - 1; - // i++; - // } - // return returnValue; - // } - // private void retrieveData() - // { - // this.closeToCloseReturns = - // new double[ this.eligibleTickers.Rows.Count ]; - // for(int i = 0; i<this.eligibleTickers.Rows.Count; i++) - // { - // string ticker = (string)this.eligibleTickers.Rows[i][0]; - // this.closeToCloseReturns[i] = new WFLagCandidate( ticker, - // this.getArrayOfRatesOfReturn( ticker ) ); - //// this.closeToCloseReturns[i] = new CandidateProperties( ticker, - //// this.getArrayOfRatesOfReturn( ticker ) ); - // } - // } - // #endregion public static string GetTicker( string signedTicker ) --- 91,96 ---- *************** *** 140,151 **** #region GetFitnessValue #region getFitnessValue_getLinearCombinationReturns ! private Hashtable getTickers( ICollection signedTickers ) { ! Hashtable tickers = new Hashtable(); foreach ( string signedTicker in signedTickers ) ! tickers.Add( WFLagGenomeManager.GetTicker( signedTicker ) , null ); return tickers; } ! private float[] getMultipliers( ICollection signedTickers ) { float[] multipliers = new float[ signedTickers.Count ]; --- 106,125 ---- #region GetFitnessValue #region getFitnessValue_getLinearCombinationReturns ! private ArrayList getEnumeratedSignedTickers( ! ICollection signedTickers ) { ! ArrayList enumeratedSignedTickers = new ArrayList(); foreach ( string signedTicker in signedTickers ) ! enumeratedSignedTickers.Add( signedTicker ); ! return enumeratedSignedTickers; ! } ! private ArrayList getTickers( ICollection signedTickers ) ! { ! ArrayList tickers = new ArrayList(); ! foreach ( string signedTicker in signedTickers ) ! tickers.Add( WFLagGenomeManager.GetTicker( signedTicker ) ); return tickers; } ! private float[] getMultipliers( ArrayList signedTickers ) { float[] multipliers = new float[ signedTickers.Count ]; *************** *** 164,173 **** ICollection signedTickers ) { ! int numberOfSignedTickers = signedTickers.Count; ! Hashtable tickers = this.getTickers( signedTickers ); ! float[] multipliers = this.getMultipliers( signedTickers ); // arrays of close to close returns, one for each signed ticker float[][] tickersReturns = ! this.wFLagCandidates.GetTickersReturns( tickers.Keys ); double[] linearCombinationReturns = new double[ tickersReturns[ 0 ].Length ]; --- 138,149 ---- ICollection signedTickers ) { ! ArrayList enumeratedSignedTicker = ! this.getEnumeratedSignedTickers( signedTickers ); ! int numberOfSignedTickers = enumeratedSignedTicker.Count; ! ArrayList tickers = this.getTickers( enumeratedSignedTicker ); ! float[] multipliers = this.getMultipliers( enumeratedSignedTicker ); // arrays of close to close returns, one for each signed ticker float[][] tickersReturns = ! this.wFLagCandidates.GetTickersReturns( tickers ); double[] linearCombinationReturns = new double[ tickersReturns[ 0 ].Length ]; *************** *** 212,215 **** --- 188,240 ---- } + private double[] getFinalReturns( double[] strategyReturns , + int finalLength ) + { + double[] finalReturns = new double[ finalLength ]; + for ( int i = strategyReturns.Length - finalLength ; + i < strategyReturns.Length ; i++ ) + finalReturns[ i - ( strategyReturns.Length - finalLength ) ] = + strategyReturns[ i ]; + return finalReturns; + } + private double getFitnessValue_sharpeRatio( + double[] returns ) + { + double fitnessValue = + AdvancedFunctions.GetSharpeRatio( + returns ); + return fitnessValue; + } + private double getFitnessValue_withGoodFinal( + double[] strategyReturns ) + { + double[] secondHalfStrategyReturns = + this.getFinalReturns( strategyReturns , + strategyReturns.Length/2 ); + double[] fourthQuorterStrategyReturns = + this.getFinalReturns( strategyReturns , + strategyReturns.Length/4 ); + double fitnessValue = + this.getFitnessValue_sharpeRatio( strategyReturns ) * + this.getFitnessValue_sharpeRatio( secondHalfStrategyReturns ) * + this.getFitnessValue_sharpeRatio( fourthQuorterStrategyReturns ); + return fitnessValue; + } + + private double getFitnessValue( double[] strategyReturns ) + { + double fitnessValue = + AdvancedFunctions.GetSharpeRatio( + strategyReturns ); + // double fitnessValue = + // AdvancedFunctions.GetExpectancyScore( + // strategyReturns ); + // double fitnessValue = + // this.getFitnessValue_withGoodFinal( strategyReturns ); + // double fitnessValue = + // BasicFunctions.GetSimpleAverage( strategyReturns ) / + // ( Math.Pow( BasicFunctions.GetStdDev( strategyReturns ) , 1.3 ) ); + return fitnessValue; + } private double getFitnessValue( WFLagSignedTickers wFLagSignedTickers ) { *************** *** 223,229 **** this.getFitnessValue_getStrategyReturn( drivingPositionsReturns , portfolioPositionsReturns ); ! double fitnessValue = ! AdvancedFunctions.GetSharpeRatio( ! strategyReturns ); return fitnessValue; } --- 248,252 ---- this.getFitnessValue_getStrategyReturn( drivingPositionsReturns , portfolioPositionsReturns ); ! double fitnessValue = this.getFitnessValue( strategyReturns ); return fitnessValue; } *************** *** 297,301 **** position = Math.Abs( geneValue ) - 1; initialCharForTickerCode = "-"; ! } return initialCharForTickerCode + ( string )this.eligibleTickers.Rows[ position ][ 0 ]; --- 320,324 ---- position = Math.Abs( geneValue ) - 1; initialCharForTickerCode = "-"; ! } return initialCharForTickerCode + ( string )this.eligibleTickers.Rows[ position ][ 0 ]; |