After looking into FXPro, their system was immature and didn’t offer a lot of functionality. Therefore, I’ve decided to stick with FXCM.
So since this is the first journal post, here’s the current situation. FXCM’s Trading Station is an excellent tool for day trading. They have another tool called MarketScope 2.0 which offers charting and allows you to add indicators on to those charts. Additionally it also allows you to run Strategies to generate trading signals. It seems the majority of the strategies create instances of indicators and then generate signals from there. MarketScope also offers two useful functions, BackTest and Optimize.
Strategies and Indicators use a language called Lua. I have much learning to do. As a learning exercise I implemented my own indicator called OMAR which simply loads two moving averages and allows you to customize their periods and colours etc. I then created a strategy called Omar_MACD which uses this indicator to generate trade signals. I then backtested my new strategy and it made considerable losses. When I investigated it looked like the trades were being closed out in the same candlestick on the chart. It turns out this was due to the stop loss, when I took this off the strategy was profitable but marginally only. It lost 67% of the time.
- LUA is very good framework with lots of documentation. Pretty easy given I coded an indicator and strategy in one day.
Stop loss values can be catastrophic if set too low.
- Inherited files like common.lua.rc need to be copied in the same folder as the strategy. This is also very important for the FXCM application. I.e. the following path
C:Program Files (x86)CandleworksFXTS2indicatorsCustom
C:Program Files (x86)CandleworksFXTS2StrategiesCustom
Trading signals are generated when the bar closes, but this means there could be up to 1-bar-duration of delay before the signal is executed. This is probably correct but could be catastrophic for closing positions if there is a sudden movement in the market.
I’m thinking to combat this we need to have another strategy that closes open positions in the event of sudden moves against us.