This software for prices prediction is provided as-is, without any warranties or guarantees of its performance. The author is not responsible for any losses incurred through the use of this software. Users are advised to conduct their own research and exercise caution when using this strategy. The prediction logic in this software is not financial advice, and users should seek professional financial advice before making any investment decisions.
The source code is protected by Attribution-NonCommercial (CC BY-NC) license.
The LICENCE
itself could be found in repository root directory.
This license allows others to distribute, remix, adapt, and build upon my work non-commercially, as long as they give me credit for the original creation and indicate if changes were made. This license prohibits the use of my work for commercial purposes without my explicit permission.
Using third-party Python libraries in my project does not necessarily mean my entire project adopts the same license as those libraries. When I use a library in my project, I am typically using it as a dependency. The license I choose for my project affects only my code and original trading idea, not the libraries I use.
Main core of this project is Meta Prophet library for time series forecasting.
Prophet is a procedure for forecasting time series data based on an additive model where non-linear trends are fit with yearly, weekly and daily seasonality. The implementation comes with support for linear and exponential smoothing methods.
The presented project will automatically preapre a price forecast of asset and send it to telegram group or chat.
Example of the prediction for next 24 hours:
Example of of the prediction result for the past 24 hours:
Check the real live predictions in TradeND Telegram group.
The script logic could be found here:
root/prophet_predictions_bot/script_logic/script_logic.drawio
.
You may be using drawio to open the file. Otherwise you could open the .png file:
-
In case of new Linux server run the
sudo apt update
in Linux Shell, after that runsudo apt upgrade
. -
Make sure that tmux, htop and pip are installed via running
sudo apt install tmux htop pip
in Linux Shell. -
Create a virtual environment via running
python3 -m venv .predictions_venv
in Linux Shell. -
Activate the virtual environment via running
source .predictions_venv/bin/activate
in Linux Shell. -
Install the requirements via running
pip install -r /root/prophet_predictions_bot/requirements.in
in Linux Shell. -
For the first time run the
bash /root/prophet_predictions_bot/scripts/0_1_server_update.sh
in Linux Shell to update the server. -
For the first time run the
bash /root/prophet_predictions_bot/scripts/0_2_tmux_start.sh
in Linux Shell to start the tmux session. -
For the first time run the
bash /root/prophet_predictions_bot/scripts/0_3_activate_venv.sh
in Linux Shell to activate the virtual environment. -
Set up the credentials
/root/prophet_predictions_bot/set_creds/set_creds.ipynb
for:- Telegram bot:
- telegram_token_id
- telegram_chat_id
- Telegram bot:
-
Prepare Bash Scripts to run the predictions automatically via Cron Job. Examples of Bash Scripts could be found under folder
/root/prophet_predictions_bot/scripts
.- Bash Scripts may contain the following variables that will be passed to the python scripts as inputs values:
- INP_START - integer, number of bars/candles back.
- INP_TIMEFRAME - string, timeframe for the dataframe.
- INP_PERIOD - string, the text that will be used in telegram posts.
- INP_TAIL - integer, number of last bars/candles to include in the dataframe.
- INP_TICKER - string, asset you want to predict, use the format from Yahoo Finance.
- INP_PROPHET_PERIODS - integer, number of periods to predict, technical input for Prophet.
- INP_PROPHET_FREQ - string, frequency/timeframe of the prediction, technical input for Prophet.
- INP_NAME - string, name of the asset that will be used in telegram posts.
- Bash Scripts may contain the following variables that will be passed to the python scripts as inputs values:
-
Open the Cron Job daemon via running
crontab -e
in Linux Shell and set up the Cron Jobs on your required time. Cron Job will execute predictions automatically. The example of Cron Jobs: