The aim of this project is to unlock as much as possible of the functionality of OANDA's REST API for use in MatLab and to eventually provide a back-testing and strategy development utility that will use all the same function names and function I/O as the other modules.
This design philosophy is based on the words of the great Dr. Ernest P. Chan:
"This ease of switching between backtesting and live execution is more than just convenience: It eliminates any possibility of discrepancies or errors in transcribing a backtest strategy into a live strategy, discrepancies that often plague strategies written in a general programming language whether it is C++ or MATLAB."
It allows you to check prices, retrieve instrument history, place or modify orders and open or close trades in just one line each.
The final suite will consist of three parts:
1: OAPI: Human
This module is designed to be the most user friendly, intuitive and easy to use, it outputs a lot of human-readable information and asks for user input to decide what it should do with data it has collected.
The drawback of this is a lack of efficiency and the requirement of a human supervisor during operation, this makes it's best use for running experiments or debugging code.
2: OAPI: Bot
This module has the same functions as OAPI Human with the exact same inputs, this is so once you have developed code carefully in the human module, the same code can be applied to the bot module with no re-design or testing required, allowing a strategy to run without supervision.
3: OAPI: Backtester
This module again has identically named functions with identical input requirements as module 1 and 2.
It will allow for simulations to be ran on historical or simulated data much faster than forward tests.
The strategies created in the back-tester will run live with no re-design required allowing you to take a strategy from backtesting to live trading with minimal effort.
Quinn (2024). QuinnSys/QuinnSys-OAPI (https://github.com/QuinnSys/QuinnSys-OAPI), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Versions that use the GitHub default branch cannot be downloaded