Robust Strategies - I have only demonstrated some simple random signal generating "toy" strategies to date. Now that we are beginning to create a reliable intraday forex trading system, we should start carrying out some more interesting strategies. Future diary entries will concentrate on strategies drawn from a mixture of "technical" indicators/filters as well as time series models and machine learning techniques.
Now that we have discussed the longer term plan I want to present some of the changes I have made to the code since diary entry #2. In particular, I want to describe how I modified the code to handle the Decimal data-type instead of using floating point storage. This is an extremely important change as floating point representations are a substantial source of long-term error in portfolio and order management systems.
If you sell a security short, you must have sufficient equity in your account to cover any fees associated with borrowing the security. If you borrow the security through us, we will borrow the security on your behalf and your account must have sufficient collateral to cover the margin requirements of the short sale. To cover administrative fees and stock borrowing fees, we must post 102% of the value of the security borrowed as collateral with the lender. In instances in which the security shorted is hard to borrow, borrowing fees charged by the lender may be so high (greater than the interest earned) that the short seller must pay additional interest for the privilege of borrowing a security. Customers may view the indicative short stock interest rates for a specific stock through the Short Stock (SLB) Availability tool located in the Tools section of their Account Management page. For more information concerning shorting stocks and associated fees, visit our Stock Shorting page.
Let's presume that the market keeps on going against you. In this case, the broker will simply have no choice but to shut down all your losing positions. This limit is referred to as a stop out level. For example, when the stop out level is established at 5% by a broker, the trading platform will start closing your losing positions automatically if your margin level reaches 5%. It is important to note that it starts closing from the biggest losing position.

In particular we need to modify -every- value that appears in a Position calculation to a Decimal data-type. This includes the units, exposure, pips, profit and percentage profit. This ensures we are in full control of how rounding issues are handled when dealing with currency representations that have two decimal places of precision. In particular we need to choose the method of rounding. Python supports a few different types, but we are going to go with ROUND_HALF_DOWN, which rounds to the nearest integer with ties going towards zero.
Now, let’s say you open a trade worth $50,000 with the same trading account size and leverage ratio. Your required margin for this trade would be $500 (1% of your position size), and your free margin would now also amount to $500. In other words, you could withstand a negative price fluctuation of $500 until your free margin falls to zero and causes a margin call. Your position size of $50,000 could only fall to $49,500 – this would be the largest loss your trading account could withstand.
An extremely important requested feature for QSForex has been the ability to backtest over multiple days. Previously the system only supported backtesting via a single file. This was not a scalable solution as such a file must be read into memory and subsequently into a Pandas DataFrame. While the tick data files produced are not huge (roughly 3.5Mb each), they do add up quickly if we consider multiple pairs over periods of months or more.
We also offer an IRA Margin account, which allows you to immediately trade on your proceeds of sales rather than waiting for your sale to settle. You can trade assets in multiple currencies and trade limited option spread combinations. IRA margin accounts have certain restrictions compared to regular margin accounts and borrowing is never allowed in an IRA account. Futures trading in an IRA margin account is subject to substantially higher margin requirements than in a non-IRA margin account. Margin rates in an IRA margin account may meet or exceed three times the overnight futures margin requirement imposed in a non-IRA margin account1.
Options involve risk and are not suitable for all investors. For more information read the "Characteristics and Risks of Standardized Options". For a copy call Interactive Brokers' Client Services on 312-542-6901. Before trading, clients must read the relevant risk disclosure statements on our Warnings and Disclosures page - http://www.interactivebrokers.com/disclosures. Trading on margin is only for sophisticated investors with high risk tolerance. You may lose more than your initial investment. For additional information regarding margin loan rates, see http://www.interactivebrokers.com/interest. Security futures involve a high degree of risk and are not suitable for all investors. The amount you may lose may be greater than your initial investment. Before trading security futures, read the Security Futures Risk Disclosure Statement. For a copy visit http://www.interactivebrokers.com/disclosures. Structured products and fixed income products such as bonds are complex products that are more risky and are not suitable for all investors. Before trading, please read the Risk warning and Disclosure Statement at http://www.interactivebrokers.com/disclosures. There is a substantial risk of loss in foreign exchange trading. The settlement date of foreign exchange trades can vary due to time zone differences and bank holidays. When trading across foreign exchange markets, this may necessitate borrowing funds to settle foreign exchange trades. The interest rate on borrowed funds must be considered when computing the cost of trades across multiple markets.

