Take the calculation formula of Alpha#98 for example, and the data we use is the daily data from the New York Stock Exchange.

Expand|Select|Wrap|Line Numbers

- Kakushadze et al 2015 Alpha #98:
- (rank(decay_linear(correlation(vwap, sum(adv5, 26.4719), 4.58418), 7.18088)) -
- rank(decay_linear(Ts_Rank(Ts_ArgMin(correlation(rank(open), rank(adv15), 20.8187), 8.62571), 6.95668), 8.07206)))

Image description

calculation formula of Alpha#98

We can significantly reduce the development cost of complex calculations such as Alpha#98 by using DolphinDB’s built-in functions with panel data (in matrix form).

Image description

code of Python

⬇️

Image description

code of DolphinDB

Why is DolphinDB’s code so concise and elegant? 😲

On the one hand, using panel data provided by DolphinDB to implement the Alpha#98 factor simplifies the calculation logic and makes the code very precise. Panel data is a matrix that combines cross-sectional data and time-series data.

Image description

DolphinDB panel data

On the other hand, DolphinDB has more than 1,500 built-in functions and many of them are optimized. You can implement all 101 alphas with DolphinDB built-in functions.

Image description

DolphinDB built-in functions

Let’s take a look at DolphinDB script, which is very similar to the original formulas.

Expand|Select|Wrap|Line Numbers

- def alpha98Panel(vwap, open, vol){
- return tsRank(mavg(mcorr(vwap, msum(mavg(vol, 5), 26), 5), 1..7)) - tsRank(mavg(mrank(9 - mimin(mcorr(tsRank(open),
- tsRank(mavg(vol, 15)), 21), 9), true, 7), 1..8))
- }

Image description

time cost in DolphinDB

Furthermore, DolphinDB supports unified stream and batch processing. It provides the streamEngineParser function to automatically form a pipeline of stream engines to carry out the specified metrics calculation. You can directly use the Alpha#98 function as the metrics, with no need to modify the script for metrics calculation.

Click the demo below to get more info!

https://youtu.be/B0lYBAI_FEc