Free alpha for arb lovers!
Also a bit of recommendation: "...the distance approach is the starting point in the literature - then cointegration and then you can level up from there.
We love the ML approach to pairs selection."
https://t.co/5QrKpnlNiv
made a repo for some of the common tools/implementations used in MM
just a ringbuffer & orderbook for now, will keep updating and adding new stuff there (ema, timestamps etc)
link: https://t.co/fE4W4AEW6x
One of the best lectures on Price Momentum I've found,
In 24 minutes you learn more than most momentum books.
Plus he includes a paper accompanying the lecture.
Credit to Columbia Business School:
Advanced techniques for quantitative trading using stat arb.
(By a veteran trader.)
Quantitative Portfolio Management: The Art and Science of Statistical Arbitrage.
Here's what's inside:
Building software based on a messy database will become a disaster.
Using a unified strategy for naming database resources is crucial.
This is the naming convention I have used with all the teams I’ve worked with for 20+ years.
Table names
Always the name of the Entity or Relationship but in plural form. (Students, Schools, Games, WorkOrders, GameStats, StudentAssigments)
Unless I mention an exception, everything will use the Camel Case annotation (Initial uppercase for every name).
Column names
Singular. (Id, LastName, FirstName, CategoryId)
Special notes for keys:
The primary key (usually a surrogate key) is named like [Id].
Many people use [ID] instead of Id, but I don’t like it because it is hard to use with Object Relational Mapping tools (ORM)
The foreign keys are named with the foreign table's name in singular plus Id, like CategoryId, and CountryId.
Special mention for boolean columns:
Make sure you name those columns in the way that ‘false’ is their default value to avoid incorrect and unexpected assigned values.
Used ‘Deleted’ and ‘Disabled’ instead of ‘Active’ and ‘Able’, OutOfStock instead of InStock.
You can also use the ‘Is’ prefix, like IsDeleted, IsDisabled, and IsOutOfStock, but ensure consistency across all the boolean names.
Index names
For single-column indexes: Name of the Entity, underscore character (_), and the column name like Student_Passport, Student_CountryId
For multi-column indexes: Name of the Entity, underscore character (_), and column names.
If you find a descriptive name, you can use it instead of the list of column names, like Student_OnlyOneAssigmentByWeek
Views, Functions, Stored Procedures, and Triggers
I follow the same naming convention for these three types of assets, prefixing them with vw_, fn_, and sp_, tg_, respectively, plus some descriptive names.
Examples:
vw_ActiveStudents, vw_DeletedProducts, vw_AvailableProducts.
fn_CalculateAverageScoredGoalsByGame, fn_WorkedHoursByEmployee.
sp_GetListOfActiveStudents, sp_UpdateStudentAssigments.
tg_UpdateProductStock, tg_UpdateAssigmentsWhenAfterStudentUpdated.
Feel free to add a comment below with the one you have used and tell me if you like this one.
𝗔 𝗩𝗶𝘀𝘂𝗮𝗹 𝗚𝘂𝗶𝗱𝗲 𝗢𝗻 𝗛𝗼𝘄 𝗧𝗼 𝗖𝗵𝗼𝗼𝘀𝗲 𝗧𝗵𝗲 𝗥𝗶𝗴𝗵𝘁 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲
Choosing the right data store can be confusing with so many options around. This diagram shows a selection choice for a datastore based on a use case (𝗦𝗤𝗟 𝘃𝘀 𝗡𝗼𝗦𝗤𝗟).
Data can be 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 (𝗦𝗤𝗟 𝘁𝗮𝗯𝗹𝗲 𝘀𝗰𝗵𝗲𝗺𝗮), 𝘀𝗲𝗺𝗶-𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 (𝗝𝗦𝗢𝗡, 𝗫𝗠𝗟, 𝗲𝘁𝗰.), 𝗮𝗻𝗱 𝘂𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 (𝗕𝗹𝗼𝗯). In the case of structure, they can be relational or columnar, while in the case of semi-structured, there is a wide range of possibilities, from key-value to graph.
Image: Satish Chandra Gupta.
Back to you, which database have you used for which workload?
#SQL #NoSQL #Data #Database #AWS
𝗪𝗵𝗮𝘁 𝗮𝗿𝗲 𝘀𝗼𝗺𝗲 𝗳𝗮𝗹𝗹𝗮𝗰𝗶𝗲𝘀 𝗼𝗳 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗰𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴?
A collection of claims known as "𝗳𝗮𝗹𝗹𝗮���𝗶𝗲𝘀 𝗼𝗳 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝘀𝘆𝘀𝘁𝗲𝗺𝘀" were made by L Peter Deutsch and others at Sun Microsystems to illustrate the erroneous presumptions that programmers unfamiliar with distributed applications frequently make.
What we often see with the creation of microservice architectures is that these fallacies should be addressed.
Here is the list of fallacies:
𝟭. 𝗧𝗵𝗲 𝗻𝗲𝘁𝘄𝗼𝗿𝗸 𝗶𝘀 𝗿𝗲𝗹𝗶𝗮𝗯𝗹𝗲: This is the most critical fallacy. Networks are inherently unreliable and prone to outages, delays, and malicious attacks. Distributed systems must be designed to handle these inevitable hiccups gracefully.
𝟮. 𝗟𝗮𝘁𝗲𝗻𝗰𝘆 𝗶𝘀 𝘇𝗲𝗿𝗼: Every action reacts, and distributed systems are no exception. Messages take time to travel, and computations take time to complete. Ignoring latency can lead to performance bottlenecks and unpredictable behavior.
𝟯. 𝗕𝗮𝗻𝗱𝘄𝗶𝗱𝘁𝗵 𝗶𝘀 𝗶𝗻𝗳𝗶𝗻𝗶𝘁𝗲: While bandwidth constantly increases, it's not unlimited. Distributed systems often generate massive amounts of data, and underestimating bandwidth constraints can lead to slowdowns and congestion.
𝟰. 𝗧𝗵𝗲 𝗻𝗲𝘁𝘄𝗼𝗿𝗸 𝗶𝘀 𝘀𝗲𝗰𝘂𝗿𝗲: Just because your data is spread across many machines, it's not invincible. Distributed systems offer a larger attack surface, and security considerations must be woven into the very fabric of the design.
𝟱. 𝗧𝗼𝗽𝗼𝗹𝗼𝗴𝘆 𝗱𝗼𝗲𝘀𝗻'𝘁 𝗰𝗵𝗮𝗻𝗴𝗲: Networks are dynamic entities, constantly evolving as nodes are added, removed, or reconfigured. Distributed systems need to adapt to these changes without skipping a beat.
𝟲. 𝗧𝗵𝗲𝗿𝗲 𝗶𝘀 𝗼𝗻𝗲 𝗮𝗱𝗺𝗶𝗻𝗶𝘀𝘁𝗿𝗮𝘁𝗼𝗿: In the real world, distributed systems often span many administrative domains. Understanding and coordinating across these boundaries is essential for smooth operation.
𝟳. 𝗧𝗿𝗮𝗻𝘀𝗽𝗼𝗿𝘁 𝗰𝗼𝘀𝘁 𝗶𝘀 𝘇𝗲𝗿𝗼: Sending data across a network isn't free. Each hop incurs a cost, both time and resources. Optimizing data transfer is crucial for efficient distributed systems.
𝟴. 𝗧𝗵𝗲 𝗻𝗲𝘁𝘄𝗼𝗿𝗸 𝗶𝘀 𝗵𝗼𝗺𝗼𝗴𝗲𝗻𝗲𝗼𝘂𝘀: Different networks have different characteristics. What works on a local network might translate poorly to the global internet. Distributed systems need to be flexible and adaptable to diverse network environments.
Understanding these fallacies is the first step toward building robust and reliable distributed systems. By acknowledging the inherent complexities and limitations of distributed environments, developers can:
🔹 Design systems with redundancy and fault tolerance.
🔹 Put robust monitoring and alerting systems in place.
🔹 Rank security best practices and data encryption.
Image credits: Mahdi Yusuf (Architecture Notes)
#systemdesign
The SABR stochastic volatility model was built by hardcore PhD quants.
Not a hardcore PhD quant?
You can still use SABR for options trading.
Here's a 10 second walkthrough (with Python code):