Imagine that you have $10,000 on your account account, and you have a losing position with a margin evaluated at $1,000. If your position goes against you, and it goes to a $9,000 loss, the equity will be $1,000 (i.e $10,000 - $9,000), which equals the margin. Thus, the margin level will be 100%. Again, if the margin level reaches the rate of 100%, you can't take any new positions, unless the market suddenly turns around and your equity level turns out to be greater than the margin.
Foreign exchange (forex) or FX trading involves trading the prices of global currencies, and at City Index it is possible to trade on the prices of a huge range of global currencies. Currency trading allows you to speculate on the movement of one currency against another, and is traded in pairs, for example the Euro against the US Dollar (EUR/USD).
Forex trading, also known as foreign exchange trading or currency trading, is where an investor tries to make money by buying and selling currencies on the foreign exchange market. Most investors will follow trends and use strategies to optimise their return. This is a very basic definition that does not reflect the full complexity of Forex trading; our free workshops are ideal for people who are unfamiliar with the concept and want to quickly achieve an in-depth insight into how this all works.
An extremely important requested feature for QSForex has been the ability to backtest over multiple days. Previously the system only supported backtesting via a single file. This was not a scalable solution as such a file must be read into memory and subsequently into a Pandas DataFrame. While the tick data files produced are not huge (roughly 3.5Mb each), they do add up quickly if we consider multiple pairs over periods of months or more.
In particular I would like to make the system a lot faster, since it will allow parameter searches to be carried out in a reasonable time. While Python is a great tool, it's one drawback is that it is relatively slow when compared to C/C++. Hence I will be carrying out a lot of profiling to try and improve the execution speed of both the backtest and the performance calculations.
Options involve risk and are not suitable for all investors. For more information read the "Characteristics and Risks of Standardized Options". For a copy call Interactive Brokers' Client Services on 312-542-6901. Before trading, clients must read the relevant risk disclosure statements on our Warnings and Disclosures page - http://www.interactivebrokers.com/disclosures. Trading on margin is only for sophisticated investors with high risk tolerance. You may lose more than your initial investment. For additional information regarding margin loan rates, see http://www.interactivebrokers.com/interest. Security futures involve a high degree of risk and are not suitable for all investors. The amount you may lose may be greater than your initial investment. Before trading security futures, read the Security Futures Risk Disclosure Statement. For a copy visit http://www.interactivebrokers.com/disclosures. Structured products and fixed income products such as bonds are complex products that are more risky and are not suitable for all investors. Before trading, please read the Risk warning and Disclosure Statement at http://www.interactivebrokers.com/disclosures. There is a substantial risk of loss in foreign exchange trading. The settlement date of foreign exchange trades can vary due to time zone differences and bank holidays. When trading across foreign exchange markets, this may necessitate borrowing funds to settle foreign exchange trades. The interest rate on borrowed funds must be considered when computing the cost of trades across multiple markets.
For securities, the definition of margin includes three important concepts: the Margin Loan, the Margin Deposit and the Margin Requirement. The Margin Loan is the amount of money that an investor borrows from his broker to buy securities. The Margin Deposit is the amount of equity contributed by the investor toward the purchase of securities in a margin account. The Margin Requirement is the minimum amount that a customer must deposit and it is commonly expressed as a percent of the current market value. The Margin Deposit can be greater than or equal to the Margin Requirement. We can express this as an equation:

If your free margin drops to zero, your broker will send you a margin call in order to protect the used margin on your account. Always monitor your free margin to prevent margin calls from happening, and calculate the potential losses of your trades (depending on their stop-loss levels) to determine their impact on your free margin. With some experience, you’ll find it significantly easier to follow your margin ratio and understand the meaning of margin in Forex trading.
If you sell a security short, you must have sufficient equity in your account to cover any fees associated with borrowing the security. If you borrow the security through us, we will borrow the security on your behalf and your account must have sufficient collateral to cover the margin requirements of the short sale. To cover administrative fees and stock borrowing fees, we must post 102% of the value of the security borrowed as collateral with the lender. In instances in which the security shorted is hard to borrow, borrowing fees charged by the lender may be so high (greater than the interest earned) that the short seller must pay additional interest for the privilege of borrowing a security. Customers may view the indicative short stock interest rates for a specific stock through the Short Stock (SLB) Availability tool located in the Tools section of their Account Management page. For more information concerning shorting stocks and associated fees, visit our Stock Shorting page.
×