The purpose of this journal is to catalog development of my own platform to implement a forex trend-following strategy which I am calling Spartan. The reasons I am writing my own:
1. I don't want to spend time learning another platform's quirks. I'd rather understand my own 100%
2. I want to back test, forward test and trade live with the same interface. I am probably somewhat autistic and can't deal with changing interfaces to trade to the point of paralysis. In the past, I've done this using a frankenstein of open source components which were lacking in some way.
Further, I have manually tested a strategy using ForexTester which I want to live trade but live trading with ForexTester is not possible. At the moment, I am forcing myself to forward test with Interactive Brokers. If it works out I may just stop doing this. Main problem is that I cannot add custom indicators to IB, as far as I know.
3. I don't want to write custom indicators in non-core languages and spend time learning their quirks.
Each week/sprint/cycle I plan to pick the next most helpful thing that would get me to successfully backtest in a similar way to ForexTester. I expect the bulk of the software will take 4-6 weeks to finish, which probably means 8-12 weeks.
The plan is something like this:
* Data storage/download (done)
* Rough-in charting (done)
* Rough-in custom indicators
* Basic backtesting console
* Connect backtester with charting
* Backtest report
* Do full backtest
* Do forward test
* Connect executions to IB
* Switch to paper account
* Switch to live trading
The strategy
Basic trend following strategy on daily charts. Main observation is that there are 8000 different currencies. Previous attempts were designed to win with one currency, but after running backtests from another strategy with a basket of currencies, the results were much smoother than running with one.
The software
Python-based, built using Qt and SQLite for storage. Nothing exceptional here.
Here's the interface so far:
1. I don't want to spend time learning another platform's quirks. I'd rather understand my own 100%
2. I want to back test, forward test and trade live with the same interface. I am probably somewhat autistic and can't deal with changing interfaces to trade to the point of paralysis. In the past, I've done this using a frankenstein of open source components which were lacking in some way.
Further, I have manually tested a strategy using ForexTester which I want to live trade but live trading with ForexTester is not possible. At the moment, I am forcing myself to forward test with Interactive Brokers. If it works out I may just stop doing this. Main problem is that I cannot add custom indicators to IB, as far as I know.
3. I don't want to write custom indicators in non-core languages and spend time learning their quirks.
Each week/sprint/cycle I plan to pick the next most helpful thing that would get me to successfully backtest in a similar way to ForexTester. I expect the bulk of the software will take 4-6 weeks to finish, which probably means 8-12 weeks.
The plan is something like this:
* Data storage/download (done)
* Rough-in charting (done)
* Rough-in custom indicators
* Basic backtesting console
* Connect backtester with charting
* Backtest report
* Do full backtest
* Do forward test
* Connect executions to IB
* Switch to paper account
* Switch to live trading
The strategy
Basic trend following strategy on daily charts. Main observation is that there are 8000 different currencies. Previous attempts were designed to win with one currency, but after running backtests from another strategy with a basket of currencies, the results were much smoother than running with one.
The software
Python-based, built using Qt and SQLite for storage. Nothing exceptional here.
Here's the interface so far: