Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prem-ium/auto-stocktrader
π Tool(s) to Automate Stock orders for Fidelity, Chase, Vanguard, Schwab, & more across multiple accounts (Great for RSA)! βοΈπ΅
https://github.com/prem-ium/auto-stocktrader
automation brokerage investing python selenium-ide selenium-ide-tests stock-bot stock-market stock-trading stocks trading-api trading-bot
Last synced: 17 days ago
JSON representation
π Tool(s) to Automate Stock orders for Fidelity, Chase, Vanguard, Schwab, & more across multiple accounts (Great for RSA)! βοΈπ΅
- Host: GitHub
- URL: https://github.com/prem-ium/auto-stocktrader
- Owner: Prem-ium
- License: bsd-3-clause
- Created: 2022-11-15T18:30:53.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-26T22:29:55.000Z (about 2 months ago)
- Last Synced: 2024-10-12T20:06:30.951Z (about 1 month ago)
- Topics: automation, brokerage, investing, python, selenium-ide, selenium-ide-tests, stock-bot, stock-market, stock-trading, stocks, trading-api, trading-bot
- Language: Python
- Homepage: https://github.com/sponsors/Prem-ium
- Size: 5.21 MB
- Stars: 56
- Watchers: 13
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
βοΈ Auto Stock Trader π΅
An awesome repository containing scripts and projects for automating stock orders across multiple brokerages.
## Features π
- **Multi-Ticker Support**: Trade multiple stock tickers like `NVDA, TSLA, AAPL` all in one swift test run! π
- **Multi-Account Login**: Effortlessly manage and trade across multiple accounts with seamless login automation π
- **Smart Error Handling**: Dynamic error checking & handling with XPATHs ensures your trades run smoothly and without hiccups βοΈ
- **Account Slicing**: Want to focus on specific accounts? Automate starting from a particular account and beyond! π―
- **Extended Trading Hours**: Take advantage of extended hours for supported brokerages and never miss out on prime trading opportunities β°
- **Limit Order Support**: Set precise limit orders with select brokerages to stay in control of your trades! π
- **1-Click Updates**: Update `.side` files with new tickers, account variables, and more in a single click using `.sh` or ' `.bat` script! π
- **JavaScript Helper Scripts**: Boost efficiency with easy-to-use JavaScript helper scripts for managing account arrays π»## Supported Brokerages π¦
This project contains the means of automating buy/sell stock orders within:- Ally Invest
- Charles Schwab
- Chase's J.P. Morgan Invest
- Fidelity
- Firstrade
- Merrill Edge Lynch
- Sofi Invest
- Vanguard
- Robinhood (GitHub Gold Sponsor)
- WellsTrade (GitHub Gold Sponsor)Note: Although I no longer have an Ally Invest or Merrill Edge account, the existing scripts should still work as intended. While I canβt provide direct updates for those platforms, I am able to assist with bug fixes or issues during a remote TeamViewer session for Gold sponsors.
## π Unlock Premium Features w/ Gold Sponsorship! π
Gold Sponsors get **exclusive access** to the private repository, filled with the latest updates, cool features, and handy tools. Hereβs a glimpse of what you can expect as a Gold Sponsor:
#### π **Optimized Python & Selenium Scripts**
The private version of the automation script(s) have been **completely reworked** for maximum efficiency. Unlike the public version, which requires more configuration and manual setup (like for accounts with Chase and Fidelity), the Gold Sponsor version is designed to be **seamless**, **user-friendly**, and **fast**.#### β‘ **Up-to-Date & Faster Automation**
You gain access to the latest updates for brokerage automation and project features, ensuring that any potential optimizations, errors, or bugs are promptly addressed in the private version. In contrast, the public version remains unchanged and is not updated as frequently.#### π° **Exclusive Tools**
Gain access to the **Automated Cash Transfer/Withdrawal tool**, which lets you seamlessly consolidate funds from multiple accounts into a single account. This script also allows you to rename multiple accounts for easier management. Additionally, Gold Sponsors receive exclusive access to trading automation for Robinhood and WellsTrade.**Ready to upgrade?**
[Become a Gold Sponsor **here** and unlock these exclusive benefits!](https://github.com/sponsors/Prem-ium/sponsorships?sponsor=Prem-ium&tier_id=308205&preview=false)
[![GitHub Sponsor](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#EA4AAA)](https://github.com/sponsors/Prem-ium)## Enviornmental Variables π§
To use this project, you will need to set the following environment variables in your .env file:
| Variable | Description | Type |
|-------------------|---------------------------------------------------|----------------------|
| `SCHWAB_AI` | Total Number of Schwab Accounts | Integer |
| `MERRILL_AI` | Total Number of Merrill Accounts | Integer |
| `VANGUARD_AI` | Total Number of Vanguard Accounts | Integer |
| `FIDELITY_AI` | Fidelity account numbers | Nested List of Strings|
| `CHASE_AI` | [AI Values found in Chase's Trade URL for each account](https://user-images.githubusercontent.com/80719066/216079858-746af166-8387-41ad-9564-dd0c6285eb39.png). You can find [Step-By-Step](https://github.com/Prem-ium/Auto-StockTrader/blob/main/src/README.MD#chase-automation) here. | Nested List of Strings|
| `FIRSTRADE_AI` | Firstrade Account Numbers | List of Strings |
| `ALLY_AI` | Ally Account Numbers -- In [Ally Invest Settings Webpage](https://live.invest.ally.com/settings), change the default orders on the settings for all accounts to be a small penny stock for default stock ticker to minimize risk, Market, 1 Quantity!! | List of Strings |
| --|--|--|
| `CUSTOM_DIR` | Path to the folder to store updated .side files | String |
| `DYNAMIC` | Dynamic Account Length Feature (0=Off, 1=On) | Integer |
| `SOFI_AI` | List of account numbers for Sofi Helper Auto.side| List of Strings |
| `SOFI_ACCOUNT_NAMES`| Account names and numbers for SoFi Auto.side | String |
| `SOFI_LOGIN` | Login credentials for SoFi Auto.side file | String |
| `EXCLUDE_ACCOUNTS` | List of SoFi account names to exclude | String |As a reminder, if you are a Gold Sponsor, please refer to the `sponsors` repository README instead of this public version. The sponsor version includes more features and customization options tailored specifically for your needs.
[Need more help?](https://github.com/Prem-ium/Auto-StockTrader/blob/main/src/README.MD)
Login Env Example
If you prefer, you can store your login information in a `.env` file to automatically open and log in to any brokerage. However, I strongly advise against this practice. Instead, I recommend using the login test to open the login URL and manually log in. Storing credentials in a `.side` file is discouraged due to security reasons. Multiple account credentials are separated by the `:` character.
Please note that the login test is a best-try approach. Some brokerages, like Chase, may block automated logins, but you can quickly fill out the user/password information manually if you choose to use this tool.
| Variable | Description | Type | Example |
|-------------------|-----------------------------------------------|---------|--------------------------------|
| `CHASE_LOGIN` | Chase Account Credentials | String | CHASE_LOGIN="USERNAME:PASSWORD" |
| `FIDELITY_LOGIN` | Fidelity Account Credentials | String | FIDELITY_LOGIN="USERNAME:PASSWORD"|
| `FIRSTADE_LOGIN` | Firstrade Account Credentials | String | FIRSTADE_LOGIN="USERNAME:PASSWORD"|
| `MERRILL_LOGIN` | Merrill Account Credentials | String | MERRILL_LOGIN="USERNAME:PASSWORD"|
| `SCHWAB_LOGIN` | Schwab Account Credentials | String | SCHWAB_LOGIN="USERNAME:PASSWORD" |
| `ALLY_LOGIN` | Ally Account Credentials | String | ALLY_LOGIN="USERNAME:PASSWORD" |
| `VANGUARD_LOGIN` | Vanguard Account Credentials | String | VANGUARD_LOGIN="USERNAME:PASSWORD"|Refer to `.env.example` for more clarity.
## Installation βοΈ
Follow these steps to set up and use Selenium IDE for automation:
1. **Download Selenium IDE:**
- Install the Selenium IDE browser extension for your preferred browser from the add-on store. For the most reliable automation runs, it is recommend to use a Chromium browser. Avoid using Firefox if possible.
- [Chrome Web Store Selenium IDE Page](https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd)
- [Edge Add-on Selenium IDE Page](https://microsoftedge.microsoft.com/addons/detail/selenium-ide/ajdpfmkffanmkhejnopjppegokpogffp)2. **Clone the Repository & Install Dependencies:**
```bash
git clone https://github.com/Prem-ium/Auto-StockTrader
cd Auto-StockTrader
pip install -r requirements.txt
```3. **Configure Environment Variables (.env):**
Create a `.env` file and set up your environment variables following the formats outlined in the [Environmental Variables](https://github.com/Prem-ium/Auto-StockTrader#environmental-variables) section.4. **Run the Python Script:**
```bash
python main.py
```- Pass a stock ticker as an argument to update all `.side` files:
```bash
python main.py AAPL
```- Separate multiple tickers with a comma:
```bash
python main.py NVDA,TSLA,AAPL
```5. **Open Updated .side Files:**
- Open the updated `.side` project files in Selenium IDE.6. **Execute Desired Automation within Selenium IDE:**
- Log in to your brokerage account.
- Begin running your desired automation tasks in either the buy or sell test tabs.# Donations β€οΈ
I've been diligently working on this project for several months, and I'm thrilled with the progress it has made. Based on user testimonials, it has proven to be an invaluable tool for automating stock ticker orders across multiple brokerage accounts and various brokerages. I am continually striving to enhance its functionality and optimize its efficiency for automated order execution.
If you appreciate my work and would like to show your support, there are two convenient ways to make a donation:
1. **GitHub Sponsors**
- [Donate via GitHub Sponsors](https://github.com/sponsors/Prem-ium)
- Preferred because this donation method is fee-free and offers perks for your contribution.
- [![GitHub Sponsor](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#EA4AAA)](https://github.com/sponsors/Prem-ium)2. **Buy Me A Coffee**
- [Donate via Buy Me A Coffee](https://www.buymeacoffee.com/prem.ium)
- [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://www.buymeacoffee.com/prem.ium)Your generous donations will go a long way in helping me cover the expenses associated with developing new features and promoting the project to a wider audience. I extend my heartfelt gratitude to all those who have already contributed. Thank you for your support!
## Experiencing Issues? π οΈ
I'm not available to respond to issues in this repository. For direct support, please consider sponsoring me below under the `Silver` or `Gold` tier. Keep in mind that the public version is mostly "as built" and is rarely updated, while the private Gold Sponsor version receives regular updates and support.
[![Sponsor](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#white)](https://github.com/sponsors/Prem-ium)## Pull Request Requirements π
To ensure a smooth review process, please follow these guidelines when submitting a pull request (PR):
1. **Title**: Provide a clear and concise title.
2. **Description**: Include a detailed description of changes, problems addressed, and any relevant context.
3. **Documentation**: If necessary, update comments, README, requirements, and any relevant documentation.
4. **License Compliance**: Ensure any changes made in forks uphold the [repository's license](https://github.com/Prem-ium/Auto-StockTrader/blob/main/LICENSE). Do not make changes to certain areas such as the `FUNDING.yml` or any present copyright information without approval.Once you have verified that your changes adhere to these guidelines, please open a pull request with your changes and click 'Request Review' on the Pull Request.
By adhering to these guidelines, you help maintain the quality and consistency of the project. Thank you for your interest in making contributions!
# License
This repository follows the [BSD 3-Clause βNewβ or βRevisedβ License.](https://github.com/Prem-ium/Auto-StockTrader/blob/main/LICENSE)# Acknowledgments / Final Remarks π¬
I express my sincere gratitude to my sponsors, donors, & project contributor(s). Your support is invaluable, and it enables me to create exciting projects like this.Thank you for backing my work. Each one of you plays a crucial role, and I am truly grateful for your contributions.
If you find this project interesting, please consider leaving a :star2:, donating, or contributing if you found this project to be helpful!## Other Projects
- **Tax Document Consolidator (Coming Soon):**: Iβm developing a 1099 Tax Consolidation script that combines multiple tax PDFs from brokerages into a single CSV, detailing all relevant tax information (such as proceeds, costs, gains, interest earned, etc.).
- The script also offers data analysis and visualization for your 1099 tax returns.
- Useful for people with multiple accounts. Most accountants charge anywhere from $50-$100/per tax document; so the hope is it will help people save big. The program comes with a CSV/PDF viewer, which makes it easy to verify accuracy.
- Stay tuned for its release, which will be available for purchase soon.
- **[Referral-Link-Me](https://github.com/Prem-ium/Referral-Link-Me/blob/main/README.md):** Maximize your rewards with curated referral links for credit cards, brokerages, and more.## Speed Considerations:
- Adjust `SET_SPEED` env to control test execution pace on faster computers.
- Opt for 'Reference' over 'Log' in Selenium IDE for faster execution.
- Activate 'Best performance' mode in Laptop Battery settings to accelerate execution.
- Keep the browser's automation tab as the focused window for potential speed enhancements.π― Stream Deck
This part of the README might be extremely specific to a subset of people, specifically those who own Elgato Stream Decks. This is how I have mine currently set up, which may or may not be helpful for others:
Action
Type
Command
Run
Hotkey
Ctrl + R
Stop
Hotkey
Ctrl + .
Pause
Hotkey
Ctrl + P
QuickStart
Open
cmd.exe /c ""C:\Users\Frost\Desktop\RSA-QuickStart.bat""
Save
Hotkey
Ctrl + S
Switch Windows
Hotkey
Alt + Tab
Open Tests
Hotkey
Ctrl + 1
Open Test Suites
Hotkey
Ctrl + 2
Start Brave
Powershell
Start-Process "AppData\Local\BraveSoftware\Brave-Browser\Application\brave.exe" -ArgumentList "--new-window", "--app=chrome-extension://mooikfkahbdckldjjndioackbalphokd/index.html"
Start Edge
Powershell
start msedge --app="chrome-extension://ajdpfmkffanmkhejnopjppegokpogffp/index.html"
## β οΈ DISCLAIMER β οΈ
I am not a financial advisor, nor am I affiliated with any brokerage mentioned in this repository.You may use this tool at your own risk. I am not responsible for any financial loss, account restriction, or any other damage that may occur with the use of this tool. This project is provided "as is" and without warranty of any kind.
By using this repository, the user accepts all the risks and agrees to hold the developer(s) harmless from any claims, damages, or losses arising from the use of the project.