Building a High Frequency ATS: use Software package or code everything myself
Hi,
I am planning on creating an automated scalping system for Forex. I have programming experience (C++/Python) and extensive experience in manual Forex scalping. My goal is to be able to very accurately backtest my scalping strategies and automate their execution.
More specifically the requirements of my system would be the following:
-I need my backtester to be able to accurately look at tick by tick Bid/Ask data from different brokers simultaneously and simulate slippage
-Fast (100ms-500ms execution time) multi-broker execution capability
-I don t need any charting tools nor manual trading capabilities nor a nice UI
My first question is: is this realistically feasible? I have been trading manually with various brokers and I know that under normal conditions they support relatively high frequency scalping with reasonable slippage (order execution in less than 500ms). I was wondering if their API support such high frequencies.
My second question is: should I use a software package or should I code everything by myself? More specifically:
1) should I use a software package to backtest and execute my strategies or
2) should I code my own backtester but use a software package to execute them or
3) should I write everything (backtester + execution engine)
I am very well aware that writing a reliable execution engine is a huge task and Iâd rather use an existing solution if it s available. However I was wondering if solutions like TradeStation, Multicharts, Ninjatrader etc.. were designed and reliable enough for High Frequency trading. Iâd really like to not reinvent the wheel and I am willing to pay if there is already an existing tool that would meet my requirements but so far the impression I have is that all these software packages are not really meant to be used for High Frequency Trading.
As for the backtesting tool, this would be much easier to code by myself and after playing with the aforementioned tools I found out that it was impossible or very difficult to do what I wanted to do (correct me if Iâm wrong). Ninjatrader was the closest to what I needed but I was very disappointed when I found out that it cannot import Bid/Ask tick by tick data (apparently it will be a feature of NT7 but itâs still in beta) and that using simultaneous tick data from different sources for the same instruments was only doable by using some twisted tricks.
Which way would you go, 1), 2) or 3)? Could you please state why you would do so?
Feel free to ask for more details if I wasnât clear.
Thank you
Hi,
I am planning on creating an automated scalping system for Forex. I have programming experience (C++/Python) and extensive experience in manual Forex scalping. My goal is to be able to very accurately backtest my scalping strategies and automate their execution.
More specifically the requirements of my system would be the following:
-I need my backtester to be able to accurately look at tick by tick Bid/Ask data from different brokers simultaneously and simulate slippage
-Fast (100ms-500ms execution time) multi-broker execution capability
-I don t need any charting tools nor manual trading capabilities nor a nice UI
My first question is: is this realistically feasible? I have been trading manually with various brokers and I know that under normal conditions they support relatively high frequency scalping with reasonable slippage (order execution in less than 500ms). I was wondering if their API support such high frequencies.
My second question is: should I use a software package or should I code everything by myself? More specifically:
1) should I use a software package to backtest and execute my strategies or
2) should I code my own backtester but use a software package to execute them or
3) should I write everything (backtester + execution engine)
I am very well aware that writing a reliable execution engine is a huge task and Iâd rather use an existing solution if it s available. However I was wondering if solutions like TradeStation, Multicharts, Ninjatrader etc.. were designed and reliable enough for High Frequency trading. Iâd really like to not reinvent the wheel and I am willing to pay if there is already an existing tool that would meet my requirements but so far the impression I have is that all these software packages are not really meant to be used for High Frequency Trading.
As for the backtesting tool, this would be much easier to code by myself and after playing with the aforementioned tools I found out that it was impossible or very difficult to do what I wanted to do (correct me if Iâm wrong). Ninjatrader was the closest to what I needed but I was very disappointed when I found out that it cannot import Bid/Ask tick by tick data (apparently it will be a feature of NT7 but itâs still in beta) and that using simultaneous tick data from different sources for the same instruments was only doable by using some twisted tricks.
Which way would you go, 1), 2) or 3)? Could you please state why you would do so?
Feel free to ask for more details if I wasnât clear.
Thank you