Canvas is cool! - page 105

 
Muhammad Minhas Qamar #:
Did you write this in Rust? I'd be very interested to know how you did it, as I too have decided to switch to Rust because of the huge benefits for complex projects like this.
Well yes the threshold of entry in Rust is high. But modern LLMs are very good for learning and coding too
 
Nikolai Semko #:
Well yes the threshold of entry in Rust is high. But modern LLMs are very good for learning and coding too
I've been writing PineScript inside of Rust, so my use-case for it is extremely different than what you are doing. Nonetheless, it would be interesting to see an implementation of a file explorer inside of Rust so kindly share the github link if you do decide to publish it as OS 
 
Maxim Kuznetsov #:

inspired and recalled:

Not that visualisation, but a very unexpected file manager and Zoomable UI https://sourceforge.net/projects/eaglemode/

because they all look like twin-brothers.

ps/ for practical use it certainly lacks a lot of functions and plugins, but it's worth to see what UI can be like.

Last night, I downloaded and played around with this application. It has really peaked my interest. Because of its novelty. I feel like, you can create so much with this idea. What about zoom-able trading charts. You zoom into a 1H candlestick and you see 30 min candle sticks inside of it, the deeper you go the lower the timeframes. 
 

Muhammad Minhas Qamar #:

How about trading charts that are zoomable. You zoom in on the 1H candle and see 30 minute candles inside it, and the deeper you go, the lower the timeframes.

like this?

 
Nikolai Semko #:
like this?

HAHA! Well...Yes. 

But I guess it can be made with a bit more distinct visual. The idea is the same, but I can't really make out what timeframe we are looking at when zoomed in/out without looking at the top left corner. 

I was just thinking about how one would implement this, and was building a prototype. Immediately a problem occurred that candlesticks at different timeframes don't geometrically contain each other cleanly. Looking at your vid, I guess this was solved by using a line chart and fractional timeframes. Other engineering problems are also present like real-time updates are more complex, but I will try to do something about this. Thanks for sharing the video

 
Muhammad Minhas Qamar #:
I've been writing PineScript inside Rust, so my script for using it is very different from what you do. Nevertheless, it would be interesting to see an implementation of the file explorer inside Rust, so kindly share the github link if you decide to publish it as OS
https://github.com/Nikolai-Semko/forest_fm_2
But be warned that the code is only implemented as a prototype, as a test of an idea. Memory usage is very inefficient and caching is not implemented and nothing is implemented at all. Only 3D visualisation of the file structure
GitHub - Nikolai-Semko/forest_fm_2
GitHub - Nikolai-Semko/forest_fm_2
  • Nikolai-Semko
  • github.com
A minimal "forest visualization" of a directory tree, written in Rust with wgpu. Folders grow as branches in 3D using a phototropism-inspired layout; files appear as anti-aliased point clouds around their parent directory. You need Rust 1.75+ (any recent stable). On Linux you also need the usual graphics dev libraries (Vulkan loader...
 
Muhammad Minhas Qamar #:

HAHA! Well... yeah.

But I think it could be done with a clearer visual series. Same idea, but I can't figure out what time frame we're looking at when zooming in/out without looking at the top left corner.

I was just thinking about how this could be implemented and was prototyping. Immediately there was a problem with the fact that candles on different timeframes are geometrically not very tight to each other. Looking at your video, I assume this was solved by using a line chart and fractional timeframes. There are other engineering issues like real-time updates are more difficult, but I will try to do something about it. Thanks for sharing the video

you're almost right.
Main timeframe M1. Index timeframes M4, M16, M64, M256, M1024, M4096
 
Nikolai Semko #:
https://github.com/Nikolai-Semko/forest_fm_2
But be warned that the code is only implemented as a prototype, as a test of an idea. Memory usage is very inefficient and caching is not implemented and nothing is implemented at all. Only 3D visualisation of the file structure

I am actually more impressed by looking at the code since it's footprint is extremely tiny. I thought that the codebase would be massive, but it's just a handful of files. I understand that it's a prototype, but still worth noting 


Nikolai Semko #:
you're almost right.
Main timeframe M1. Index timeframes M4, M16, M64, M256, M1024, M4096

I guess powers of 4 instead of the natural timeframes is an elegant solution to the geometric "nesting" problem. But I think more importantly, for traders isn't it a bit non-intuitive? Because natural timeframes are the norm, and seeing M16 just puzzles the brain of a retail trader. There has to be a way to get the best of both worlds...hmm a good challenge I suppose

 
Muhammad Minhas Qamar #:

I'm actually more impressed looking at the code as it takes up very little space. I thought the codebase would be huge, but it's just a handful of files. I realise it's a prototype, but it's still worth paying attention to.


I think numbers of 4 instead of natural timeframes is an elegant solution to the geometric "nesting" problem. But I think more importantly, isn't it a bit unintuitive for traders? After all, natural timeframes are the norm, and seeing M16 is just a puzzle for the retail trader's brain. There has to be a way to get the best of both worlds.... hmmm, a good challenge I suppose.

alas, you can't do that on standard timeframes due to the different time densities.
And there is no need for that in this task. M1 is the main TF in MT5. Other TFs are synthetic from it.
In MT5 you load the history of only M1(!!!), other TFs are calculated in the terminal from M1. In MT4, all TFs are loaded.
It does not matter what is intuitive for a trader. The main thing is that EA is conflict-free. And M1, M4, M16, M64, M256, M1024, M4096 give this conflict-free due to the same uniformity of time density on different scales.
 
Nikolai Semko #:
I don't know. I beg to differ. Rust's new releases are stable. MO libraries are also on top of their game. Moreover, I have a bias towards the server side. There Rust feels very confident, the more and high-performance frontend is also written mainly in Rust (as WASM development environment).
Rust itself is very good as a language. But regarding the creation and maintenance of libraries (Boost.Beast level from C++) there is a feeling that in the world of Rust it is done by one and a half enthusiasts. And this is quite fraught.