OpenAlgo is an open-source, Flask-based Python application designed to bridge the gap between traders and major trading platforms such as Amibroker, Tradingview, Excel, and Google Spreadsheets. With a focus on simplifying algotrading, OpenAlgo facilitates easy integration, automation, and execution of trading strategies, providing a user-friendly interface to enhance trading performance.
- AngelOne
- Comprehensive Integration: Seamlessly connect with Amibroker, Tradingview, Excel, and Google Spreadsheets for smooth data and strategy transition.
- User-Friendly Interface: A straightforward Flask-based application interface accessible to traders of all levels of expertise.
- Real-Time Execution: Implement your trading strategies in real time, ensuring immediate action to capitalize on market opportunities.
- Customizable Strategies: Easily adapt and tailor your trading strategies to meet your specific needs, with extensive options for customization and automation.
- Secure and Reliable: With a focus on security and reliability, OpenAlgo provides a dependable platform for your algotrading activities, safeguarding your data and trades.
For detailed documentation on OpenAlgo, including setup guides, API references, and usage examples, refer to the docs
folder within the repository.
We welcome contributions to OpenAlgo! If you're interested in improving the application or adding new features, please feel free to fork the repository, make your changes, and submit a pull request.
OpenAlgo is released under the MIT License. See the LICENSE
file for more details.
For support, feature requests, or to contribute further, please contact us via GitHub issues.
Before we begin, ensure you have the following:
- Visual Studio Code (VS Code) installed on Windows.
- Python version 3.10 or 3.11 installed.
- Git for cloning the repository (Download from https://git-scm.com/downloads).
- Install VS Code Extensions: Open VS Code, navigate to the Extensions section on the left tab, and install the Python, Pylance, and Jupyter extensions.
- Clone the Repository: Open the VS Code Terminal and clone the OpenAlgo repository with the command:
git clone https://github.com/marketcalls/openalgo
- Install Dependencies: Navigate to the directory where OpenAlgo is cloned and execute:
pip install -r requirements.txt
to install the necessary Python libraries.
- Configure Environment Variables:
Rename the .sample.env
file located in openalgo
folder to .env
Update the .env
with your specific configurations as shown in the provided template.
- Run the Application: From the
openalgo
directory, start the Flask application with the command:
python app.py
After completing the setup, access the OpenAlgo platform by navigating to http://127.0.0.1:5000 in your web browser. Log in using the credentials you defined in the .env
file.
You can now connect your Amibroker and Tradingview modules to transmit orders, and use the Flask application to monitor trades.
Goto the API Key Section and Generate the APP API Key. And use it to placeorder from your trading applicaton
Sample Place Order with the /api/v1/placeorder which can be used with any trading platforms to place orders
{
"apikey":"<your_app_apikey>",
"strategy:"Test Strategy",
"symbol":"SAIL-EQ",
"action":"BUY",
"exchange":"NSE",
"pricetype":"MARKET",
"product":"MIS",
"quantity":"1"
}
{
"apikey": "your_app_apikey",
"strategy": "Test Strategy",
"exchange": "NSE",
"symbol": "BHEL-EQ",
"action": "BUY",
"product": "MIS",
"pricetype": "MARKET",
"quantity": "1",
"price": "0",
"trigger_price": "0",
"disclosed_quantity": "0",
}
Parameters | Description | Mandatory/Optional | Default Value |
---|---|---|---|
apikey | App API key | Mandatory | - |
strategy | Strategy name | Mandatory | - |
exchange | Exchange code | Mandatory | - |
symbol | Trading symbol | Mandatory | - |
action | Action (BUY/SELL) | Mandatory | - |
product | Product type | Optional | MIS |
pricetype | Price type | Optional | MARKET |
quantity | Quantity | Mandatory | - |
price | Price | Optional | 0 |
trigger_price | Trigger price | Optional | 0 |
disclosed_quantity | Disclosed quantity | Optional | 0 |
Sample Place Order with the /api/v1/placesmartorder which can be used with any trading platforms to place orders based on the open position
{
"apikey":"<your_app_apikey>",
"strategy:"Test Strategy",
"symbol":"IDEA-EQ",
"action":"BUY",
"exchange":"NSE",
"pricetype":"MARKET",
"product":"MIS",
"quantity":"0",
"position_size": "5"
}
{
"apikey": "your_app_apikey",
"strategy": "Test Strategy",
"exchange": "NSE",
"symbol": "IDEA-EQ",
"action": "BUY",
"product": "MIS",
"pricetype": "MARKET",
"quantity": "1",
"position_size": "5"
"price": "0",
"trigger_price": "0",
"disclosed_quantity": "0",
}
Parameters | Description | Mandatory/Optional | Default Value |
---|---|---|---|
apikey | App API key | Mandatory | - |
strategy | Strategy name | Mandatory | - |
exchange | Exchange code | Mandatory | - |
symbol | Trading symbol | Mandatory | - |
action | Action (BUY/SELL) | Mandatory | - |
product | Product type | Optional | MIS |
pricetype | Price type | Optional | MARKET |
quantity | Quantity | Mandatory | - |
position_size | Position Size | Mandatory | - |
price | Price | Optional | 0 |
trigger_price | Trigger price | Optional | 0 |
disclosed_quantity | Disclosed quantity | Optional | 0 |
PlaceSmartOrder API function, which allows traders to build intelligent trading systems that can automatically place orders based on existing trade positions in the position book.
Action | Qty (API) | Pos Size (API) | Current Open Pos | Action by OpenAlgo |
---|---|---|---|---|
BUY | 100 | 0 | 0 | No Open Pos Found. Buy +100 qty |
BUY | 100 | 100 | -100 | BUY 200 to match Open Pos in API Param |
BUY | 100 | 100 | 100 | No Action. Position matched |
BUY | 100 | 200 | 100 | BUY 100 to match Open Pos in API Param |
SELL | 100 | 0 | 0 | No Open Pos Found. SELL 100 qty |
SELL | 100 | -100 | +100 | SELL 200 to match Open Pos in API Param |
SELL | 100 | -100 | -100 | No Action. Position matched |
SELL | 100 | -200 | -100 | SELL 100 to match Open Pos in API Param |
- NSE: NSE Equity
- NFO: NSE Futures & Options
- CDS: NSE Currency
- BSE: BSE Equity
- BFO: BSE Futures & Options
- BCD: BSE Currency
- MCX: MCX Commodity
- NCDEX: NCDEX Commodity
- CNC: Cash & Carry for equity
- NRML: Normal for futures and options
- MIS: Intraday Squareoff
- MARKET: Market Order
- LIMIT: Limit Order
- SL: Stop Loss Limit Order
- SL-M: Stop Loss Market Order
- BUY: Buy
- SELL: Sell
- YES: Yes
- NO: No
Congratulations! You have successfully set up OpenAlgo. Explore the platform and start maximizing your trading performance through automation.