Note also that when we begin storing our trades in a relational database (as described above in the roadmap) we will need to make sure we once again use the correct data-type. PostgreSQL and MySQL support a decimal representation. It is vital that we utilise these data-types when we create our database schema, otherwise we will run into rounding errors that are extremely difficult to diagnose!
The Federal Reserve Board and self-regulatory organizations (SROs), such as the New York Stock Exchange and FINRA, have clear rules regarding margin trading. In the United States, the Fed's Regulation T allows investors to borrow up to 50 percent of the price of the securities to be purchased on margin. The percentage of the purchase price of securities that an investor must pay for is called the initial margin. To buy securities on margin, the investor must first deposit enough cash or eligible securities with a broker to meet the initial margin requirement for that purchase.
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:
Just like securities, commodities have required initial and maintenance margins. These are typically set by the individual exchanges as a percentage of the current value of a futures contract, based on the volatility and price of the contract. The initial margin requirement for a futures contract is the amount of money you must put up as collateral to open position on the contract. To be able to buy a futures contract, you must meet the initial margin requirement, which means that you must deposit or already have that amount of money in your account.
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.
© 2019 Learn to Trade Pty Ltd (ACN:138178542, AFSL:339557) provides general information and educational courses and materials only. This is not an offer to buy/sell financial products. We do not provide personal advice nor do we consider the needs, objectives or circumstances of any individual. Financial products are complex and all entail risk of loss. Over-the-counter derivative and foreign exchange products are considered speculative because they are highly leveraged and carry risk of loss beyond your initial investment, hence should only be traded with capital you can afford to lose. Please ensure you obtain professional advice to ensure trading or investing in any financial products is suitable for your circumstances, and ensure you obtain, read and understand any applicable offer document.
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.
How can you avoid this unanticipated surprise? Margin calls can be effectively avoided by carefully monitoring your account balance on a regular basis, and by using stop-loss orders on every position to minimise the risk. Another smart action to consider is to implement risk management within your trading. By managing your the potential risks effectively, you will be more aware of them, and you should also be able to anticipate them and potentially avoid them altogether.
Local Portfolio Handling - In my opinion carrying out a backtest that inflates strategy performance due to unrealistic assumptions is annoying at best and extremely unprofitable at worst! Introducing a local portfolio object that replicates the OANDA calculations means that we can check our internal calculations while carrying out practice trading, which gives us greater confidence when we later use this same portfolio object for backtesting on historical data.
×