MatrixBerryCore
genteststruct.m
Go to the documentation of this file.
1 function Data=genteststruct(inpNum)
2 Data.dConf.gen.curRevision=19641;
3 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 % %%
5 %% ----------------------------------General settings
6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7 
8 % number of processor used (increase of this parameter may lead to speeding
9 % up some of blocks)
10 Data.dConf.gen.nProcessors=2;
11 
12 %% Data.dConf.gen.input.database
13 Connectors(1).type='mym'; % matlab4b
14 Connectors(1).sourceName='production_1_8_all';
15 Connectors(1).hostName='model4a'; % dont forget to run putty!
16 Connectors(1).login='root';
17 Connectors(1).password='matlab4a';
18 %
19 Connectors(2).type='mym'; %penguin for pe funds
20 Connectors(2).sourceName='production_1_8_all';
21 Connectors(2).hostName='10.100.8.35';
22 Connectors(2).login='root';
23 Connectors(2).password='rico';
24 %
25 Data.dConf.gen.connectors=Connectors;
26 % the name of the configuration that is loaded from database
27 Data.dConf.gen.configurationNames={'sysrep_hor_3_15_maws_80_block_useexisting'};
28 Data.dConf.gen.configurationXmlFiles={inpNum};
29 %
30 %
31 % each configuration has a version (major and minor)
32 % describing its creation method
33 % RelVal has a major configuration version number,
34 % loading configurations with different major version numbers
35 % than Data.dConf.gen.configurationMajorVersion results in an error
36 Data.dConf.gen.configurationMajorVersion=1;
37 %
38 %
39 %penguin production database
40 Data.dConf.gen.input.gen.connector=2;
41 %
42 %
43 %assets to be TRADED - a subset of assets to be pulled from the database
44 %for future - time of historical database update by the Revolver based on
45 %data recorded intra-day
46 Data.dConf.gen.input.realtime.quotesFileName='quotes.mat';
47 Data.dConf.gen.input.realtime.quotesFieldNames={...
48  'askPrice','askSize','bidPrice','bidSize','lastPrice','lastSize','midAvgPrice'...
49  };
50 Data.dConf.gen.input.realtime.tradesFileName='trades.mat';
51 %
52 Data.dConf.gen.input.realtime.instHeatRateFileName='heatrate.mat';
53 %
54 %% Data.dConf.gen.cdefs.gen
55 %
56 Data.dConf.gen.cdefs.gen.instTypeName={'futures','call','put'};
57 Data.dConf.gen.cdefs.gen.instTypeCode={'Future','Call','Put'};
58 %
59 %
60 Data.dConf.gen.cdefs.gen.somethingDummy={'Future','Call','Put';...
61  'Future2','Call1','3'};
62 %
63 %% Data.dConf.gen.cdefs.pairType
64 %relationships between pairs analyzed as a part of pair-wise method based
65 %on heat-rate modelling
66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67 %% ---------------------------------Backtest settings
68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 % a directory where the software stores transitional probability matrices
70 % of mean reversion estimates - BACKTEST mode
71 if ispc
72  Data.dConf.backtest.output.gen.dumpDir='.\DumpBKT\';
73 else
74  Data.dConf.backtest.output.gen.dumpDir='./DumpBKT/';
75 end
76 
77 %a directory, where backtest stores its cached sqlqueries
78 Data.dConf.backtest.input.gen.dumpDir=['test' filesep 'DumpBKT' filesep];
79 
80 Data.dConf.backtest.gen.isRecoveredFromDump=0;
81 % options of saving results of experiments (used in behavioral testing
82 % harness)
83 Data.dConf.backtest.gen.scenarioName='backtest_testing';
84 Data.dConf.backtest.gen.isSavedToDB=1; % save in database
85 Data.dConf.backtest.gen.isSavedToFile=1; % save in .exps file
86 % list of paths in from Data.dCalc.backtest.tradingAct that should be
87 % saved in universal structure of experiment
88 Data.dConf.backtest.gen.resPathList={'gen','portfolio','pair.positions','asset.positions'};
89 % directory in which results of experiments will be stored
90 %
91 Data.dConf.backtest.gen.resDir=['test' filesep '..' filesep '..' filesep 'EExplorer/Experiment_base' filesep];
92 %
93 %% backtest sharing setting
94 % if true, skip sharing,
95 Data.dConf.backtest.calc.sharing.isSharing=0;
96 Data.dConf.backtest.calc.sharing.sharingFolder=['test' filesep 'DumpBKT\share'];
97 % do perform some testing checks upon sharing,
98 Data.dConf.backtest.calc.sharing.isTestMode=0;
99 
100 %% backtest sql caching setting
101 
102 Data.dConf.backtest.input.database.sqlCaching.cacheDir=['test' filesep 'DumpBKT/sql' filesep];
103 Data.dConf.backtest.input.database.sqlCaching.isCaching=0;
104 %
105 %% Do not place on GUI
106 
107 %
108 % minimal interval of non-missed quotes for pair to be admissible; this
109 % interval begins with first non-missed quote and ends at the last day when
110 % both assets of pair are not yet expired
111 %
112 %% Place on GUI
113 %defualt dates of subset of backtyest period to be run - has to be inside
114 %the total period specified earlier in the file. These dates can be changed
115 %on the screen, but will come back to default every time the system is
116 %re-started
117 
118 %Data.dConf.backtest.calc.gen.startDate=datenum('01/1/2006');
119 %Data.dConf.backtest.calc.gen.endDate=datenum('08/1/2006');
120 
121 %subest history and future term structures used for estimation - same
122 %relationships to overall history and screen changes as dates above
123 % backtest portion of transactiopn cost expected to be paid when exiting from
124 % position
125 %backtest number of times a year when gains are distributed to investors and assets
126 %under management reduced back to initial asset base
127 % probability for pair PnL outliers
128 %
129 %% Data.dConf.backtest.calc.missedQuotesRecovery
130 %
131 
132 %% Data.dConf.backtest.calc.portfBkg
133 %
134 %
135 %% Data.dConf.backtest.calc.pairForecast
136 %
137 %
138 % if isTestMode is nonzero, then the following parameter determine the list
139 % of pairs that would be forecasted in special mode and such that only
140 % they would be tradable and may be saved in results of experiment and so
141 % on; selectedPairNames is cell array of strings and has two rows and
142 % nPairs columns, each column corresponds to each pair (or set of pairs),
143 % in each cell it is possible to set both commodity type (something like
144 % 'NG') and commodity type and year (something like 'NG7') and asset
145 % (something like 'NG7K'), moreover, it is possible for pair to set, say,
146 % commodity type versa some asset, for instance, {'PJM';'NG7K'}, then all
147 % pairs such that their first lag has PJM as underlying commodity and their
148 % second lag is exactly 'NG7K' would be selected; if this list is empty,
149 % then all pairs are tradable by default
150 %
151 % Remark: 1) If selectedPairNames is nonempty, i.e. we do select some pairs
152 % as tradable, then logit regression would be estimated only for
153 % these pairs only in the case forecastBasisMode (see below) is
154 % equal to 'full'
155 % 2) The mode in which selected pairs are forecasted is determined
156 % by the value of isTestMode parameter, the possible values are
157 % as following:
158 % a) 1 or 2 --- then the logit regression parameters are
159 % estimated only for selected pairs with given test mode
160 % b) 3 --- then the logit regression parameters are estimated
161 % only for selected pairs with non-test mode
162 % 3) If forecastBasisMode (see below) is equal to 'full' and the
163 % system does select some pairs, then forecasting basis used to
164 % determine metrics of portfolio is constructed without
165 % taking into account of cointegration constraints
166 Data.dConf.backtest.calc.pairForecast.gen.pair.selectedPairNames={};%...
167 % [{'PJM';'PJM'} {'PJM';'NG'} {'PJM';'CL'} {'PJM';'HO'} {'PJM';'NYA'}...
168 % {'NYA';'NG'} {'NYA';'NYA'} {'PJM';'NEPool'} {'NEPool';'NG'}...
169 % {'NEPool';'CL'} {'NEPool';'HO'} {'NEPool';'NYA'} {'NEPool';'NEPool'}];
170 
171 
172 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
173 % hedgeRatio method parameters
174 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
175 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.hedgeRatio.param=[];
176 
177 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.isConstrApplied=true;
178 %matrix that determines drivers between different commodity types for
179 %equal maturities, 1 is set if first lag (row) is a driver for second
180 %lag (colum), 0 otherwise
181 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.constr.eqMaturityDriver=[...
182 ...%NG PJM CL HU HO NYA NEPool
183  % 0 1 0 0 0 1 1;... %NG
184 % 0 0 0 0 0 1 1;... %PJM
185 % 0 1 0 0 1 0 0;... %CL
186 % 0 0 0 0 0 0 0;... %HU
187 % 0 0 0 0 0 0 1;... %HO
188 % 0 0 0 0 0 0 0;... %NYA
189 % 0 0 0 0 0 0 0]; %NEPool
190 %constraint applied when month of given commodity type (typeId) is in
191 %the given range (monthNum); month contract drives all contracts of
192 %the same type and the same season and months from monthDriven list
193 % StIntratypeMonthDriver=struct('typeId',[],'monthNum',[],'monthDriven',[]);
194 %
195 % StIntratypeMonthDriver(1).typeId='NG';
196 % StIntratypeMonthDriver(1).monthNum=[11 12 1 2 3];
197 % StIntratypeMonthDriver(1).monthDriven=[11 12 1 2 3];
198 % %
199 % StIntratypeMonthDriver(2).typeId='NG';
200 % StIntratypeMonthDriver(2).monthNum=3;
201 % StIntratypeMonthDriver(2).monthDriven=4;
202 % %
203 % StIntratypeMonthDriver(3).typeId='NG';
204 % StIntratypeMonthDriver(3).monthNum=[4 5 6 7 8 9 10];
205 % StIntratypeMonthDriver(3).monthDriven=[4 5 6 7 8 9 10];
206 % %
207 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.constr.intratypeMonthDriver=StIntratypeMonthDriver;
208 %all pairs between two commodity types (i.e. for all combinations of
209 %maturities) are taken if 1 (this constraint override all preceding
210 %constraints in this case), otherwise only those pairs are constructed that
211 %are determined by preceding constraints above
212 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.constr.allPairs=[...
213 % ...%NG PJM CL HU HO NYA NEPool
214 % 0 0 0 0 0 0 0;... %NG
215 % 0 0 0 0 0 0 0;... %PJM
216 % 0 0 1 0 0 0 0;... %CL
217 % 0 0 0 0 0 0 0;... %HU
218 % 0 0 0 0 0 0 0;... %HO
219 % 0 0 0 0 0 0 0;... %NYA
220 % 0 0 0 0 0 0 0]; %NEPool
221 %method for determining size of moving window used in cointegration
222 %framework
223 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.cointWindSize.curMethod='fixedDate';
224 %in this method the size of the moving window is determined as difference
225 %between the total number of historical observations and given subtrahend,
226 %if it is equal to 0, then we take the size of the moving window equal to
227 %the total number of historical observations
228 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.cointWindSize.methods.histMinusLast.param.subtrahend=0;
229 %in this method the size of the moving window is determined by fixed
230 %calendar date, i.e. the size of the window coincides with the number of
231 %available observations up to startDate
232 %Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.cointWindSize.methods.fixedDate.param.startDate=datenum('22-May-2007');
233 % in this method the size of the moving window is given explicitely
234 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.coint.methods.cointBasis.param.cointWindSize.methods.exact.param.windSize=1000;
235 %
236 % %% new prob calc settings
237 % number of lags in estimation of meanDec
238 Data.dConf.backtest.calc.pairForecast.meanDec.nLags=120+inpNum;
239 Data.dConf.realtime.calc.pairForecast.meanDec.nLags=120;
240 % aggr. size (number of lags in aggr. interval)
241 Data.dConf.backtest.calc.pairForecast.meanDec.aggrSize=30;
242 Data.dConf.realtime.calc.pairForecast.meanDec.aggrSize=30;
243 % number of points in empirical distribution of residuals
244 Data.dConf.backtest.calc.pairForecast.meanDec.nPoints=10;
245 Data.dConf.realtime.calc.pairForecast.meanDec.nPoints=10;
246 % use aux variable or not in creation of armaforecast class
247 Data.dConf.backtest.calc.pairForecast.meanDec.isUseAuxVar=0;
248 Data.dConf.realtime.calc.pairForecast.meanDec.isUseAuxVar=0;
249 % work with logitautoregress class or not (used in test script of
250 % armaforecast class)
251 Data.dConf.backtest.calc.pairForecast.meanDec.isUseLogitClass=1;
252 Data.dConf.realtime.calc.pairForecast.meanDec.isUseLogitClass=1;
253 %% Probability calculation settings
254 %
255 %method for determining size of moving window used in discrete
256 %approximation performed for estimation of transitional probabilities via
257 %multinomial logit regression
258 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.discrWindSize.curMethod='fixedDate';
259 %in this method the size of the moving window is determined as difference
260 %between the total number of historical observations and given subtrahend,
261 %if it is equal to 0, then we take the size of the moving window equal to
262 %the total number of historical observations
263 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.discrWindSize.methods.histMinusLast.param.subtrahend=0;
264 %in this method the size of the moving window is determined by fixed
265 %calendar date, i.e. the size of the window coincides with the number of
266 %available observations up to startDate
267 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.discrWindSize.methods.fixedDate.param.startDate=datenum('20-Feb-2007');
268 % in this method the size of the moving window is given explicitely
269 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.discrWindSize.methods.exact.param.windSize=250;
270 %determines mode for calculation of transitional probabilities matrix and
271 %use of already calculated one (if it exists); if it is 'calc', then matrix
272 %is calculated anyway, if it is 'request', then user is requested what to
273 %do, if it is 'useexisting', then user is not requested what to do, matrix
274 %is calculated only in the case when there is no calculated one that may be
275 %used, 'useexact' means almost the same as 'useexisting' save the existing
276 %matrix is used ONLY when its status is 1 (i.e. it was calculated for all
277 %groups)
278 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probCalcMode='calc';%/{'calc','request','useexisting','useexact'}
279 %determines whether outliers in deviation from short-term trend (i.e.
280 %deviations that do not lie in the interval plus-minus 3*sigma from
281 %short-term trend) are truncated or not according to the probability
282 %partitioning constructed during discretization
283 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.isDevTruncated=false;
284 %maximum transition horizon used in forecasting
285 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.horizonList=[2 3 5 8 10 15 22];
286 %number of lags used in multilogit regression
287 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.nLags=25;
288 %ratio used for calculation of maximum adverse movement according to
289 %formula maxAdvMove=std2advMoveRatio*pairPriceStd;
290 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.std2advMoveRatio=3/4;
291 %window size for moving standard deviation calculation
292 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.stdWindowSize=40;
293 %probability level specifying the width of trading channel
294 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.channelProbWidth=0.8;
295 %probability distribution specifying the regimes- DO NOT EDIT
296 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probPart=[0.05 0.05 nan 0.05 0 0.05 nan 0.05 0.05];
297 %Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probPart=[0.1 0.1 nan 0.075 0 0.075 nan 0.1 0.1];
298 %window size for predictability error calculation
299 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.errWindowSize=100;
300 %size of shift (in days) that is used for predictability error calculation
301 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.errWindowShift=5;
302 %window size for probability matrices calculation
303 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probWindowSize=5*250;
304 %window size for trend calculation in form of MA (when is fixed for all
305 %pairs
306 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.fixed.maWindowSize=150;
307 %window calculation method
308 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.curMethod='fixed';%groupAndPairOptimal,groupOptimal,fixed
309 %
310 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.gen=[];
311 % minimal possible optimal window size for calc. MA (groups & pairs)
312 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.groupAndPairOptimal.minWindowSize=6;
313 % maximal possible optimal window size for calc. MA (groups & pairs)
314 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.groupAndPairOptimal.maxWindowSize=100;
315 % horizon for calculating metrics (groups & pairs)
316 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.groupAndPairOptimal.horizon=5;
317 % minimal possible optimal window size for calc. MA (groups)
318 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.groupOptimal.minWindowSize=6;
319 % maximal possible optimal window size for calc. MA (groups)
320 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.groupOptimal.maxWindowSize=100;
321 % horizon for calculating metrics (groups)
322 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.windSizeCalc.methods.groupOptimal.horizon=5;
323 %window size for smoothing in form of MA appropriate is in [1,3]
324 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.maSmoothWindowSize=[];
325 %length (in days) of probability calculation period
326 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probCalcPeriod=5;
327 %method of the transitional probabilities calculation - 'discrete' means we use
328 %discrete time series (cathegories) both for forecasted and observed values
329 %in multinomial logistic regresssion; 'semidiscrete' means we use discrete
330 %values (cathegories) for forecasted values and continuous values
331 %(normalized deviations from short-term trend) for observed time series
332 % Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probCalcScheme='semidiscrete';%/{'discrete','semidiscrete'}
333 %weights for last days in multinomial logistic regression, temporarily unique for all
334 %pair types
335 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probGroup.curMethod='transProbGroups';
336 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probGroup.methods.transProbGroups.param.yearWeights=[0.05 0.1 0.175 0.275 0.4]+inpNum;
337 %method of the returns calculation - 'instant' means we use only one lags
338 %while 'full' means we forecast each horizon separately. Use full - for
339 %real-time. Get better quality returns!
340 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.retCalcScheme='full';%/{'instant','full'}
341 %method of score processing - 'none' means that no processing of score is
342 %performed, 'pricecorridor' means that method based on change of
343 %current price corridor is used
344 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.scoreProc.curMethod='priceCorridor';%/{'none','priceCorridor'}
345 %determines whether each price corridor have fixed center or it is
346 %determined at each iteration automatically (for backtest it is false,
347 %thus, the center is determined by the last price on which score is based)
348 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.scoreProc.methods.priceCorridor.param.isCenterFixed=false;
349 %multiplier coefficient determining width of price corridor, that is
350 %calculated as pair bid-ask spread multiplied by its value
351 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.scoreProc.methods.priceCorridor.param.corridorMultCoeff=...
352  [1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5;1.5]+inpNum;
353 %names of regimes used for testing purposes
354 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.regNames=...
355  {'StrDevDown',...
356  'DevDown',...
357  'ModDevDown',...
358  'Eq',...
359  'ModDevUp',...
360  'DevUp',...
361  'StrDevUp'};
362 
363 % method of choice of basis for forecasting of returns - 'auxBasis' means
364 % we use special auxiliary forecasting basis to calculate returns while
365 % 'full' means we forecast all yet non-expired pairs and 'cointConstr'
366 % means we forecast only those non-expired pairs for which cointegration
367 % constrains are true (see above for details)
368 %Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.forecastBasisMode='full';%/{'auxBasis','full','cointConstr'}
369 % parameters that may influence on probability matrix (saved in cache for
370 % filtering); if path includes as its part ".backtest." or ".realtime.",
371 % this part should be changed on ".(curMode).", path must be absolute,
372 % i.e. should start from "Data.dConf."
373 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.probMatParamPaths={...
374  'Data.dInput.configuration.configurationStruct.modules.generalProperties.modules.database',...
375  'Data.dInput.configuration.configurationStruct.modules.generalProperties.gen.common.instMode',...
376  'Data.dInput.configuration.configurationStruct.modules.forecastingProperties.modules.trendDev.methods.transProb.gen.common.className',...
377  'Data.dInput.configuration.configurationStruct.modules.forecastingProperties.modules.trendDev.methods.transProb.gen.common.forecastPairMode',...
378  'Data.dInput.configuration.configurationStruct.modules.forecastingProperties.modules.trendDev.methods.transProb.gen.common.outliersWindowSize',...
379  'Data.dConf.gen.input.gen.typeId',...
380  'Data.dConf.gen.input.gen.nHistTerms',...
381  'Data.dConf.gen.input.gen.nMaxTTM',...
382  'Data.dConf.gen.input.gen.nMinHistQuotes',...
383  'Data.dConf.(curMode).calc.gen.nHistTerms',...
384  'Data.dConf.(curMode).calc.gen.nMaxTTM',...
385  'Data.dConf.(curMode).calc.pairForecast.gen.useAllHist',...
386  'Data.dConf.(curMode).calc.pairForecast.gen.pair.typeComb',...
387  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.discrWindSize',...
388  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.isDevTruncated',...
389  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.horizonList',...
390  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.nLags',...
391  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.probPart',...
392  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.probWindowSize',...
393  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.windSizeCalc',...
394  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.maSmoothWindowSize',...
395  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.probCalcScheme',...
396  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.probGroup',...
397  'Data.dConf.(curMode).calc.pairForecast.methods.transProb.pair.prob.retCalcScheme'};
398 
399 
400 
401 %% ----------------- Score Statistics gathering
402 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.scoreStats=struct;
403 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.scoreStats.pairPriceStatNames={'scoreSigned','profit','risk','horizon'};
404 Data.dConf.backtest.calc.pairForecast.methods.transProb.pair.prob.scoreStats.pairPriceHorizonStatNames={'scoreSignedAll','profitAll','riskAll','channelWidthAll','riskMultAll'};
405 
406 %% ----------------- Portfolio Generation settings
407 %% general constraints
408 %% 'pairSep' method scoring mechanism parameters -see mechansim description
409 %% for full picture
410 %
411 
412 
413 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.strat.curMethod='advanced';
414 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.strat.methods.advanced.func='advancedstrat';
415 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.strat.methods.advanced.param.scoreLevel=4;
416 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.strat.methods.simple.func='simplestrat';
417 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.strat.methods.simple.param.scoreLevel=4;
418 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.strat.methods.simple.param.corrLevel=0.4;
419 
420 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.gen.constrPairTypes=[0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0];
421 
422 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.gen.constrPercentLimit=0.6;
423 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.gen.maxDiffDuration=[1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1];
424 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.gen.capitalBaseRatio=0.15;
425 Data.dConf.backtest.calc.portfolioGen.methods.pairSepNew.gen.isInteger=1;
426 %
427 %% 'markowitz' method scoring mechanism parameters -see mechansim description
428 %% for full picture
429 %
430 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.constrGroup{1}={'PJM','NYA','NEPool'};
431 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.constrGroup{2}={'NG'};
432 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.constrGroup{3}={'CL','HU','HO'};
433 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.constrGroupNames={'Electricity','Gas','Oil'};
434 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.intragroupConstr=[0.45 0.15 0.15];
435 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.this2FollowingConstr=[0.65 0.65 0.3];
436 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.typeCriticalLiquidity=[20000 250 20000 200 200 200 200];
437 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.liquidityCostExp=1;
438 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.timePeriodExp=0.5;
439 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.criticalExposureTime=1;
440 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.capitalEffRatio=NaN;
441 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.cerRecalcFrequency=10;
442 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.constr.spreadFraction=[0.5 0.5 0.5 1 1 0.5 0.5];
443 
444 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.riskAversion=40;
445 
446 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.stdWindowSize=35;
447 
448 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.capitalBaseMethod='byAssets';
449 
450 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.intportDelta=0;
451 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.nonstatAversion=100;
452 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.timeIndiffExp=0;
453 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.timeHorizons=[2 3 5 8 10 15 22];
454 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.riskCombSelectMethod='adaptiveBasisSharpe';
455 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.riskAversionScnPrefix='RA=';
456 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.timeIndiffExpScnPrefix='TIE=';
457 Data.dConf.backtest.calc.portfolioGen.methods.markowitz.portopt.assetGroupDistrMethod='byPairs';
458 end
459 function resChar=filesep()
460 resChar='/';
461 end
function genteststruct(in inpNum)
GENTESTSTRUCT generates a complex test structure using input number to guarantee a uniqueness...