Git Product home page Git Product logo

trading-utils's Introduction

Market Trading Analysis Utilities/Scripts

Collection of scripts and utilities for stock market analysis, strategies etc

Setup virtual environment

$ make setup

Update dependencies

$ make deps

Running scripts

All available scripts should provide a basic description and options to run appropriately

For eg.

$ ./venv/bin/python3 download_stocklist.py --help

I suggest setting up a quick alias to run the python version in the virtual environment. This will save you remembering to activate the virtual environment. There are other options where you can override the cd command, but I find this simple and transparent.

alias py=./venv/bin/python3

Now you can run the same script as

$ py download_stocklist.py --help

Running your own scanner

As I usually run it over weekend, I've added a make command weekend to download the latest stocks and data and run analysis on it. You can run it as

$ make weekend

Once the analysis is complete, it'll open up DTale in your default browser.

DTale

Reporting

Although it is possible to run queries in DTale, there is a way to generate report for a selected query. The generated report contains the chart along with useful links to third party websites for more information.

You do need to setup Pandoc to generate HTML reports. If you are unable to install Pandoc, then run report_by_query.py without -v argument to generate report in Markdown format.

Sample report for finding mean-reversion setups

$ py report_by_query.py -o monthly_gains_3 -c 20 -t "Short Term Mean Reversion" -q "(last_close < 100) and (last_close > ma_50) and (monthly_gains_3 > 0) and (rsi_2 < 10)"

Scanner Reporting

Sectors Analysis

Make sure you run make weekend to download all pre-requisite data.

Sector Trends

Generate Multiple Moving Average charts for different sectors

$ py report_sectors_mma.py

Sectors MMA

Relative Strength (not RSI) using Price Momentum Oscillator

# Find Leaders/Laggards in the whole market against SPY
$ py report_relative_strength.py -b SPY

# Find Leaders/Laggards in the whole market against QQQ
$ py report_relative_strength.py -b QQQ

# Find Leaders/Laggards but only in large-cap (S&P 500)
# Requires downloading the list from BarChart https://www.barchart.com/stocks/indices/sp/sp500
# Save the csv file as 'large-cap.csv' in 'data' folder
$ py report_relative_strength.py -m large-cap -b SPY

Telegram assistants

Make sure you have the following variables set in environment.

export CHAT_ID = "<telegram-chat-where-the-messages-will-be-pushed>"
export BOT_TOKEN = "<telegram-bot-token>"

Send Reminder links over Telegram

Read links from webpages.txt and send over Telegram on a defined schedule. See run() in tele_links for changing schedule. I use it to send me links like https://swingtradebot.com/equities/general-market-analysis before market open.

py tele_links

Spy analysis

Send quick analysis on SPY during market hours. See outside_trading_hours() in trading_hours for changing schedule.

SPY Bot

py tele_spy_trade_bot.py

Twitter to Telegram

Requires setting up following environment variables.

export TWITTER_CONSUMER_KEY=
export TWITTER_CONSUMER_SECRET=
export TWITTER_ACCESS_TOKEN_KEY=
export TWITTER_ACCESS_TOKEN_SECRET=

Forward tweets from your followers to a telegram channel.

py tele_twitter.py

Twitter Furus -> Telegram

Get tweets from your favourite twitter furus in your own telegram channel ๐Ÿš€. The notification includes the original tweet along with a chart ๐Ÿ“ˆ and links to several websites ๐ŸŒŽ. It also keeps the tweets in a database to hold them accountable ๐Ÿ‘บ.

It requires setting up a file twitter_furus_accounts.txt with a list of individual twitter handles on each line (See twitter_furus_accounts.txt.example).

py twitter_furus.py

Crypto Bots

Make sure you define a few variables before starting up these bots

export EXCHANGE_API_KEY = 
export EXCHANGE_API_SECRET = 
export EXCHANGE = ""

See crypto_ma_trade_bot.py for an example.

Options

Uses Tradier for fetching data. Make sure you signup and have the following variables set in environment. See .env.example for more details.

export TRADIER_TOKEN=

Options price tracker

Track prices for given underlyings every hour in the market session. See inside_trading_hours() in trading_hours for when it runs. The data is stored in a sqlite database file sqlite:///{home_dir}/options_tracker.db.

py options_price_tracker.py -t SPX,XHB,XLC,XLY,XLP,XLE,XLF,XLV,XLI,XLB,XLR,XLK,XME,XOP,GDX,IYR,XLU

Two tables are created for each symbol.

{ticker-name}_options table contains options data.

{ticker-name}_stocks table contains corresponding data for underlying along with the technical analysis.

I usually run this on a server so there is a task in the Makefile to copy the data from remote server to local home folder.

make syncoptionspricedata

LICENSE

MIT License

trading-utils's People

Contributors

namuan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.