CandleStick Plots with R base graphics (withOUT ggplot2 and plotly)

ggplot2 and plotly are very advanced charting libraries but sometimes it may be preferable to use base graphics, e.g. if one needs to fine-tune the chart layout.
A [not so] well-known R package DescTools draws nice ohlc plots and allows parsing arguments to plot() command.
Continue reading "CandleStick Plots with R base graphics (withOUT ggplot2 and plotly)"

Setting up Python-Env – mamba [b]eats conda

Mamba aka Miniforge was a package for (and now a spin-off of) Anaconda, intended for a faster environment resolution. In general mamba is [currently] more efficient than conda, esp. if you rely on conda-forge, a community-led anaconda channel Continue reading "Setting up Python-Env – mamba eats conda"

Howto Setup SoS Jupyter in Conda – R4 and Python38 with Tensorflow and Spyder

Anaconda is a very practical tool to manage the virtual environments... when it properly works. In theory, a desired configuration shall be setup seamlessly. In practice Conda may need hours to resolve the configuration and finally do it wrong. In this manual I explain how to setup a SoS Jupyter Notebook with R4 and Python38 with a TensorFlow and Spyder. This worked on 01.01.2024 Continue reading "Howto Setup SoS Jupyter in Conda – R4 and Python38 with Tensorflow and Spyder"

AI Stock Picking Dashboard via mwShiny in Docker behind Apache ReverseProxy

In this post I demonstrate [the performance of] a multi-window interactive graphical dashboard, which visualizes the stock-picking signals from an ensemble of deep neural networks.
Further I describe the online deployment of this dashboard by means of Docker and Apache ReverseProxy.
Everybody, who invests quantitatively and significantly contributed to the engaged software: in partucular R, [mw]Shiny, LAMP-stack, Docker (and of course TF/keras) are encouraged to claim their free access to this dashboard (others are also encouraged to request a paid subscription :))
. Continue reading "AI Stock Picking Dashboard via mwShiny in Docker behind Apache ReverseProxy"

JuniorDepot29 – (Over)archieving the Financial Plan (thanks to AI and NI)

Since we did not report about Elle's progress for more than a year, the readers of letYourMoneyGrow.com might have thought that we have terminated our experiment of growing a 7 (currently 11) years young girl as an investor. Nope, not at all! As a matter of fact we worked hard on creation and test of a deep neural network for the stock (pre)selection. And it did work, our CAGR goal is (over)achieved!
Continue reading "JuniorDepot29 – (Over)archieving the Financial Plan (thanks to AI and NI)"

Affordable Hardware for Stockpicking AI – BeerWulf’s eBay Adventure

In my previous post I reported howto build and install TensorFlow and horovod from sources and howto setup a BeerWulf (BeoWulf) cluster. Building this BeerWulf cluster is though a good exercise to make a (resilient) system of a commodity hardware, however, it is not the most efficient way for a practical purpose (in my case: for creating an AI model, which helps me to pick up stocks). In this post I consider the hardware alternatives in the sense of making them both as efficient and as cheap as possible. Continue reading "Affordable Hardware for Stockpicking AI – BeerWulf’s eBay Adventure"

Building TensorFlow 2.5 (CPU only) and Horovod from source in Ubuntu 20.04.2 LTS

Short summary:

sudo swapoff /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=65536 oflag=append conv=notrunc
sudo mkswap /swapfile
sudo swapon /swapfile

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
sudo apt update
sudo apt install python3-dev python3-pip
sudo apt install python3-testresources
pip install -U --user pip numpy==1.19.5 wheel
pip install -U --user keras_preprocessing --no-deps
sudo apt install git
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.5
sudo apt install npm
sudo npm install -g @bazel/bazelisk
./configure

bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-2.5.0-cp38-cp38-linux_x86_64.whl

sudo apt-get install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
ssh-keygen
ssh-copy-id vasily@SERVER2
ssh SERVER2
ssh-keygen
ssh-copy-id vasily@SERVER1

sudo snap install cmake --classic
sudo apt install openmpi-bin
mpirun -H SERVER1:1,SERVER2:1 hostname

git clone --recursive https://github.com/uber/horovod.git
cd horovod
python setup.py clean
python setup.py bdist_wheel
HOROVOD_WITH_TENSORFLOW=1 pip install ./dist/horovod-0.22.1-cp38-cp38-linux_x86_64.whl[tensorflow,keras]
mpirun -H SERVER1:3,SERVER2:3 python3 /home/vasily/horovod/examples/tensorflow2/tensorflow2_keras_mnist.py
Continue reading "Building TensorFlow 2.5 (CPU only) and Horovod from source in Ubuntu 20.04.2 LTS"

Howto Install Tensorflow-GPU with Keras in R – A manual that worked on 2021.02.20 (and likely will work in future)

A brief instruction:
0. Update your Nvidia graphic card driver (just driver; you need NOT install/update CUDA but make sure that your card has cuda compute capability >= 3.5)
1. install Anaconda (release Anaconda3-2020.11 from anaconda.org)
2. open anaconda prompt and run
>conda create -n tfgpu210p37 python==3.7
>conda activate tfgpu210p37
>conda install cudatoolkit=10.1 cudnn=7.6 -c=conda-forge
>conda install -c anaconda tensorflow-gpu
3. in R run
>install.packages("keras")
>reticulate::use_condaenv("tfgpu210p37", required = TRUE)
>library(keras)
4. If you wanna understand what is going on under the hood, read further
Continue reading "Howto Install Tensorflow-GPU with Keras in R – A manual that worked on 2021.02.20 (and likely will work in future)"

Interbreeding R and Python to Give Birth to an Optimal German Mortgage

In many countries a mortgage shall be completely redeemed to the end of its duration and may be refinanced anytime. In USA one additionally can foreclose his mortgage by mailing his house-keys to a bank. In Germany is different.
First of all, one may completely refinance a mortgage only after 10 years (otherwise one have to pay Vorfälligkeitsentschädigung - a compensation to a bank for missed interest). But taking a long-term mortgage (20 or 30 years) implies a higher mortgage rate, thus it is not uncommon to take several consequent 10- (or sometimes even 5-) year mortgages. In order to optimize mortgage costs / rate change risk relation one can take several submortgages with different durations. Last but not least there is no requirement to amortize a mortgage completely: normally one refinances the residual debt (Restschuld) with a follow-up mortgage (Anschlussfinanzierung).
In this post we discuss the challenges of mortgage optimization and show how two popular programming languages - R and Python - can help us together
Continue reading "Interbreeding R and Python to Give Birth to an Optimal German Mortgage"