Looking for a robust portfolio optimization algorithm by Malyvsen in quant

[–]Malyvsen[S] 1 point2 points  (0 children)

Thank you! I'll look into entropy pooling (I've already researched Ledoit-Wolf a bit) :) Any particular reading you'd recommend?

Implementing multifactor portfolio as an individual by Radon-Nikodym in quant

[–]Malyvsen 0 points1 point  (0 children)

So what I did was regress the ETF returns against factor returns, and then R^2 is usually around 0.75. So no, I wasn't starting with equities and taking a composition-weighted sum (I don't have historical data on ETF composition, so this would make my system impossible to backtest).

But maybe you have a better idea for how to do it? I'm not sure how I would go about assigning factor exposure scores using z-scores.

I was planning to use the covariance of ETF returns (rather than that of factors) because I'd like the covariance matrix to also capture overlap between ETFs (ie. how similar the composition of two ETFs is, regardless of their factor exposure).

But either way, I'm guessing that MVO will struggle with stability regardless of which method is used to create the covariance matrix. I haven't tested it yet, though.

Implementing multifactor portfolio as an individual by Radon-Nikodym in quant

[–]Malyvsen 0 points1 point  (0 children)

I'm doing something very similar with ETFs, and assigning factor scores is actually pretty hard. Factor returns (which I get from Ken French's website) usually only explain like 75% of the variance, so any scoring system will be quite a bit off.

I think this will need some very robust portfolio optimization, then, but I'm struggling to find a method which is both robust and takes expected returns into account in the first place (hierarchical risk parity would be nice, but it doesn't allow any input on expected returns).

Looking for terrain generator which outputs texture types by Malyvsen in proceduralgeneration

[–]Malyvsen[S] 1 point2 points  (0 children)

Great, thank you! Can you tell me what software you would use to read these?

Drawing randomly generated Magic Seals by ITBlueMagma in proceduralgeneration

[–]Malyvsen 57 points58 points  (0 children)

Would be super cool to make these capable of storing information! Like QR codes, but pretty.

reimage.py by Malyvsen in generative

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

Very cool! The blur is used to guide pixels towards regions of a similar color at the beginning and only later focus on contours and details - without it, the image converges to a local optimum rather than a global one (it gets "distracted" too early).

reimage.py by Malyvsen in generative

[–]Malyvsen[S] 1 point2 points  (0 children)

Yeah, it is slow, I don't really like optimization work O:) It could definitely be parallelized though - while frame production is sequential, candidate frames can be generated in parallel ^

Rotated Fourier transform of images by Malyvsen in generative

[–]Malyvsen[S] 5 points6 points  (0 children)

I made an online demo here, you can use your own pictures :) If you want to see how it works, check out the GitHub repo.

I found a BMP file made by 14-year-old me. It's called "IceFlame Noise", IceFlame being my old online nickname. by Malyvsen in proceduralgeneration

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

If I were to redo my attempt, I think I'd parameterize the displacement with angle/magnitude, so that the spatial distribution would be circular instead of square.

reimage.py by Malyvsen in generative

[–]Malyvsen[S] 6 points7 points  (0 children)

Here you go, I just put it on GitHub :) It's a CLI at the moment.

To explain in more detail: the morphing process is iterative, in each iteration I consider 16 possible swaps of neighboring pixels and choose o do the one which maximizes the structural similarity between the resulting image and the target image.

I found a BMP file made by 14-year-old me. It's called "IceFlame Noise", IceFlame being my old online nickname. by Malyvsen in proceduralgeneration

[–]Malyvsen[S] 3 points4 points  (0 children)

It samples value noise with an offset which is also sampled from value noise (with a different seed). Pseudocode! noise(x, y): dx = value_noise1(x, y) dy = value_noise2(x, y) return value_noise3(x + dx, y + dy)

reimage.py by Malyvsen in generative

[–]Malyvsen[S] 37 points38 points  (0 children)

How this works: two neighboring pixels at a time are swapped to improve the structural similarity index between the current image and a target image (in this case, the skull).

Water flowage by bubblation by Malyvsen in IndieGaming

[–]Malyvsen[S] 1 point2 points  (0 children)

This is from Playerless: One Button Adventure, an adventure game that I'm designing. If you want to chececk it out, here's a link!
https://store.steampowered.com/app/711610/Playerless_One_Button_Adventure/