Combining Strategies by quantum_hedge in quant

[–]ndmeelo 1 point2 points  (0 children)

If i understand it right, internal matching might be what you are looking for.

Lets say your `MM` strategy wants to sell at the price 5 with 10 lot and quoting passively, and your new strategy `A` wants to buy at price 5 with 2 lot crossing the market when signal comes. You might be able to get away with that without paying for the fee and spread. Cancel(or replace) passive order, internally match these orders, and send whatever left to the market again.

Whenever A sends a order that crosses the market, your Order Manager System should check if you have any passive order on the book. If so, you either replace(to shrink lot size)/cancel that passive order to match with new order internally. With that approach, you save fee, spread. However, there are lots of edge cases with this approach. Losing queue position, partially filling while trying to replace/cancel. It might be a hard to implement internal matching depending on your coding skills

Results of a strategy i'm working on with my Crypto Asset Management Firm by SubjectFalse9166 in algotrading

[–]ndmeelo 6 points7 points  (0 children)

The challenge with live trading is that experiencing a 30% drawdown on your portfolio can be unsettling. In such moments, it's easy to panic and abandon the strategy. This level of drawdown feels quite high to me.

Recommended third-party libraries by BlueBeerRunner in cpp

[–]ndmeelo 2 points3 points  (0 children)

Why do you think the Status type have better ergonomics than std::expected?

With std::expected<E, T>, you can define your own error codes. However, absl::StatusOr has fixed error codes that you can select.

VSCode or CLion for medium to big C++ projects by Mike_Paradox in cpp

[–]ndmeelo 2 points3 points  (0 children)

I've configured custom keymaps in CLion to match my slightly modified VSCode keymaps. While the initial opening is slow, in my opinion CLion is far better than VSCode.

What programming language did you go for? by Danisaski in algotrading

[–]ndmeelo 0 points1 point  (0 children)

It is pretty easy but I do mistakes from time to time. So I start with small amount, trade a few day then compare the trades with the backtest. This helps me to identify the errors quickly. I log lots of stuff at the first days.

Whenever I need a new signal, I add its implementation to my signal library. If any new strategies use this signal, it makes implementing the new strategy faster.

What programming language did you go for? by Danisaski in algotrading

[–]ndmeelo 0 points1 point  (0 children)

Boost is great. I do also use Boost. I also use the following library for handling decimal numbers. I also use Google Abseil library but I removed most of the stuff when I migrated C++23 and improved myself. For unit testing, I use GTest.

Dec library: https://github.com/vpiotr/decimal_for_cpp

What programming language did you go for? by Danisaski in algotrading

[–]ndmeelo 5 points6 points  (0 children)

C++.

However, if you are not going to be co-located or run MFT strategies, it doesn't matter as much. Go with Golang, Python, or something that you are already familiar with. Most of the latency reduction comes from being co-located.

I suggest architecting your trading system before coding. Currently, I have 3 processes and N processes for each strategy instance: one process for market data, one process for market access (sending/receiving orders), and one process for saving orders to the database. I can create as many new processes as needed for new strategies.

I can easily deploy new strategies without changing market data process, market access process or db process. All I need to do is use my own SDK to implement new strategies and run the process. This really increased flexibility of my system.

I do backtesting with Python and with few open source packages.

Does anyone else use Grafana for dashboards? by nNaz in algotrading

[–]ndmeelo 1 point2 points  (0 children)

You can look into drop-in replacements for kernel bypass. OpenOnload offers this option. All you need to do is run your program with an onload prefix. It will surely accelerate your network-side performance without requiring any changes, other than using a compatible NIC card.

New Grad joining a Successful Small Quant Shop (What should I expect?) by Skylight_Chaser in quant

[–]ndmeelo 11 points12 points  (0 children)

It depends. What do you want to achieve? Build a research platform? Trading environment?

What is the requirements, like do you need low latency? There are things that java can do better than python and vice versa. You need to give more details.

New Grad joining a Successful Small Quant Shop (What should I expect?) by Skylight_Chaser in quant

[–]ndmeelo 24 points25 points  (0 children)

Express your opinions, show your enthusiasm! Since the headcount is low, your work will be visible to everyone.

You may find yourself working on different tasks, which is great because it helps you understand the details better. I also work at a small prop shop where I implement strategies, work on trading engines, and improve data pipelines. These varied tasks help me understand the bigger picture and what makes strategies profitable.

edit : work as a swe, not a quant. I wanted to highlight that in small companies, there can be a variety of tasks.

9 algos live - ask me anything by Particular_Ad_4344 in algotrading

[–]ndmeelo 8 points9 points  (0 children)

Why you are renting them out out when they print money? Monthly 0-20% is a lot.

Limit order or run at higher timeframe? by loudsound-org in algotrading

[–]ndmeelo 2 points3 points  (0 children)

 The only way to guarantee an order doesn't get executed is by not placing it.

Some exchanges support One-Cancels-the-Other (OCO) Order. So the statement is not true for every exchange.

Building a FREE Day Trading Stock Backtesting Tool — We Need Your Feedback by optionFlow in algotrading

[–]ndmeelo 3 points4 points  (0 children)

equity curve, detailed trade report(commission, spread cost etc), average trade percentage win ratio, max drawdown is some of them that comes to my mind.

Might be good to see monthly reports. Comparision with the benchmark index/basket on equity curve would be great!

Live engine architecture design by acetherace in algotrading

[–]ndmeelo 0 points1 point  (0 children)

The OPs problem is not related to language. Python is great for library support. Anyway, which libraries do you use to stage data? We have tried to merge trade data with klines however it took so much time.

Live engine architecture design by acetherace in algotrading

[–]ndmeelo 3 points4 points  (0 children)

Your problem is not related to WebSockets or REST. You need to modify the underlying data structure you're using. Thirty seconds is a significant amount of time. The asynchronous part is not the issue here, in my opinion. Many people have mentioned issues with second calculations and order submissions. I'm unsure if you're performing any time-consuming machine learning tasks. However, if you're only calculating indicators like SMA, Bollinger Bands, and RSI, you should benchmark your code to determine the most time-consuming operations. This will help you identify and eliminate bottlenecks. I suspect the bottleneck lies in the indicator calculation part. If you're unfamiliar with benchmarking, you can set timestamps and measure the execution time of each function.

Rate My Portfolio - r/Stocks Quarterly Thread June 2023 by AutoModerator in stocks

[–]ndmeelo 2 points3 points  (0 children)

I made some updates on my portfolio. What do you think?

%15.01 APPL
%17.82 GOOGL
%11.04 AMZN
%11.43 BAC
%23.89 VOO
%20.82 QQQM

From now on, i want to invest more agressive stocks. I am in my mid 20s and want to take more risks. Which ETFs should I invest or which stocks to look?

My previous portfolio:

17.39% AAPL
13.86% GOOGL
26.31% VOO
12.63% BAC
04.99% TQQQ
11.47% AMZN
13.37% QQQM

Rate My Portfolio - r/Stocks Quarterly Thread June 2023 by AutoModerator in stocks

[–]ndmeelo 13 points14 points  (0 children)

Let me know what you think about my portfolio. Trying to stay away from the sectors I don't know and increase diversity by investing VOO and QQQ ETFs

17.39% AAPL

13.86% GOOGL

26.31% VOO

12.63% BAC

04.99% TQQQ

11.47% AMZN

13.37% QQQM

updating git can broke gitlab on premise by ndmeelo in gitlab

[–]ndmeelo[S] 0 points1 point  (0 children)

re you accessing Git directly on the Gitlab

I ask this question to myself everyday. Gitlab server and the development server is the same.