Case Usage of P123 Data Miner

Marco,
Is it normal that for 1 factor node I spend 12 credits on the P123 data miner? Let’s say I want to backtest 2000 factors for 10 buckets:

  • It keeps taking 2 credit for the universe+ benchmark for all the factors, two columns that always repeat the same thing that I don’t need yet I can’t tell the server to not return it
  • For 1 factor backtest of 10 deciles, it’s taking me 10 credits.

If I created a ranking system of 100 factor nodes that I want to backtest for 10 buckets, I believe it would cost the same amount of credits. How is that fair?

Thanks

INPUT

Main:
Operation: RankPerformance
On Error: Stop

Default Settings:
Vendor: Factset
PIT Method: Prelim
Buckets: 10
Start Date: 2000-01-01
End Date: 2020-11-30
Rebalance Frequency: 4Weeks
Universe: S&P/TSX 300
Benchmark: XIC:CN
Minimum Price: 1

Iterations:
-
Name: TotRevisionsLastW_U #Analysts 1
Ranking:
Nodes:
-
Type: StockFormula
Formula: TotRevisionsLastW
Rank: Higher
Scope: Universe

OUTPUT
TotRevisionsLastW_U
Metric Bucket 1 Bucket 2 Bucket 3 Bucket 4 Bucket 5 Bucket 6 Bucket 7 Bucket 8 Bucket 9 Bucket 10 Universe Benchmark
Annualized return -0.31 0.94 2.55 5.41 3.56 0.87 0.42 0.74 26.58 10.75 27.69 6.65
Average excess return -6.96 -5.71 -4.10 -1.24 -3.09 -5.78 -6.23 -5.91 19.93 4.10 21.04 NA
Total return -6.25 21.53 69.40 200.71 107.92 19.88 9.09 16.59 13717.22 745.34 16476.01 283.87
% of periods strategy outperforms 39.93 43.96 49.45 44.69 41.03 38.10 38.46 39.56 47.62 58.24 52.75 NA
Max gain 8.00 13.95 16.34 23.46 17.54 27.98 9.62 6.66 4704.11 19.85 2982.85 12.96
Max loss -25.20 -31.73 -30.96 -35.98 -9.77 -4.43 -9.19 -6.38 -25.83 -26.40 -27.24 -24.57
Max gain single stock 107.30 108.10 157.06 85.75 97.40 76.35 200.65 77.50 888699.99 126.65 888699.99 NA
Max loss single stock -59.63 -82.78 -78.46 -76.59 -62.92 -31.27 -99.99 -63.94 -93.71 -82.99 -99.99 NA
Avg excess return in Up Markets -2.87 -1.46 -0.19 -0.61 -2.59 -3.08 -3.11 -2.98 26.61 0.40 17.77 NA
Avg excess return in Down Markets 3.08 1.26 -0.33 0.95 3.41 3.63 3.57 3.43 1.61 0.24 0.20 NA
Sharpe -0.23 -0.01 0.12 0.24 0.26 -0.07 -0.46 -0.24 0.22 0.54 0.23 0.37
Sortino -0.27 -0.01 0.15 0.32 0.47 -0.14 -1.06 -0.37 3.45 0.72 3.42 0.48
StdDev 7.11 15.06 18.66 19.54 8.95 7.11 2.76 3.52 1473.17 17.51 940.84 14.05
Max Drawdown -41.77 -53.07 -63.01 -61.33 -26.32 -30.23 -14.26 -17.39 -98.74 -55.35 -98.03 -48.21
Beta 0.16 0.67 1.03 1.03 0.10 0.02 0.03 0.04 -3.38 1.05 -1.46 NA
Alpha -2.46 -3.57 -3.12 -0.62 1.82 -0.62 -1.41 -1.07 1952.74 4.04 653.73 NA
Avg # of positions 4.48 29.36 42.64 14.07 3.52 0.22 4.90 9.83 98.73 89.88 297.62 NA

It’s not. This operation cost should be based on time it takes to process. There are backtests that take 10 sec others that take minutes.

But we’ll never launch if we keep tweaking

Here’s an error I find that I can’t get around with:

2020-12-17 16:08:51,753: API request failed: ERROR: Name attribute cannot contain more than 50 characters. (on line 2)

How is that possible if my name is less than 50 characters?

Thanks


Main:
Operation: RankPerformance
On Error: Stop

Default Settings:
Vendor: Factset
PIT Method: Prelim
Buckets: 4
Start Date: 2000-01-01
End Date: 2020-11-30
Rebalance Frequency: 4Weeks
Universe: S&P/TSX 300
Benchmark: XIC:CN
Minimum Price: 1

Iterations:
-
Name: Analysts_28_U #Analysts 28
Ranking:
Nodes:
-
Type: StockFormula
Formula: (NextFYEPSMean-NextFYEPS1WkAgo)/Abs(NextFYEPS1WkAgo)
Rank: Higher
Scope: Universe

If you don’t supply a name for your node the system uses the formula content as the name, the formula is 52 characters long.
Also, the correct identifier for S&P/TSX Composite Index universe is SPTSX.

Isn’t my name Analysts_28_U? That’s less than 50 characters.

Name: Analysts_28_U

I have a custom universe I created called “S&P/TSX 300”, it won’t consider my custom universe?

Thanks

Analysts_28_U is the name of the ranking system which has two nodes: the overall rank and the formula node. It’s complaining about the formula node.

Although it’s really pointless since it’s not being displayed. We’ll made some tweaks.

Yeah just allow it to be more than 50 characters and then it will be fixed. Thanks!

@Marco,
How come I can’t add these two properties for each ranking below?

	Rank: Higher
	Scope: Universe

Main:
Operation: RankPerformance
On Error: Stop

Default Settings:
PIT Method: Prelim
Buckets: 5
Start Date: 2005-01-01
End Date: 2020-01-01
Rebalance Frequency: 13Weeks
Universe: SP500
Benchmark: SPY
Minimum Price: 1.0

Iterations:
-
Name: EBITDA/EV
Ranking:
Formula: EBITDATTM/EV

-  
    Name: Price to Book
    Ranking:
        Formula: Pr2BookQ

-  
    Name: Price to Sales
    Ranking:
        Formula: Pr2SalesTTM

-  
    Name: Price to Earnings
    Ranking:
        Formula: PEExclXorTTM

-  
    Name: Price to Free Cash Flow
    Ranking:
        Formula: Pr2FrCashFlTTM

Please check ranking setting reference:
https://www.dropbox.com/sh/08lu93jqio254m2/AABR9HE9yMvu1-6D5l90eJOqa/reference?dl=0&preview=setting_ranking.yaml&subfolder_nav_tracking=1
https://www.dropbox.com/sh/08lu93jqio254m2/AABR9HE9yMvu1-6D5l90eJOqa/reference?dl=0&preview=setting_ranking_nodes.yaml&subfolder_nav_tracking=1
You are trying to mix quick rank (4) with explicit nodes (3) definitions.

Sample to define a ranking system inline is here

https://www.dropbox.com/sh/08lu93jqio254m2/AAAOTFHt_zu76MX2rTxis9Sva/samples/Ranks?dl=0&preview=Ranks+-+Dissecting+components+of+a+Value+Momentum+ranking+system.yaml&subfolder_nav_tracking=1